diff --git a/controllers/restic.go b/controllers/restic.go index 00e512c20d..973dce1884 100644 --- a/controllers/restic.go +++ b/controllers/restic.go @@ -107,7 +107,6 @@ func (r *DPAReconciler) ReconcileResticDaemonset(log logr.Logger) (bool, error) if err := controllerutil.SetControllerReference(&dpa, ds, r.Scheme); err != nil { return err } - if _, err := r.buildResticDaemonset(&dpa, ds); err != nil { return err } @@ -144,17 +143,16 @@ func (r *DPAReconciler) buildResticDaemonset(dpa *oadpv1alpha1.DataProtectionApp return nil, fmt.Errorf("ds cannot be nil") } - resticDaemonSetName := ds.Name - ownerRefs := ds.OwnerReferences - - *ds = *install.DaemonSet(ds.Namespace, + installDs := install.DaemonSet(ds.Namespace, install.WithResources(r.getResticResourceReqs(dpa)), install.WithImage(getVeleroImage(dpa)), install.WithAnnotations(dpa.Spec.PodAnnotations), install.WithSecret(false)) + // Update Items in ObjectMeta + ds.TypeMeta = installDs.TypeMeta + // Update Spec + ds.Spec = installDs.Spec - ds.Name = resticDaemonSetName - ds.OwnerReferences = ownerRefs return r.customizeResticDaemonset(dpa, ds) } @@ -234,6 +232,7 @@ func (r *DPAReconciler) customizeResticDaemonset(dpa *oadpv1alpha1.DataProtectio if err := credentials.AppendCloudProviderVolumes(dpa, ds, providerNeedsDefaultCreds, hasCloudStorage); err != nil { return nil, err } + return ds, nil } diff --git a/controllers/velero.go b/controllers/velero.go index 990d6dccd9..d576081014 100644 --- a/controllers/velero.go +++ b/controllers/velero.go @@ -379,9 +379,7 @@ func (r *DPAReconciler) buildVeleroDeployment(veleroDeployment *appsv1.Deploymen // TODO! Reuse removeDuplicateValues with interface type dpa.Spec.Configuration.Velero.DefaultPlugins = removeDuplicatePluginValues(dpa.Spec.Configuration.Velero.DefaultPlugins) dpa.Spec.Configuration.Velero.FeatureFlags = removeDuplicateValues(dpa.Spec.Configuration.Velero.FeatureFlags) - deploymentName := veleroDeployment.Name //saves desired deployment name before install.Deployment overwrites them. - ownerRefs := veleroDeployment.OwnerReferences // saves desired owner refs - *veleroDeployment = *install.Deployment(veleroDeployment.Namespace, + installDeployment := install.Deployment(veleroDeployment.Namespace, install.WithResources(r.getVeleroResourceReqs(dpa)), install.WithImage(getVeleroImage(dpa)), install.WithFeatures(dpa.Spec.Configuration.Velero.FeatureFlags), @@ -391,9 +389,8 @@ func (r *DPAReconciler) buildVeleroDeployment(veleroDeployment *appsv1.Deploymen // our secrets are appended to containers/volumeMounts in credentials.AppendPluginSpecificSpecs function install.WithSecret(false), ) - // adjust veleroDeployment from install - veleroDeployment.Name = deploymentName //reapply saved deploymentName and owner refs - veleroDeployment.OwnerReferences = ownerRefs + veleroDeployment.TypeMeta = installDeployment.TypeMeta + veleroDeployment.Spec = installDeployment.Spec return r.customizeVeleroDeployment(dpa, veleroDeployment) }