@@ -1367,88 +1367,61 @@ func (r *Reconciler) generateRestoreJobIntent(cluster *v1beta1.PostgresCluster,
13671367 },
13681368 }
13691369
1370- // Add init containers from RepoHost.InitContainers if provided
1371- if cluster .Spec .Backups .PGBackRest .RepoHost != nil &&
1372- cluster .Spec .Backups .PGBackRest .RepoHost .InitContainers != nil {
1373-
1374- // Get the init containers from RepoHost
1375- initContainers := cluster .Spec .Backups .PGBackRest .RepoHost .InitContainers
1370+ repoHost := cluster .Spec .Backups .PGBackRest .RepoHost
13761371
1377- // If EnvFromSecret is specified, add the reference to each init container
1378- if cluster .Spec .Backups .PGBackRest .RepoHost .EnvFromSecret != nil {
1379- secretName := * cluster .Spec .Backups .PGBackRest .RepoHost .EnvFromSecret
1380-
1381- // Add the envFrom reference to each init container
1382- for i := range initContainers {
1383- initContainers [i ].EnvFrom = append (
1384- initContainers [i ].EnvFrom ,
1385- corev1.EnvFromSource {
1386- SecretRef : & corev1.SecretEnvSource {
1387- LocalObjectReference : corev1.LocalObjectReference {
1388- Name : secretName ,
1389- },
1390- },
1391- })
1392- }
1372+ if repoHost != nil && repoHost .EnvFromSecret != nil {
1373+ envFrom := corev1.EnvFromSource {
1374+ SecretRef : & corev1.SecretEnvSource {
1375+ LocalObjectReference : corev1.LocalObjectReference {
1376+ Name : * repoHost .EnvFromSecret ,
1377+ },
1378+ },
13931379 }
13941380
1395- // Add the init containers to the job's pod spec
1396- job .Spec .Template .Spec .InitContainers = initContainers
1381+ job .Spec .Template .Spec .Containers [0 ].EnvFrom = append (job .Spec .Template .Spec .Containers [0 ].EnvFrom , envFrom )
13971382 }
13981383
1399- // Add environment variables from the pgBackRest.RepoHost.EnvFromSecret if provided
1400- // This allows for environment variables to be set on the restore job from a Secret
1401- if cluster .Spec .Backups .PGBackRest .RepoHost != nil &&
1402- cluster .Spec .Backups .PGBackRest .RepoHost .EnvFromSecret != nil {
1403-
1404- secretName := * cluster .Spec .Backups .PGBackRest .RepoHost .EnvFromSecret
1384+ // Add init containers from RepoHost.InitContainers if provided
1385+ if repoHost != nil && repoHost .EnvFromSecret != nil && repoHost .InitContainers != nil {
1386+ initContainers := make ([]corev1.Container , 0 , len (repoHost .InitContainers ))
14051387
1406- // Find the pgbackrest-restore container and add the envFrom reference
1407- for i := range job .Spec .Template .Spec .Containers {
1408- if job .Spec .Template .Spec .Containers [i ].Name == naming .PGBackRestRestoreContainerName {
1409- job .Spec .Template .Spec .Containers [i ].EnvFrom = append (
1410- job .Spec .Template .Spec .Containers [i ].EnvFrom ,
1411- corev1.EnvFromSource {
1412- SecretRef : & corev1.SecretEnvSource {
1413- LocalObjectReference : corev1.LocalObjectReference {
1414- Name : secretName ,
1415- },
1416- },
1417- })
1418- break
1388+ // If EnvFromSecret is specified, add the reference to each init container
1389+ for _ , ic := range repoHost .InitContainers {
1390+ envFrom := corev1.EnvFromSource {
1391+ SecretRef : & corev1.SecretEnvSource {
1392+ LocalObjectReference : corev1.LocalObjectReference {
1393+ Name : * repoHost .EnvFromSecret ,
1394+ },
1395+ },
14191396 }
1397+ ic .EnvFrom = append (ic .EnvFrom , envFrom )
1398+
1399+ initContainers = append (initContainers , ic )
14201400 }
1401+
1402+ job .Spec .Template .Spec .InitContainers = append (job .Spec .Template .Spec .InitContainers , initContainers ... )
14211403 }
14221404
14231405 // Add sidecars from RepoHost.Containers to the restore job
1424- if cluster .Spec .Backups .PGBackRest .RepoHost != nil &&
1425- cluster .Spec .Backups .PGBackRest .RepoHost .Containers != nil {
1426-
1427- // Get the sidecars from RepoHost
1428- sidecars := cluster .Spec .Backups .PGBackRest .RepoHost .Containers
1429-
1430- // If EnvFromSecret is specified, add the reference to each sidecar container
1431- if cluster .Spec .Backups .PGBackRest .RepoHost .EnvFromSecret != nil {
1432- secretName := * cluster .Spec .Backups .PGBackRest .RepoHost .EnvFromSecret
1433-
1434- // Add the envFrom reference to each sidecar container
1435- for i := range sidecars {
1436- sidecars [i ].EnvFrom = append (
1437- sidecars [i ].EnvFrom ,
1438- corev1.EnvFromSource {
1439- SecretRef : & corev1.SecretEnvSource {
1440- LocalObjectReference : corev1.LocalObjectReference {
1441- Name : secretName ,
1442- },
1443- },
1444- })
1406+ if repoHost != nil && repoHost .EnvFromSecret != nil && repoHost .Containers != nil {
1407+ containers := make ([]corev1.Container , 0 , len (repoHost .Containers ))
1408+
1409+ // Add the envFrom reference to each sidecar container
1410+ for _ , c := range repoHost .Containers {
1411+ envFrom := corev1.EnvFromSource {
1412+ SecretRef : & corev1.SecretEnvSource {
1413+ LocalObjectReference : corev1.LocalObjectReference {
1414+ Name : * repoHost .EnvFromSecret ,
1415+ },
1416+ },
14451417 }
1418+ c .EnvFrom = append (c .EnvFrom , envFrom )
1419+
1420+ containers = append (containers , c )
14461421 }
14471422
14481423 // Add the sidecars to the job's containers
1449- job .Spec .Template .Spec .Containers = append (
1450- job .Spec .Template .Spec .Containers ,
1451- sidecars ... )
1424+ job .Spec .Template .Spec .Containers = append (job .Spec .Template .Spec .Containers , containers ... )
14521425 }
14531426
14541427 // Set the image pull secrets, if any exist.
0 commit comments