diff --git a/generator/crontabs.go b/generator/crontabs.go index 6eeb819..6f0a3c1 100644 --- a/generator/crontabs.go +++ b/generator/crontabs.go @@ -78,7 +78,7 @@ func buildCrontab(deployName string, deployment *helm.Deployment, s *types.Servi cmd = podget + cmd if cron.Image == "" { - cron.Image = "bitnami/kubectl:1.20" + cron.Image = `bitnami/kubectl:{{ printf "%s.%s" .Capabilities.KubeVersion.Major .Capabilities.KubeVersion.Minor }}` } name := deployName @@ -87,6 +87,11 @@ func buildCrontab(deployName string, deployment *helm.Deployment, s *types.Servi index++ } + // add crontab + suffix := "" + if index > 0 { + suffix = fmt.Sprintf("%d", index) + } cronTab := helm.NewCrontab( name, cron.Image, @@ -94,11 +99,6 @@ func buildCrontab(deployName string, deployment *helm.Deployment, s *types.Servi cron.Schedule, sa, ) - // add crontab - suffix := "" - if index > 0 { - suffix = fmt.Sprintf("%d", index) - } logger.Magenta(ICON_CRON, "Generating crontab", deployName, suffix) fileGeneratorChan <- cronTab } diff --git a/generator/writer.go b/generator/writer.go index 45a1fef..ce334d1 100644 --- a/generator/writer.go +++ b/generator/writer.go @@ -182,7 +182,9 @@ func Generate(p *compose.Parser, katernayVersion, appName, appVersion, chartVers writers.BuildConfigMap(c, kind, n, name, templatesDir) default: - fname := filepath.Join(templatesDir, n+"."+kind+".yaml") + name := c.(helm.Named).Name() + "-" + c.GetType() + name = PrefixRE.ReplaceAllString(name, "") + fname := filepath.Join(templatesDir, name+".yaml") fp, err := os.Create(fname) if err != nil { log.Fatal(err) diff --git a/helm/cronTab.go b/helm/cronTab.go index ef79c63..ff1e454 100644 --- a/helm/cronTab.go +++ b/helm/cronTab.go @@ -50,15 +50,21 @@ func NewCrontab(name, image, command, schedule string, serviceAccount *ServiceAc cron.Spec.JobTemplate.Spec.Template.Spec = Job{ ServiceAccount: serviceAccount.Name(), ServiceAccountName: serviceAccount.Name(), - Containers: []Container{ - { - Name: name, - Image: image, - Command: []string{"sh", "-c", command}, - }, - }, - RestartPolicy: "OnFailure", + RestartPolicy: "OnFailure", + } + if command != "" { + cron.AddCommand(command, image, name) } return cron } + +// AddCommand adds a command to the cron job +func (c *CronTab) AddCommand(command, image, name string) { + container := Container{ + Name: name, + Image: image, + Command: []string{"sh", "-c", command}, + } + c.Spec.JobTemplate.Spec.Template.Spec.Containers = append(c.Spec.JobTemplate.Spec.Template.Spec.Containers, container) +}