diff --git a/internal/builders/controlplane/deployment.go b/internal/builders/controlplane/deployment.go index 5efd8d9..e198384 100644 --- a/internal/builders/controlplane/deployment.go +++ b/internal/builders/controlplane/deployment.go @@ -119,7 +119,13 @@ func (d Deployment) Build(ctx context.Context, deployment *appsv1.Deployment, te d.setLabels(deployment, utilities.MergeMaps(utilities.KamajiLabels(tenantControlPlane.GetName(), "deployment"), tenantControlPlane.Spec.ControlPlane.Deployment.AdditionalMetadata.Labels)) d.setAnnotations(deployment, utilities.MergeMaps(deployment.Annotations, tenantControlPlane.Spec.ControlPlane.Deployment.AdditionalMetadata.Annotations)) d.setTemplateLabels(&deployment.Spec.Template, utilities.MergeMaps(d.templateLabels(ctx, &tenantControlPlane), tenantControlPlane.Spec.ControlPlane.Deployment.PodAdditionalMetadata.Labels)) - d.setTemplateAnnotations(&deployment.Spec.Template, utilities.MergeMaps(tenantControlPlane.Spec.ControlPlane.Deployment.PodAdditionalMetadata.Annotations, map[string]string{"storage.kamaji.clastix.io/config": tenantControlPlane.Status.Storage.Config.Checksum})) + d.setTemplateAnnotations(&deployment.Spec.Template, utilities.MergeMaps(tenantControlPlane.Spec.ControlPlane.Deployment.PodAdditionalMetadata.Annotations, map[string]string{ + // The following annotations are used to trigger a rollout in case of any change: + // - configuration changes + // - certificate changes, or CA rotation + "storage.kamaji.clastix.io/config": tenantControlPlane.Status.Storage.Config.Checksum, + "storage.kamaji.clastix.io/certificate": tenantControlPlane.Status.Storage.Certificate.Checksum, + })) d.setNodeSelector(&deployment.Spec.Template.Spec, tenantControlPlane) d.setToleration(&deployment.Spec.Template.Spec, tenantControlPlane) d.setAffinity(&deployment.Spec.Template.Spec, tenantControlPlane)