diff --git a/controllers/drupalsite_controller_test.go b/controllers/drupalsite_controller_test.go index 770fdafe167ba6d87e7e3274eafd34e0d518a360..c91a0080fbe79d67ac92b807cc874e733ddc8a16 100644 --- a/controllers/drupalsite_controller_test.go +++ b/controllers/drupalsite_controller_test.go @@ -871,7 +871,7 @@ var _ = Describe("DrupalSite controller", func() { // Check sitebuilder-s2i imageStream By("Expecting sitebuilder-s2i imageStream created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "sitebuilder-s2i-" + key.Name, Namespace: key.Namespace}, &is) + k8sClient.Get(ctx, types.NamespacedName{Name: "sitebuilder-s2i-" + cr.Name, Namespace: cr.Namespace}, &is) return is.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) @@ -885,7 +885,7 @@ var _ = Describe("DrupalSite controller", func() { // Check S2I buildConfig By("Expecting S2I buildConfig created") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "sitebuilder-s2i-" + nameVersionHash(drupalSiteObject), Namespace: key.Namespace}, &bc) + k8sClient.Get(ctx, types.NamespacedName{Name: "sitebuilder-s2i-" + cr.Name, Namespace: cr.Namespace}, &bc) return bc.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) @@ -946,7 +946,7 @@ var _ = Describe("DrupalSite controller", func() { // Check gitlab webhook URL updated on the drupalSite status By("Expecting Gitlab webhook secret listed in the DrupalSite status") Eventually(func() bool { - return cr.Status.GitlabWebhookURL == "https://api."+ClusterName+".okd.cern.ch:443/apis/build.openshift.io/v1/namespaces/"+drupalSiteObject.Namespace+"/buildconfigs/"+"sitebuilder-s2i-"+nameVersionHash(drupalSiteObject)+"/webhooks/"+string(secret.Name)+"/gitlab" + return cr.Status.GitlabWebhookURL == "https://api."+ClusterName+".okd.cern.ch:443/apis/build.openshift.io/v1/namespaces/"+drupalSiteObject.Namespace+"/buildconfigs/"+"sitebuilder-s2i-"+cr.Name+"/webhooks/"+string(secret.Name)+"/gitlab" }, timeout, interval).Should(BeTrue()) }) }) @@ -1047,7 +1047,7 @@ var _ = Describe("DrupalSite controller", func() { By("Expecting new S2I buildConfig to be updated") Eventually(func() []metav1.OwnerReference { - k8sClient.Get(ctx, types.NamespacedName{Name: "sitebuilder-s2i-" + nameVersionHash(&cr), Namespace: key.Namespace}, &bc) + k8sClient.Get(ctx, types.NamespacedName{Name: "sitebuilder-s2i-" + cr.Name, Namespace: cr.Namespace}, &bc) return bc.ObjectMeta.OwnerReferences }, timeout, interval).Should(ContainElement(expectedOwnerReference)) diff --git a/controllers/drupalsite_resources.go b/controllers/drupalsite_resources.go index 92dec461958ff5bc861819f1ac7f4840a8ccb077..a968e003a0ee2d0672058a6488cd8d588e9fe752 100644 --- a/controllers/drupalsite_resources.go +++ b/controllers/drupalsite_resources.go @@ -227,7 +227,7 @@ func (r *DrupalSiteReconciler) ensureResourceX(ctx context.Context, d *webservic } return nil case "bc_s2i": - bc := &buildv1.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "sitebuilder-s2i-" + nameVersionHash(d), Namespace: d.Namespace}} + bc := &buildv1.BuildConfig{ObjectMeta: metav1.ObjectMeta{Name: "sitebuilder-s2i-" + d.Name, Namespace: d.Namespace}} // We don't really benefit from udating here, because of https://docs.openshift.com/container-platform/4.6/builds/triggering-builds-build-hooks.html#builds-configuration-change-triggers_triggering-builds-build-hooks _, err := controllerruntime.CreateOrUpdate(ctx, r.Client, bc, func() error { return buildConfigForDrupalSiteBuilderS2I(bc, d) @@ -643,27 +643,6 @@ func buildConfigForDrupalSiteBuilderS2I(currentobject *buildv1.BuildConfig, d *w CommonSpec: buildv1.CommonSpec{ Resources: BuildResources, CompletionDeadlineSeconds: pointer.Int64Ptr(1200), - Source: buildv1.BuildSource{ - Git: &buildv1.GitBuildSource{ - // TODO: support branches https://gitlab.cern.ch/drupal/paas/drupalsite-operator/-/issues/28 - Ref: "master", - URI: d.Spec.Configuration.ExtraConfigurationRepo, - }, - }, - Strategy: buildv1.BuildStrategy{ - SourceStrategy: &buildv1.SourceBuildStrategy{ - From: corev1.ObjectReference{ - Kind: "DockerImage", - Name: SiteBuilderImage + ":" + releaseID(d), - }, - }, - }, - Output: buildv1.BuildOutput{ - To: &corev1.ObjectReference{ - Kind: "ImageStreamTag", - Name: "sitebuilder-s2i-" + d.Name + ":" + releaseID(d), - }, - }, }, Triggers: []buildv1.BuildTriggerPolicy{ { @@ -678,6 +657,27 @@ func buildConfigForDrupalSiteBuilderS2I(currentobject *buildv1.BuildConfig, d *w }, } } + currentobject.Spec.CommonSpec.Source = buildv1.BuildSource{ + Git: &buildv1.GitBuildSource{ + // TODO: support branches https://gitlab.cern.ch/drupal/paas/drupalsite-operator/-/issues/28 + Ref: "master", + URI: d.Spec.Configuration.ExtraConfigurationRepo, + }, + } + currentobject.Spec.Strategy = buildv1.BuildStrategy{ + SourceStrategy: &buildv1.SourceBuildStrategy{ + From: corev1.ObjectReference{ + Kind: "DockerImage", + Name: SiteBuilderImage + ":" + releaseID(d), + }, + }, + } + currentobject.Spec.Output = buildv1.BuildOutput{ + To: &corev1.ObjectReference{ + Kind: "ImageStreamTag", + Name: "sitebuilder-s2i-" + d.Name + ":" + releaseID(d), + }, + } if currentobject.Labels == nil { currentobject.Labels = map[string]string{} } diff --git a/controllers/reconciler_common.go b/controllers/reconciler_common.go index a8d506163b3e1029d7d99341e23d015b71ba1dbc..d752aa6618a4db48fce8d98faf9ea11581e013dd 100644 --- a/controllers/reconciler_common.go +++ b/controllers/reconciler_common.go @@ -292,7 +292,7 @@ func fetchDrupalSitesInNamespace(mgr ctrl.Manager, log logr.Logger, namespace st func addGitlabWebhookToStatus(ctx context.Context, drp *webservicesv1a1.DrupalSite) bool { // Fetch the gitlab webhook trigger secret value gitlabTriggerSecret := "gitlab-trigger-secret-" + drp.Name - webHookUrl := "https://api." + ClusterName + ".okd.cern.ch:443/apis/build.openshift.io/v1/namespaces/" + drp.Namespace + "/buildconfigs/" + "sitebuilder-s2i-" + nameVersionHash(drp) + "/webhooks/" + gitlabTriggerSecret + "/gitlab" + webHookUrl := "https://api." + ClusterName + ".okd.cern.ch:443/apis/build.openshift.io/v1/namespaces/" + drp.Namespace + "/buildconfigs/" + "sitebuilder-s2i-" + drp.Name + "/webhooks/" + gitlabTriggerSecret + "/gitlab" if drp.Status.GitlabWebhookURL != webHookUrl { drp.Status.GitlabWebhookURL = webHookUrl return true