Loading assets/auto-deploy-app/templates/db-initialize-job.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ spec: envFrom: - secretRef: name: {{ .Values.application.secretName }} {{- if .Values.extraEnvFrom }} {{- toYaml .Values.extraEnvFrom | nindent 8 }} {{- end }} {{- end }} env: {{- if .Values.application.database_url }} Loading assets/auto-deploy-app/templates/db-migrate-hook.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ spec: envFrom: - secretRef: name: {{ .Values.application.secretName }} {{- if .Values.extraEnvFrom }} {{- toYaml .Values.extraEnvFrom | nindent 8 }} {{- end }} {{- end }} env: {{- if .Values.application.database_url }} Loading assets/auto-deploy-app/test/templates/db_initialize_job_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -231,3 +231,48 @@ func TestInitializeDatabaseLabels(t *testing.T) { }) } } func TestInitializeDatabaseTemplateWithExtraEnvFrom(t *testing.T) { releaseName := "initialize-application-database-extra-envfrom" templates := []string{"templates/db-initialize-job.yaml"} tcs := []struct { name string values map[string]string expectedEnvFrom coreV1.EnvFromSource }{ { name: "with extra envfrom secret test", values: map[string]string{ "application.initializeCommand": "echo initialize", "extraEnvFrom[0].secretRef.name": "secret-name-test", }, expectedEnvFrom: coreV1.EnvFromSource{ SecretRef: &coreV1.SecretEnvSource{ LocalObjectReference: coreV1.LocalObjectReference{ Name: "secret-name-test", }, }, }, }, } for _, tc := range tcs { t.Run(tc.name, func(t *testing.T) { namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId()) options := &helm.Options{ SetValues: tc.values, KubectlOptions: k8s.NewKubectlOptions("", "", namespaceName), } output := mustRenderTemplate(t, options, releaseName, templates, nil) var deployments deploymentAppsV1List helm.UnmarshalK8SYaml(t, output, &deployments) for _, deployment := range deployments.Items { require.Contains(t, deployment.Spec.Template.Spec.Containers[0].EnvFrom, tc.expectedEnvFrom) } }) } } assets/auto-deploy-app/test/templates/db_migrate_hook_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -231,3 +231,48 @@ func TestMigrateDatabaseLabels(t *testing.T) { }) } } func TestMigrateDatabaseTemplateWithExtraEnvFrom(t *testing.T) { releaseName := "migrate-application-database-extra-envfrom" templates := []string{"templates/db-migrate-hook.yaml"} tcs := []struct { name string values map[string]string expectedEnvFrom coreV1.EnvFromSource }{ { name: "with extra envfrom secret test", values: map[string]string{ "application.migrateCommand": "echo migrate", "extraEnvFrom[0].secretRef.name": "secret-name-test", }, expectedEnvFrom: coreV1.EnvFromSource{ SecretRef: &coreV1.SecretEnvSource{ LocalObjectReference: coreV1.LocalObjectReference{ Name: "secret-name-test", }, }, }, }, } for _, tc := range tcs { t.Run(tc.name, func(t *testing.T) { namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId()) options := &helm.Options{ SetValues: tc.values, KubectlOptions: k8s.NewKubectlOptions("", "", namespaceName), } output := mustRenderTemplate(t, options, releaseName, templates, nil) var deployments deploymentAppsV1List helm.UnmarshalK8SYaml(t, output, &deployments) for _, deployment := range deployments.Items { require.Contains(t, deployment.Spec.Template.Spec.Containers[0].EnvFrom, tc.expectedEnvFrom) } }) } } Loading
assets/auto-deploy-app/templates/db-initialize-job.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ spec: envFrom: - secretRef: name: {{ .Values.application.secretName }} {{- if .Values.extraEnvFrom }} {{- toYaml .Values.extraEnvFrom | nindent 8 }} {{- end }} {{- end }} env: {{- if .Values.application.database_url }} Loading
assets/auto-deploy-app/templates/db-migrate-hook.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ spec: envFrom: - secretRef: name: {{ .Values.application.secretName }} {{- if .Values.extraEnvFrom }} {{- toYaml .Values.extraEnvFrom | nindent 8 }} {{- end }} {{- end }} env: {{- if .Values.application.database_url }} Loading
assets/auto-deploy-app/test/templates/db_initialize_job_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -231,3 +231,48 @@ func TestInitializeDatabaseLabels(t *testing.T) { }) } } func TestInitializeDatabaseTemplateWithExtraEnvFrom(t *testing.T) { releaseName := "initialize-application-database-extra-envfrom" templates := []string{"templates/db-initialize-job.yaml"} tcs := []struct { name string values map[string]string expectedEnvFrom coreV1.EnvFromSource }{ { name: "with extra envfrom secret test", values: map[string]string{ "application.initializeCommand": "echo initialize", "extraEnvFrom[0].secretRef.name": "secret-name-test", }, expectedEnvFrom: coreV1.EnvFromSource{ SecretRef: &coreV1.SecretEnvSource{ LocalObjectReference: coreV1.LocalObjectReference{ Name: "secret-name-test", }, }, }, }, } for _, tc := range tcs { t.Run(tc.name, func(t *testing.T) { namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId()) options := &helm.Options{ SetValues: tc.values, KubectlOptions: k8s.NewKubectlOptions("", "", namespaceName), } output := mustRenderTemplate(t, options, releaseName, templates, nil) var deployments deploymentAppsV1List helm.UnmarshalK8SYaml(t, output, &deployments) for _, deployment := range deployments.Items { require.Contains(t, deployment.Spec.Template.Spec.Containers[0].EnvFrom, tc.expectedEnvFrom) } }) } }
assets/auto-deploy-app/test/templates/db_migrate_hook_test.go +45 −0 Original line number Diff line number Diff line Loading @@ -231,3 +231,48 @@ func TestMigrateDatabaseLabels(t *testing.T) { }) } } func TestMigrateDatabaseTemplateWithExtraEnvFrom(t *testing.T) { releaseName := "migrate-application-database-extra-envfrom" templates := []string{"templates/db-migrate-hook.yaml"} tcs := []struct { name string values map[string]string expectedEnvFrom coreV1.EnvFromSource }{ { name: "with extra envfrom secret test", values: map[string]string{ "application.migrateCommand": "echo migrate", "extraEnvFrom[0].secretRef.name": "secret-name-test", }, expectedEnvFrom: coreV1.EnvFromSource{ SecretRef: &coreV1.SecretEnvSource{ LocalObjectReference: coreV1.LocalObjectReference{ Name: "secret-name-test", }, }, }, }, } for _, tc := range tcs { t.Run(tc.name, func(t *testing.T) { namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId()) options := &helm.Options{ SetValues: tc.values, KubectlOptions: k8s.NewKubectlOptions("", "", namespaceName), } output := mustRenderTemplate(t, options, releaseName, templates, nil) var deployments deploymentAppsV1List helm.UnmarshalK8SYaml(t, output, &deployments) for _, deployment := range deployments.Items { require.Contains(t, deployment.Spec.Template.Spec.Containers[0].EnvFrom, tc.expectedEnvFrom) } }) } }