Skip to content

Commit cad915c

Browse files
committed
Ability to set pod_environment_secret and pod_environment_configmap on cluster resource
1 parent ca0c27a commit cad915c

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

pkg/cluster/k8sres.go

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,25 @@ import (
1010

1111
"github.com/pkg/errors"
1212
"github.com/sirupsen/logrus"
13-
14-
appsv1 "k8s.io/api/apps/v1"
15-
v1 "k8s.io/api/core/v1"
16-
policybeta1 "k8s.io/api/policy/v1beta1"
17-
apierrors "k8s.io/apimachinery/pkg/api/errors"
18-
"k8s.io/apimachinery/pkg/api/resource"
19-
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
20-
"k8s.io/apimachinery/pkg/types"
21-
"k8s.io/apimachinery/pkg/util/intstr"
22-
13+
acidzalando "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do"
2314
acidv1 "github.com/zalando/postgres-operator/pkg/apis/acid.zalan.do/v1"
2415
"github.com/zalando/postgres-operator/pkg/spec"
2516
"github.com/zalando/postgres-operator/pkg/util"
2617
"github.com/zalando/postgres-operator/pkg/util/config"
2718
"github.com/zalando/postgres-operator/pkg/util/constants"
2819
"github.com/zalando/postgres-operator/pkg/util/k8sutil"
2920
"github.com/zalando/postgres-operator/pkg/util/retryutil"
21+
appsv1 "k8s.io/api/apps/v1"
3022
batchv1 "k8s.io/api/batch/v1"
3123
batchv1beta1 "k8s.io/api/batch/v1beta1"
24+
v1 "k8s.io/api/core/v1"
25+
policybeta1 "k8s.io/api/policy/v1beta1"
26+
apierrors "k8s.io/apimachinery/pkg/api/errors"
27+
"k8s.io/apimachinery/pkg/api/resource"
28+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3229
"k8s.io/apimachinery/pkg/labels"
30+
"k8s.io/apimachinery/pkg/types"
31+
"k8s.io/apimachinery/pkg/util/intstr"
3332
)
3433

3534
const (
@@ -862,28 +861,29 @@ func deduplicateEnvVars(input []v1.EnvVar, containerName string, logger *logrus.
862861
return result
863862
}
864863

865-
// Return list of variables the pod recieved from the configured ConfigMap
864+
// Return list of variables the pod received from the configured ConfigMap
866865
func (c *Cluster) getPodEnvironmentConfigMapVariables() ([]v1.EnvVar, error) {
867866
configMapPodEnvVarsList := make([]v1.EnvVar, 0)
868867

869868
if c.OpConfig.PodEnvironmentConfigMap.Name == "" {
870869
return configMapPodEnvVarsList, nil
871870
}
872871

872+
configMapName := c.podEnvironmentObjectNameTemplate(c.OpConfig.PodEnvironmentConfigMap.Name)
873873
cm, err := c.KubeClient.ConfigMaps(c.OpConfig.PodEnvironmentConfigMap.Namespace).Get(
874874
context.TODO(),
875-
c.OpConfig.PodEnvironmentConfigMap.Name,
875+
configMapName,
876876
metav1.GetOptions{})
877877
if err != nil {
878878
// if not found, try again using the cluster's namespace if it's different (old behavior)
879879
if k8sutil.ResourceNotFound(err) && c.Namespace != c.OpConfig.PodEnvironmentConfigMap.Namespace {
880880
cm, err = c.KubeClient.ConfigMaps(c.Namespace).Get(
881881
context.TODO(),
882-
c.OpConfig.PodEnvironmentConfigMap.Name,
882+
configMapName,
883883
metav1.GetOptions{})
884884
}
885885
if err != nil {
886-
return nil, fmt.Errorf("could not read PodEnvironmentConfigMap: %v", err)
886+
return nil, fmt.Errorf("could not read PodEnvironmentConfigMap %s: %w", configMapName, err)
887887
}
888888
}
889889
for k, v := range cm.Data {
@@ -907,7 +907,7 @@ func (c *Cluster) getPodEnvironmentSecretVariables() ([]v1.EnvVar, error) {
907907
var err error
908908
secret, err = c.KubeClient.Secrets(c.Namespace).Get(
909909
context.TODO(),
910-
c.OpConfig.PodEnvironmentSecret,
910+
c.podEnvironmentObjectNameTemplate(c.OpConfig.PodEnvironmentSecret),
911911
metav1.GetOptions{})
912912
if err != nil {
913913
if apierrors.IsNotFound(err) {
@@ -941,6 +941,11 @@ func (c *Cluster) getPodEnvironmentSecretVariables() ([]v1.EnvVar, error) {
941941
return secretPodEnvVarsList, nil
942942
}
943943

944+
func (c *Cluster) podEnvironmentObjectNameTemplate(template string) string {
945+
objectNameTemplate := config.StringTemplate(template)
946+
return objectNameTemplate.Format("cluster", c.clusterName().Name, "tprkind", acidv1.PostgresCRDResourceKind, "tprgroup", acidzalando.GroupName)
947+
}
948+
944949
func getSidecarContainer(sidecar acidv1.Sidecar, index int, resources *v1.ResourceRequirements) *v1.Container {
945950
name := sidecar.Name
946951
if name == "" {

pkg/cluster/k8sres_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,7 +737,7 @@ func TestPodEnvironmentConfigMapVariables(t *testing.T) {
737737
},
738738
},
739739
},
740-
err: fmt.Errorf("could not read PodEnvironmentConfigMap: NotFound"),
740+
err: fmt.Errorf("could not read PodEnvironmentConfigMap %s: NotFound", testPodEnvironmentObjectNotExists),
741741
},
742742
{
743743
subTest: "simple PodEnvironmentConfigMap",

0 commit comments

Comments
 (0)