fix!: custom environment variables are appended after all generated variables
This commit is contained in:
parent
79b232d2fa
commit
33ea04a6da
|
|
@ -1035,22 +1035,19 @@ func (c *Cluster) generateSpiloPodEnvVars(
|
||||||
}
|
}
|
||||||
|
|
||||||
// fetch variables from custom environment Secret
|
// fetch variables from custom environment Secret
|
||||||
// that will override all subsequent global variables
|
|
||||||
secretEnvVarsList, err := c.getPodEnvironmentSecretVariables()
|
secretEnvVarsList, err := c.getPodEnvironmentSecretVariables()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
envVars = appendIfNotPresent(envVars, secretEnvVarsList...)
|
|
||||||
|
|
||||||
// fetch variables from custom environment ConfigMap
|
// fetch variables from custom environment ConfigMap
|
||||||
// that will override all subsequent global variables
|
|
||||||
configMapEnvVarsList, err := c.getPodEnvironmentConfigMapVariables()
|
configMapEnvVarsList, err := c.getPodEnvironmentConfigMapVariables()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
envVars = appendIfNotPresent(envVars, configMapEnvVarsList...)
|
|
||||||
|
|
||||||
// global variables derived from operator configuration
|
// global variables derived from operator configuration
|
||||||
|
// that do not override custom environment variables
|
||||||
opConfigEnvVars := make([]v1.EnvVar, 0)
|
opConfigEnvVars := make([]v1.EnvVar, 0)
|
||||||
if c.OpConfig.WALES3Bucket != "" {
|
if c.OpConfig.WALES3Bucket != "" {
|
||||||
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "WAL_S3_BUCKET", Value: c.OpConfig.WALES3Bucket})
|
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "WAL_S3_BUCKET", Value: c.OpConfig.WALES3Bucket})
|
||||||
|
|
@ -1080,7 +1077,15 @@ func (c *Cluster) generateSpiloPodEnvVars(
|
||||||
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "LOG_BUCKET_SCOPE_PREFIX", Value: ""})
|
opConfigEnvVars = append(opConfigEnvVars, v1.EnvVar{Name: "LOG_BUCKET_SCOPE_PREFIX", Value: ""})
|
||||||
}
|
}
|
||||||
|
|
||||||
envVars = appendIfNotPresent(envVars, opConfigEnvVars...)
|
for _, env := range opConfigEnvVars {
|
||||||
|
if !isEnvVarPresent(secretEnvVarsList, env.Name) && !isEnvVarPresent(configMapEnvVarsList, env.Name) {
|
||||||
|
envVars = appendIfNotPresent(envVars, env)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// append custom environment variables last to allow chained referencing
|
||||||
|
envVars = appendIfNotPresent(envVars, secretEnvVarsList...)
|
||||||
|
envVars = appendIfNotPresent(envVars, configMapEnvVarsList...)
|
||||||
|
|
||||||
return envVars, nil
|
return envVars, nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -623,7 +623,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
||||||
}
|
}
|
||||||
expectedS3BucketConfigMap := []ExpectedValue{
|
expectedS3BucketConfigMap := []ExpectedValue{
|
||||||
{
|
{
|
||||||
envIndex: 17,
|
envIndex: 19,
|
||||||
envVarConstant: "wal_s3_bucket",
|
envVarConstant: "wal_s3_bucket",
|
||||||
envVarValue: "global-s3-bucket-configmap",
|
envVarValue: "global-s3-bucket-configmap",
|
||||||
},
|
},
|
||||||
|
|
@ -709,14 +709,14 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
||||||
envVarValue: fmt.Sprintf("/%s", dummyUUID),
|
envVarValue: fmt.Sprintf("/%s", dummyUUID),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
envIndex: 21,
|
envIndex: 23,
|
||||||
envVarConstant: "clone_aws_endpoint",
|
envVarConstant: "clone_aws_endpoint",
|
||||||
envVarValue: "s3.eu-west-1.amazonaws.com",
|
envVarValue: "s3.eu-west-1.amazonaws.com",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
expectedCloneEnvSecret := []ExpectedValue{
|
expectedCloneEnvSecret := []ExpectedValue{
|
||||||
{
|
{
|
||||||
envIndex: 21,
|
envIndex: 24,
|
||||||
envVarConstant: "clone_aws_access_key_id",
|
envVarConstant: "clone_aws_access_key_id",
|
||||||
envVarValueRef: &v1.EnvVarSource{
|
envVarValueRef: &v1.EnvVarSource{
|
||||||
SecretKeyRef: &v1.SecretKeySelector{
|
SecretKeyRef: &v1.SecretKeySelector{
|
||||||
|
|
@ -735,7 +735,7 @@ func TestGenerateSpiloPodEnvVars(t *testing.T) {
|
||||||
envVarValue: "gs://some/path/",
|
envVarValue: "gs://some/path/",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
envIndex: 20,
|
envIndex: 23,
|
||||||
envVarConstant: "standby_google_application_credentials",
|
envVarConstant: "standby_google_application_credentials",
|
||||||
envVarValueRef: &v1.EnvVarSource{
|
envVarValueRef: &v1.EnvVarSource{
|
||||||
SecretKeyRef: &v1.SecretKeySelector{
|
SecretKeyRef: &v1.SecretKeySelector{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue