From d874214fab6916e7b44e8bebfa614c6a6bbe4fdd Mon Sep 17 00:00:00 2001 From: Mustafa Elbehery Date: Fri, 11 Oct 2024 01:56:09 +0200 Subject: [PATCH] add envVars --- pkg/cmd/backuprestore/backupserver.go | 6 ++--- pkg/cmd/backuprestore/fileioutils.go | 2 -- .../periodicbackupcontroller.go | 25 ++++++++++++++++--- pkg/operator/starter.go | 3 ++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/pkg/cmd/backuprestore/backupserver.go b/pkg/cmd/backuprestore/backupserver.go index 5cdc96822..c1a2cde52 100644 --- a/pkg/cmd/backuprestore/backupserver.go +++ b/pkg/cmd/backuprestore/backupserver.go @@ -100,7 +100,7 @@ func (b *backupServer) Validate() error { klog.Infof("@Mustafa: before cronSchedule") cronSchedule, err := cron.ParseStandard(b.schedule) if err != nil { - klog.Infof("@Mustafa: cronSchedule [%v] : err [%w]", cronSchedule, err) + klog.Infof("@Mustafa: cronSchedule [%v] : err [%v]", cronSchedule, err) return fmt.Errorf("error parsing backup schedule %v: %w", b.schedule, err) } b.cronSchedule = cronSchedule @@ -110,7 +110,7 @@ func (b *backupServer) Validate() error { b.backupOptions.backupDir = backupVolume err = b.backupOptions.Validate() if err != nil { - klog.Infof("@Mustafa: backupOptions.Validate() err [%w]", err) + klog.Infof("@Mustafa: backupOptions.Validate() err [%v]", err) return fmt.Errorf("error validating backup %v: %w", b.backupOptions, err) } klog.Infof("@Mustafa: after backupOptions.Validate()") @@ -118,7 +118,7 @@ func (b *backupServer) Validate() error { klog.Infof("@Mustafa: before pruneOpts.Validate()") err = b.PruneOpts.Validate() if err != nil { - klog.Infof("@Mustafa: pruneOpts.Validate() err [%w]", err) + klog.Infof("@Mustafa: pruneOpts.Validate() err [%v]", err) return fmt.Errorf("error validating prune args %v: %w", b.PruneOpts, err) } klog.Infof("@Mustafa: after pruneOpts.Validate()") diff --git a/pkg/cmd/backuprestore/fileioutils.go b/pkg/cmd/backuprestore/fileioutils.go index 231485b0c..b71d918df 100644 --- a/pkg/cmd/backuprestore/fileioutils.go +++ b/pkg/cmd/backuprestore/fileioutils.go @@ -10,8 +10,6 @@ import ( "time" "k8s.io/klog/v2" - - "k8s.io/klog/v2" ) func dirExists(dirname string) (bool, error) { diff --git a/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go b/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go index 98fe3db8c..1493b2bac 100644 --- a/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go +++ b/pkg/operator/periodicbackupcontroller/periodicbackupcontroller.go @@ -7,6 +7,8 @@ import ( "strings" "time" + "github.com/openshift/cluster-etcd-operator/pkg/etcdenvvar" + clientv1 "k8s.io/client-go/listers/core/v1" backupv1alpha1 "github.com/openshift/api/config/v1alpha1" @@ -51,6 +53,7 @@ type PeriodicBackupController struct { backupVarGetter backuphelpers.BackupVar featureGateAccessor featuregates.FeatureGateAccess kubeInformers v1helpers.KubeInformersForNamespaces + envVarGetter etcdenvvar.EnvVar } func NewPeriodicBackupController( @@ -63,7 +66,8 @@ func NewPeriodicBackupController( accessor featuregates.FeatureGateAccess, backupVarGetter backuphelpers.BackupVar, backupsInformer factory.Informer, - kubeInformers v1helpers.KubeInformersForNamespaces) factory.Controller { + kubeInformers v1helpers.KubeInformersForNamespaces, + envVarGetter etcdenvvar.EnvVar) factory.Controller { c := &PeriodicBackupController{ operatorClient: operatorClient, @@ -74,6 +78,7 @@ func NewPeriodicBackupController( backupVarGetter: backupVarGetter, featureGateAccessor: accessor, kubeInformers: kubeInformers, + envVarGetter: envVarGetter, } syncer := health.NewDefaultCheckingSyncWrapper(c.sync) @@ -117,7 +122,7 @@ func (c *PeriodicBackupController) sync(ctx context.Context, _ factory.SyncConte return err } - _, err = c.kubeClient.AppsV1().DaemonSets(operatorclient.TargetNamespace).Create(ctx, deployBackupServerDaemonSet(endpoints), v1.CreateOptions{}) + _, err = c.kubeClient.AppsV1().DaemonSets(operatorclient.TargetNamespace).Create(ctx, deployBackupServerDaemonSet(c.envVarGetter.GetEnvVars(), endpoints), v1.CreateOptions{}) if err != nil { return fmt.Errorf("PeriodicBackupController could not create [defaultBackupDeployment]: %w", err) } @@ -316,7 +321,7 @@ func newCronJob() (*batchv1.CronJob, error) { return obj.(*batchv1.CronJob), nil } -func deployBackupServerDaemonSet(endpoints string) *appv1.DaemonSet { +func deployBackupServerDaemonSet(envVars map[string]string, endpoints string) *appv1.DaemonSet { deploy := appv1.DaemonSet{ ObjectMeta: v1.ObjectMeta{ Name: backupServerDaemonSet, @@ -376,6 +381,7 @@ func deployBackupServerDaemonSet(endpoints string) *appv1.DaemonSet { "--maxNumberOfBackups=3", fmt.Sprintf("--endpoints=%s", endpoints), }, + Env: getEnvVars(envVars), VolumeMounts: []corev1.VolumeMount{ {Name: "data-dir", MountPath: "/var/lib/etcd"}, {Name: "config-dir", MountPath: "/etc/kubernetes"}, @@ -411,3 +417,16 @@ func getEtcdEndpoints(ctx context.Context, client kubernetes.Interface) (string, return strings.Join(endpoints, ","), nil } + +func getEnvVars(m map[string]string) []corev1.EnvVar { + var res []corev1.EnvVar + + for k, v := range m { + res = append(res, corev1.EnvVar{ + Name: k, + Value: v, + }) + } + + return res +} diff --git a/pkg/operator/starter.go b/pkg/operator/starter.go index 9dcfc5cb7..25dc9c3d5 100644 --- a/pkg/operator/starter.go +++ b/pkg/operator/starter.go @@ -476,7 +476,8 @@ func RunOperator(ctx context.Context, controllerContext *controllercmd.Controlle featureGateAccessor, backupVar, configBackupInformer, - kubeInformersForNamespaces) + kubeInformersForNamespaces, + envVarController) backupController := backupcontroller.NewBackupController( AlivenessChecker,