From ed3c9af6df6857d5453a50854b93ef095f1995c9 Mon Sep 17 00:00:00 2001 From: Konstantinos Samaras-Tsakiris <ksamtsak@gmail.com> Date: Sun, 28 Nov 2021 20:50:33 +0100 Subject: [PATCH] Trim cronjob name --- controllers/drupalsite_controller_test.go | 20 ++++++++++---------- controllers/drupalsite_resources.go | 4 +++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/controllers/drupalsite_controller_test.go b/controllers/drupalsite_controller_test.go index 6a62ffe0..bd6e9d8d 100644 --- a/controllers/drupalsite_controller_test.go +++ b/controllers/drupalsite_controller_test.go @@ -273,7 +273,7 @@ var _ = Describe("DrupalSite controller", func() { // Check if the Cronjob resource is created By("Expecting Cronjob to be created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return cronjob.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) }) @@ -481,7 +481,7 @@ var _ = Describe("DrupalSite controller", func() { // Check the image version on the cronjob By("Expecting the new drupal Version on the cronjob spec") Eventually(func() bool { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) for i, container := range cronjob.Spec.JobTemplate.Spec.Template.Spec.Containers { switch container.Name { case "cronjob": @@ -644,11 +644,11 @@ var _ = Describe("DrupalSite controller", func() { // Check Drush cronjob By("Expecting Drush cronjob recreated") Eventually(func() error { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return k8sClient.Delete(ctx, &cronjob) }, timeout, interval).Should(Succeed()) Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return cronjob.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) }) @@ -947,7 +947,7 @@ var _ = Describe("DrupalSite controller", func() { // Check if the Cronjob resource is created By("Expecting Cronjob to be created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return cronjob.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) @@ -1143,7 +1143,7 @@ var _ = Describe("DrupalSite controller", func() { // Check the image version on the cronjob By("Expecting the new drupal Version on the cronjob spec") Eventually(func() bool { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) for i, container := range cronjob.Spec.JobTemplate.Spec.Template.Spec.Containers { switch container.Name { case "cronjob": @@ -1393,7 +1393,7 @@ var _ = Describe("DrupalSite controller", func() { // Check if the Cronjob resource is created By("Expecting Cronjob to be created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return cronjob.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) @@ -1684,7 +1684,7 @@ var _ = Describe("DrupalSite controller", func() { // Check if the Cronjob resource is created By("Expecting Cronjob to be created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return cronjob.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) }) @@ -1844,7 +1844,7 @@ var _ = Describe("DrupalSite controller", func() { // Check if the Cronjob resource is created By("Expecting Cronjob to be created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) return cronjob.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) }) @@ -2007,7 +2007,7 @@ var _ = Describe("DrupalSite controller", func() { // Check the image version on the cronjob By("Expecting the new drupal Version on the cronjob spec") Eventually(func() bool { - k8sClient.Get(ctx, types.NamespacedName{Name: "cronjob-" + key.Name, Namespace: key.Namespace}, &cronjob) + k8sClient.Get(ctx, types.NamespacedName{Name: key.Name, Namespace: key.Namespace}, &cronjob) for i, container := range cronjob.Spec.JobTemplate.Spec.Template.Spec.Containers { switch container.Name { case "cronjob": diff --git a/controllers/drupalsite_resources.go b/controllers/drupalsite_resources.go index 6f46c10f..4533e621 100644 --- a/controllers/drupalsite_resources.go +++ b/controllers/drupalsite_resources.go @@ -513,7 +513,9 @@ func (r *DrupalSiteReconciler) ensureResourceX(ctx context.Context, d *webservic return nil } // This ensures we have cron function for the website, see: https://gitlab.cern.ch/webservices/webframeworks-planning/-/issues/437 - cron := &batchbeta1.CronJob{ObjectMeta: metav1.ObjectMeta{Name: "cronjob-" + d.Name, Namespace: d.Namespace}} + // Note: Cronjob name must be < 52 characters + // Since max DrupalSite name is 50 chars, we can't have a prefix. + cron := &batchbeta1.CronJob{ObjectMeta: metav1.ObjectMeta{Name: d.Name, Namespace: d.Namespace}} _, err := controllerruntime.CreateOrUpdate(ctx, r.Client, cron, func() error { log.V(3).Info("Ensuring Resource", "Kind", cron.TypeMeta.Kind, "Resource.Namespace", cron.Namespace, "Resource.Name", cron.Name) return cronjobForDrupalSite(cron, databaseSecret, d) -- GitLab