Skip to content

Commit 2ae3a95

Browse files
committed
restic reconcile log reduction
1 parent 45bd6fc commit 2ae3a95

File tree

2 files changed

+52
-10
lines changed

2 files changed

+52
-10
lines changed

controllers/restic.go

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ const (
3131

3232
var (
3333
resticPvHostPath string = getResticPvHostPath()
34+
emptyString = ""
3435

3536
// v1.MountPropagationHostToContainer is a const. Const cannot be pointed to.
3637
// we need to declare mountPropagationToHostContainer so that we have an address to point to
@@ -107,7 +108,6 @@ func (r *DPAReconciler) ReconcileResticDaemonset(log logr.Logger) (bool, error)
107108
if err := controllerutil.SetControllerReference(&dpa, ds, r.Scheme); err != nil {
108109
return err
109110
}
110-
111111
if _, err := r.buildResticDaemonset(&dpa, ds); err != nil {
112112
return err
113113
}
@@ -144,21 +144,17 @@ func (r *DPAReconciler) buildResticDaemonset(dpa *oadpv1alpha1.DataProtectionApp
144144
return nil, fmt.Errorf("ds cannot be nil")
145145
}
146146

147-
resticDaemonSetName := ds.Name
148-
ownerRefs := ds.OwnerReferences
149-
150-
*ds = *install.DaemonSet(ds.Namespace,
147+
prevDs := ds.DeepCopy()
148+
ds.Spec = install.DaemonSet(ds.Namespace,
151149
install.WithResources(r.getResticResourceReqs(dpa)),
152150
install.WithImage(getVeleroImage(dpa)),
153151
install.WithAnnotations(dpa.Spec.PodAnnotations),
154-
install.WithSecret(false))
152+
install.WithSecret(false)).Spec
155153

156-
ds.Name = resticDaemonSetName
157-
ds.OwnerReferences = ownerRefs
158-
return r.customizeResticDaemonset(dpa, ds)
154+
return r.customizeResticDaemonset(dpa, ds, prevDs)
159155
}
160156

161-
func (r *DPAReconciler) customizeResticDaemonset(dpa *oadpv1alpha1.DataProtectionApplication, ds *appsv1.DaemonSet) (*appsv1.DaemonSet, error) {
157+
func (r *DPAReconciler) customizeResticDaemonset(dpa *oadpv1alpha1.DataProtectionApplication, ds *appsv1.DaemonSet, prevDs *appsv1.DaemonSet) (*appsv1.DaemonSet, error) {
162158

163159
// customize specs
164160
ds.Spec.Selector = resticLabelSelector
@@ -234,6 +230,49 @@ func (r *DPAReconciler) customizeResticDaemonset(dpa *oadpv1alpha1.DataProtectio
234230
if err := credentials.AppendCloudProviderVolumes(dpa, ds, providerNeedsDefaultCreds, hasCloudStorage); err != nil {
235231
return nil, err
236232
}
233+
234+
// Define defaults to avoid update events
235+
// replace volumeSource HostPath Type if nil with empty string
236+
for i, vol := range ds.Spec.Template.Spec.Volumes {
237+
if vol.VolumeSource.HostPath != nil && vol.VolumeSource.HostPath.Type == nil {
238+
ds.Spec.Template.Spec.Volumes[i].VolumeSource.HostPath.Type = (*corev1.HostPathType)(&emptyString)
239+
}
240+
}
241+
for i, container := range ds.Spec.Template.Spec.Containers {
242+
for j, env := range container.Env {
243+
if env.ValueFrom != nil && env.ValueFrom.FieldRef != nil && ds.Spec.Template.Spec.Containers[i].Env[j].ValueFrom.FieldRef.APIVersion == "" {
244+
ds.Spec.Template.Spec.Containers[i].Env[j].ValueFrom.FieldRef.APIVersion = "v1"
245+
}
246+
}
247+
if container.TerminationMessagePath == "" {
248+
ds.Spec.Template.Spec.Containers[i].TerminationMessagePath = corev1.TerminationMessagePathDefault
249+
}
250+
if container.TerminationMessagePolicy == "" {
251+
ds.Spec.Template.Spec.Containers[i].TerminationMessagePolicy = corev1.TerminationMessageReadFile
252+
}
253+
}
254+
if ds.Spec.Template.Spec.RestartPolicy == "" {
255+
ds.Spec.Template.Spec.RestartPolicy = prevDs.Spec.Template.Spec.RestartPolicy
256+
}
257+
if ds.Spec.Template.Spec.DNSPolicy == "" {
258+
ds.Spec.Template.Spec.DNSPolicy = prevDs.Spec.Template.Spec.DNSPolicy
259+
}
260+
if ds.Spec.Template.Spec.SchedulerName == "" {
261+
ds.Spec.Template.Spec.SchedulerName = prevDs.Spec.Template.Spec.SchedulerName
262+
}
263+
if ds.Spec.Template.Spec.DeprecatedServiceAccount == "" {
264+
ds.Spec.Template.Spec.DeprecatedServiceAccount = prevDs.Spec.Template.Spec.DeprecatedServiceAccount
265+
}
266+
if ds.Spec.Template.Spec.TerminationGracePeriodSeconds == nil {
267+
ds.Spec.Template.Spec.TerminationGracePeriodSeconds = prevDs.Spec.Template.Spec.TerminationGracePeriodSeconds
268+
}
269+
if ds.Spec.UpdateStrategy.RollingUpdate == nil {
270+
ds.Spec.UpdateStrategy.RollingUpdate = prevDs.Spec.UpdateStrategy.RollingUpdate
271+
}
272+
if ds.Spec.RevisionHistoryLimit == nil {
273+
ds.Spec.RevisionHistoryLimit = prevDs.Spec.RevisionHistoryLimit
274+
}
275+
237276
return ds, nil
238277
}
239278

pkg/credentials/credentials.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ var (
7070
PluginName: common.VeleroPluginForCSI,
7171
},
7272
}
73+
int32_0644 = int32(0644)
7374
)
7475

7576
func getAWSPluginImage(dpa *oadpv1alpha1.DataProtectionApplication) string {
@@ -197,6 +198,7 @@ func AppendCloudProviderVolumes(dpa *oadpv1alpha1.DataProtectionApplication, ds
197198
VolumeSource: corev1.VolumeSource{
198199
Secret: &corev1.SecretVolumeSource{
199200
SecretName: secretName,
201+
DefaultMode: &int32_0644,
200202
},
201203
},
202204
},
@@ -319,6 +321,7 @@ func AppendPluginSpecificSpecs(dpa *oadpv1alpha1.DataProtectionApplication, vele
319321
VolumeSource: corev1.VolumeSource{
320322
Secret: &corev1.SecretVolumeSource{
321323
SecretName: cloudProviderMap.BslSecretName,
324+
DefaultMode: &int32_0644,
322325
},
323326
},
324327
},

0 commit comments

Comments
 (0)