diff --git a/internal/operator/package_reconciler.go b/internal/operator/package_reconciler.go index 879fe3d9..f46185fd 100644 --- a/internal/operator/package_reconciler.go +++ b/internal/operator/package_reconciler.go @@ -37,6 +37,14 @@ import ( "sigs.k8s.io/controller-runtime/pkg/reconcile" ) +const ( + // AnnotationSkipCozystackValues disables injection of cozystack-values secret into HelmRelease + // This annotation should be placed on PackageSource + AnnotationSkipCozystackValues = "operator.cozystack.io/skip-cozystack-values" + // SecretCozystackValues is the name of the secret containing cluster and namespace configuration + SecretCozystackValues = "cozystack-values" +) + // PackageReconciler reconciles Package resources type PackageReconciler struct { client.Client @@ -215,6 +223,16 @@ func (r *PackageReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct }, } + // Add valuesFrom for cozystack-values secret unless disabled by annotation on PackageSource + if packageSource.GetAnnotations()[AnnotationSkipCozystackValues] != "true" { + hr.Spec.ValuesFrom = []helmv2.ValuesReference{ + { + Kind: "Secret", + Name: SecretCozystackValues, + }, + } + } + // Set ownerReference gvk, err := apiutil.GVKForObject(pkg, r.Scheme) if err != nil { diff --git a/packages/core/installer/templates/cozystack-operator.yaml b/packages/core/installer/templates/cozystack-operator.yaml index d5efa8b4..514dcc32 100644 --- a/packages/core/installer/templates/cozystack-operator.yaml +++ b/packages/core/installer/templates/cozystack-operator.yaml @@ -83,6 +83,8 @@ apiVersion: cozystack.io/v1alpha1 kind: PackageSource metadata: name: cozystack.cozystack-platform + annotations: + operator.cozystack.io/skip-cozystack-values: "true" spec: sourceRef: kind: OCIRepository