Loading assets/auto-deploy-app/templates/db-initialize-job.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,9 @@ spec: {{- if .Values.application.database_url }} - name: DATABASE_URL value: {{ .Values.application.database_url | quote }} {{- end }} {{- if .Values.extraEnv }} {{- toYaml .Values.extraEnv | nindent 8 }} {{- end }} - name: GITLAB_ENVIRONMENT_NAME value: {{ .Values.gitlab.envName | quote }} Loading assets/auto-deploy-app/templates/db-migrate-hook.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,9 @@ spec: {{- if .Values.application.database_url }} - name: DATABASE_URL value: {{ .Values.application.database_url | quote }} {{- end }} {{- if .Values.extraEnv }} {{- toYaml .Values.extraEnv | nindent 8 }} {{- end }} - name: GITLAB_ENVIRONMENT_NAME value: {{ .Values.gitlab.envName | quote }} Loading assets/auto-deploy-app/test/templates/db_initialize_job_test.go +43 −0 Original line number Diff line number Diff line Loading @@ -276,3 +276,46 @@ func TestInitializeDatabaseTemplateWithExtraEnvFrom(t *testing.T) { }) } } func TestInitializeDatabaseTemplateWithExtraEnv(t *testing.T) { releaseName := "initialize-application-database-extra-env" templates := []string{"templates/db-initialize-job.yaml"} tcs := []struct { name string values map[string]string expectedEnv coreV1.EnvVar }{ { name: "with extra env secret test", values: map[string]string{ "application.initializeCommand": "echo initialize", "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) { 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].Env, tc.expectedEnv) } }) } } assets/auto-deploy-app/test/templates/db_migrate_hook_test.go +43 −0 Original line number Diff line number Diff line Loading @@ -276,3 +276,46 @@ func TestMigrateDatabaseTemplateWithExtraEnvFrom(t *testing.T) { }) } } func TestMigrateDatabaseTemplateWithExtraEnv(t *testing.T) { releaseName := "migrate-application-database-extra-env" templates := []string{"templates/db-migrate-hook.yaml"} tcs := []struct { name string values map[string]string expectedEnv coreV1.EnvVar }{ { name: "with extra env secret test", values: map[string]string{ "application.migrateCommand": "echo migrate", "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) { 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].Env, tc.expectedEnv) } }) } } Loading
assets/auto-deploy-app/templates/db-initialize-job.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,9 @@ spec: {{- if .Values.application.database_url }} - name: DATABASE_URL value: {{ .Values.application.database_url | quote }} {{- end }} {{- if .Values.extraEnv }} {{- toYaml .Values.extraEnv | nindent 8 }} {{- end }} - name: GITLAB_ENVIRONMENT_NAME value: {{ .Values.gitlab.envName | quote }} Loading
assets/auto-deploy-app/templates/db-migrate-hook.yaml +3 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,9 @@ spec: {{- if .Values.application.database_url }} - name: DATABASE_URL value: {{ .Values.application.database_url | quote }} {{- end }} {{- if .Values.extraEnv }} {{- toYaml .Values.extraEnv | nindent 8 }} {{- end }} - name: GITLAB_ENVIRONMENT_NAME value: {{ .Values.gitlab.envName | quote }} Loading
assets/auto-deploy-app/test/templates/db_initialize_job_test.go +43 −0 Original line number Diff line number Diff line Loading @@ -276,3 +276,46 @@ func TestInitializeDatabaseTemplateWithExtraEnvFrom(t *testing.T) { }) } } func TestInitializeDatabaseTemplateWithExtraEnv(t *testing.T) { releaseName := "initialize-application-database-extra-env" templates := []string{"templates/db-initialize-job.yaml"} tcs := []struct { name string values map[string]string expectedEnv coreV1.EnvVar }{ { name: "with extra env secret test", values: map[string]string{ "application.initializeCommand": "echo initialize", "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) { 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].Env, tc.expectedEnv) } }) } }
assets/auto-deploy-app/test/templates/db_migrate_hook_test.go +43 −0 Original line number Diff line number Diff line Loading @@ -276,3 +276,46 @@ func TestMigrateDatabaseTemplateWithExtraEnvFrom(t *testing.T) { }) } } func TestMigrateDatabaseTemplateWithExtraEnv(t *testing.T) { releaseName := "migrate-application-database-extra-env" templates := []string{"templates/db-migrate-hook.yaml"} tcs := []struct { name string values map[string]string expectedEnv coreV1.EnvVar }{ { name: "with extra env secret test", values: map[string]string{ "application.migrateCommand": "echo migrate", "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) { 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].Env, tc.expectedEnv) } }) } }