From bc7f4f08322e0fe8c5a6c0c2ff5861b3c7aad49b Mon Sep 17 00:00:00 2001 From: Alex Conrey Date: Fri, 10 Mar 2023 09:59:56 -0800 Subject: [PATCH] feat: add support for extraEnv value in chart --- .../auto-deploy-app/templates/deployment.yaml | 3 ++ .../test/templates/deployment_test.go | 41 +++++++++++++++++++ assets/auto-deploy-app/values.yaml | 4 ++ 3 files changed, 48 insertions(+) diff --git a/assets/auto-deploy-app/templates/deployment.yaml b/assets/auto-deploy-app/templates/deployment.yaml index 5dfdd23..d6a7e69 100644 --- a/assets/auto-deploy-app/templates/deployment.yaml +++ b/assets/auto-deploy-app/templates/deployment.yaml @@ -117,6 +117,9 @@ spec: {{- end }} {{- end }} env: +{{- if .Values.extraEnv }} +{{ toYaml .Values.extraEnv | indent 8 }} +{{- end }} {{- if .Values.postgresql.managed }} - name: POSTGRES_USER valueFrom: diff --git a/assets/auto-deploy-app/test/templates/deployment_test.go b/assets/auto-deploy-app/test/templates/deployment_test.go index 11058a7..98c2125 100644 --- a/assets/auto-deploy-app/test/templates/deployment_test.go +++ b/assets/auto-deploy-app/test/templates/deployment_test.go @@ -1190,3 +1190,44 @@ func TestDeploymentTemplateWithExtraEnvFrom(t *testing.T) { }) } } + +func TestDeploymentTemplateWithExtraEnv(t *testing.T) { + releaseName := "deployment-with-extra-env-test" + templates := []string{"templates/deployment.yaml"} + + tcs := []struct { + name string + values map[string]string + expectedEnv coreV1.EnvVar + }{ + { + name: "with extra env secret test", + values: map[string]string{ + "extraEnv[0].name": "env-name-test", + "extraEnv[0].value": "test-value", + }, + expectedEnv: coreV1.EnvVar{ + Name: "env-name-test", + Value: "test-value", + }, + }, + } + + for _, tc := range tcs { + t.Run(tc.name, func(t *testing.T) { + opts := &helm.Options{ + SetValues: tc.values, + } + output, err := helm.RenderTemplateE(t, opts, helmChartPath, releaseName, templates) + + if err != nil { + t.Error(err) + return + } + + deployment := new(appsV1.Deployment) + helm.UnmarshalK8SYaml(t, output, deployment) + require.Contains(t, deployment.Spec.Template.Spec.Containers[0].Env, tc.expectedEnv) + }) + } +} diff --git a/assets/auto-deploy-app/values.yaml b/assets/auto-deploy-app/values.yaml index 2590a1f..4d03cdd 100644 --- a/assets/auto-deploy-app/values.yaml +++ b/assets/auto-deploy-app/values.yaml @@ -213,6 +213,10 @@ extraEnvFrom: [] # - secretRef: # name: {{ .Values.application.secretName }} +extraEnv: [] +# - name: ENV_VAR +# value: ENV_VAL + workers: {} # worker: # replicaCount: 1 -- GitLab