Loading assets/auto-deploy-app/Chart.yaml +1 −1 Original line number Diff line number Diff line apiVersion: v1 description: GitLab's Auto-deploy Helm Chart name: auto-deploy-app version: 1.0.7 version: 1.1.0 icon: https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo-square.png assets/auto-deploy-app/templates/worker-deployment.yaml +28 −12 Original line number Diff line number Diff line Loading @@ -64,30 +64,46 @@ items: value: {{ $.Values.application.database_url | quote }} - name: GITLAB_ENVIRONMENT_NAME value: {{ $.Values.gitlab.envName | quote }} {{- with $livenessProbeConfig := default $.Values.livenessProbe $workerConfig.livenessProbe -}} {{- if $livenessProbeConfig }} livenessProbe: {{- if eq $.Values.livenessProbe.probeType "httpGet" }} {{- if eq $livenessProbeConfig.probeType "httpGet" }} httpGet: path: {{ $.Values.livenessProbe.path }} scheme: {{ $.Values.livenessProbe.scheme }} path: {{ $livenessProbeConfig.path }} scheme: {{ $livenessProbeConfig.scheme }} port: {{ $.Values.service.internalPort }} {{- else if eq $.Values.livenessProbe.probeType "tcpSocket" }} {{- else if eq $livenessProbeConfig.probeType "tcpSocket" }} tcpSocket: port: {{ $.Values.service.internalPort }} {{- else if eq $livenessProbeConfig.probeType "exec" }} exec: command: {{ toYaml $livenessProbeConfig.command | indent 16 }} {{- end }} initialDelaySeconds: {{ $livenessProbeConfig.initialDelaySeconds }} timeoutSeconds: {{ $livenessProbeConfig.timeoutSeconds }} {{- end }} {{- end }} initialDelaySeconds: {{ $.Values.livenessProbe.initialDelaySeconds }} timeoutSeconds: {{ $.Values.livenessProbe.timeoutSeconds }} {{- with $readinessProbeConfig := default $.Values.readinessProbe $workerConfig.readinessProbe -}} {{- if $readinessProbeConfig }} readinessProbe: {{- if eq $.Values.readinessProbe.probeType "httpGet" }} {{- if eq $readinessProbeConfig.probeType "httpGet" }} httpGet: path: {{ $.Values.readinessProbe.path }} scheme: {{ $.Values.readinessProbe.scheme }} path: {{ $readinessProbeConfig.path }} scheme: {{ $readinessProbeConfig.scheme }} port: {{ $.Values.service.internalPort }} {{- else if eq $.Values.readinessProbe.probeType "tcpSocket" }} {{- else if eq $readinessProbeConfig.probeType "tcpSocket" }} tcpSocket: port: {{ $.Values.service.internalPort }} {{- else if eq $readinessProbeConfig.probeType "exec" }} exec: command: {{ toYaml $readinessProbeConfig.command | indent 16 }} {{- end }} initialDelaySeconds: {{ $readinessProbeConfig.initialDelaySeconds }} timeoutSeconds: {{ $readinessProbeConfig.timeoutSeconds }} {{- end }} {{- end }} initialDelaySeconds: {{ $.Values.readinessProbe.initialDelaySeconds }} timeoutSeconds: {{ $.Values.readinessProbe.timeoutSeconds }} {{- if $workerConfig.preStopCommand }} lifecycle: preStop: Loading assets/auto-deploy-app/test/template_test.go +89 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import ( ) const ( chartName = "auto-deploy-app-1.0.7" chartName = "auto-deploy-app-1.1.0" helmChartPath = ".." ) Loading Loading @@ -607,6 +607,66 @@ func TestWorkerDeploymentTemplate(t *testing.T) { }, }, }, { CaseName: "enableWorkerLivenessProbe", Release: "production", Values: map[string]string{ "workers.worker1.command[0]": "echo", "workers.worker1.command[1]": "worker1", "workers.worker1.livenessProbe.path": "/worker", "workers.worker1.livenessProbe.scheme": "HTTP", "workers.worker1.livenessProbe.probeType": "httpGet", "workers.worker2.command[0]": "echo", "workers.worker2.command[1]": "worker2", "workers.worker2.livenessProbe.path": "/worker", "workers.worker2.livenessProbe.scheme": "HTTP", "workers.worker2.livenessProbe.probeType": "httpGet", }, ExpectedDeployments: []workerDeploymentTestCase{ { ExpectedName: "production-worker1", ExpectedCmd: []string{"echo", "worker1"}, ExpectedLivenessProbe: workerLivenessProbe(), ExpectedReadinessProbe: defaultReadinessProbe(), }, { ExpectedName: "production-worker2", ExpectedCmd: []string{"echo", "worker2"}, ExpectedLivenessProbe: workerLivenessProbe(), ExpectedReadinessProbe: defaultReadinessProbe(), }, }, }, { CaseName: "enableWorkerReadinessProbe", Release: "production", Values: map[string]string{ "workers.worker1.command[0]": "echo", "workers.worker1.command[1]": "worker1", "workers.worker1.readinessProbe.path": "/worker", "workers.worker1.readinessProbe.scheme": "HTTP", "workers.worker1.readinessProbe.probeType": "httpGet", "workers.worker2.command[0]": "echo", "workers.worker2.command[1]": "worker2", "workers.worker2.readinessProbe.path": "/worker", "workers.worker2.readinessProbe.scheme": "HTTP", "workers.worker2.readinessProbe.probeType": "httpGet", }, ExpectedDeployments: []workerDeploymentTestCase{ { ExpectedName: "production-worker1", ExpectedCmd: []string{"echo", "worker1"}, ExpectedLivenessProbe: defaultLivenessProbe(), ExpectedReadinessProbe: workerReadinessProbe(), }, { ExpectedName: "production-worker2", ExpectedCmd: []string{"echo", "worker2"}, ExpectedLivenessProbe: defaultLivenessProbe(), ExpectedReadinessProbe: workerReadinessProbe(), }, }, }, } { t.Run(tc.CaseName, func(t *testing.T) { namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId()) Loading Loading @@ -980,3 +1040,31 @@ func defaultReadinessProbe() *coreV1.Probe { TimeoutSeconds: 3, } } func workerLivenessProbe() *coreV1.Probe { return &coreV1.Probe{ Handler: coreV1.Handler{ HTTPGet: &coreV1.HTTPGetAction{ Path: "/worker", Port: intstr.FromInt(5000), Scheme: coreV1.URISchemeHTTP, }, }, InitialDelaySeconds: 0, TimeoutSeconds: 0, } } func workerReadinessProbe() *coreV1.Probe { return &coreV1.Probe{ Handler: coreV1.Handler{ HTTPGet: &coreV1.HTTPGetAction{ Path: "/worker", Port: intstr.FromInt(5000), Scheme: coreV1.URISchemeHTTP, }, }, InitialDelaySeconds: 0, TimeoutSeconds: 0, } } assets/auto-deploy-app/values.yaml +12 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,18 @@ workers: {} # - procfile # - start # - worker # livenessProbe: # path: "/" # initialDelaySeconds: 15 # timeoutSeconds: 15 # scheme: "HTTP" # probeType: "httpGet" # readinessProbe: # path: "/" # initialDelaySeconds: 5 # timeoutSeconds: 3 # scheme: "HTTP" # probeType: "httpGet" # preStopCommand: # - /bin/herokuish # - procfile Loading Loading
assets/auto-deploy-app/Chart.yaml +1 −1 Original line number Diff line number Diff line apiVersion: v1 description: GitLab's Auto-deploy Helm Chart name: auto-deploy-app version: 1.0.7 version: 1.1.0 icon: https://gitlab.com/gitlab-com/gitlab-artwork/raw/master/logo/logo-square.png
assets/auto-deploy-app/templates/worker-deployment.yaml +28 −12 Original line number Diff line number Diff line Loading @@ -64,30 +64,46 @@ items: value: {{ $.Values.application.database_url | quote }} - name: GITLAB_ENVIRONMENT_NAME value: {{ $.Values.gitlab.envName | quote }} {{- with $livenessProbeConfig := default $.Values.livenessProbe $workerConfig.livenessProbe -}} {{- if $livenessProbeConfig }} livenessProbe: {{- if eq $.Values.livenessProbe.probeType "httpGet" }} {{- if eq $livenessProbeConfig.probeType "httpGet" }} httpGet: path: {{ $.Values.livenessProbe.path }} scheme: {{ $.Values.livenessProbe.scheme }} path: {{ $livenessProbeConfig.path }} scheme: {{ $livenessProbeConfig.scheme }} port: {{ $.Values.service.internalPort }} {{- else if eq $.Values.livenessProbe.probeType "tcpSocket" }} {{- else if eq $livenessProbeConfig.probeType "tcpSocket" }} tcpSocket: port: {{ $.Values.service.internalPort }} {{- else if eq $livenessProbeConfig.probeType "exec" }} exec: command: {{ toYaml $livenessProbeConfig.command | indent 16 }} {{- end }} initialDelaySeconds: {{ $livenessProbeConfig.initialDelaySeconds }} timeoutSeconds: {{ $livenessProbeConfig.timeoutSeconds }} {{- end }} {{- end }} initialDelaySeconds: {{ $.Values.livenessProbe.initialDelaySeconds }} timeoutSeconds: {{ $.Values.livenessProbe.timeoutSeconds }} {{- with $readinessProbeConfig := default $.Values.readinessProbe $workerConfig.readinessProbe -}} {{- if $readinessProbeConfig }} readinessProbe: {{- if eq $.Values.readinessProbe.probeType "httpGet" }} {{- if eq $readinessProbeConfig.probeType "httpGet" }} httpGet: path: {{ $.Values.readinessProbe.path }} scheme: {{ $.Values.readinessProbe.scheme }} path: {{ $readinessProbeConfig.path }} scheme: {{ $readinessProbeConfig.scheme }} port: {{ $.Values.service.internalPort }} {{- else if eq $.Values.readinessProbe.probeType "tcpSocket" }} {{- else if eq $readinessProbeConfig.probeType "tcpSocket" }} tcpSocket: port: {{ $.Values.service.internalPort }} {{- else if eq $readinessProbeConfig.probeType "exec" }} exec: command: {{ toYaml $readinessProbeConfig.command | indent 16 }} {{- end }} initialDelaySeconds: {{ $readinessProbeConfig.initialDelaySeconds }} timeoutSeconds: {{ $readinessProbeConfig.timeoutSeconds }} {{- end }} {{- end }} initialDelaySeconds: {{ $.Values.readinessProbe.initialDelaySeconds }} timeoutSeconds: {{ $.Values.readinessProbe.timeoutSeconds }} {{- if $workerConfig.preStopCommand }} lifecycle: preStop: Loading
assets/auto-deploy-app/test/template_test.go +89 −1 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import ( ) const ( chartName = "auto-deploy-app-1.0.7" chartName = "auto-deploy-app-1.1.0" helmChartPath = ".." ) Loading Loading @@ -607,6 +607,66 @@ func TestWorkerDeploymentTemplate(t *testing.T) { }, }, }, { CaseName: "enableWorkerLivenessProbe", Release: "production", Values: map[string]string{ "workers.worker1.command[0]": "echo", "workers.worker1.command[1]": "worker1", "workers.worker1.livenessProbe.path": "/worker", "workers.worker1.livenessProbe.scheme": "HTTP", "workers.worker1.livenessProbe.probeType": "httpGet", "workers.worker2.command[0]": "echo", "workers.worker2.command[1]": "worker2", "workers.worker2.livenessProbe.path": "/worker", "workers.worker2.livenessProbe.scheme": "HTTP", "workers.worker2.livenessProbe.probeType": "httpGet", }, ExpectedDeployments: []workerDeploymentTestCase{ { ExpectedName: "production-worker1", ExpectedCmd: []string{"echo", "worker1"}, ExpectedLivenessProbe: workerLivenessProbe(), ExpectedReadinessProbe: defaultReadinessProbe(), }, { ExpectedName: "production-worker2", ExpectedCmd: []string{"echo", "worker2"}, ExpectedLivenessProbe: workerLivenessProbe(), ExpectedReadinessProbe: defaultReadinessProbe(), }, }, }, { CaseName: "enableWorkerReadinessProbe", Release: "production", Values: map[string]string{ "workers.worker1.command[0]": "echo", "workers.worker1.command[1]": "worker1", "workers.worker1.readinessProbe.path": "/worker", "workers.worker1.readinessProbe.scheme": "HTTP", "workers.worker1.readinessProbe.probeType": "httpGet", "workers.worker2.command[0]": "echo", "workers.worker2.command[1]": "worker2", "workers.worker2.readinessProbe.path": "/worker", "workers.worker2.readinessProbe.scheme": "HTTP", "workers.worker2.readinessProbe.probeType": "httpGet", }, ExpectedDeployments: []workerDeploymentTestCase{ { ExpectedName: "production-worker1", ExpectedCmd: []string{"echo", "worker1"}, ExpectedLivenessProbe: defaultLivenessProbe(), ExpectedReadinessProbe: workerReadinessProbe(), }, { ExpectedName: "production-worker2", ExpectedCmd: []string{"echo", "worker2"}, ExpectedLivenessProbe: defaultLivenessProbe(), ExpectedReadinessProbe: workerReadinessProbe(), }, }, }, } { t.Run(tc.CaseName, func(t *testing.T) { namespaceName := "minimal-ruby-app-" + strings.ToLower(random.UniqueId()) Loading Loading @@ -980,3 +1040,31 @@ func defaultReadinessProbe() *coreV1.Probe { TimeoutSeconds: 3, } } func workerLivenessProbe() *coreV1.Probe { return &coreV1.Probe{ Handler: coreV1.Handler{ HTTPGet: &coreV1.HTTPGetAction{ Path: "/worker", Port: intstr.FromInt(5000), Scheme: coreV1.URISchemeHTTP, }, }, InitialDelaySeconds: 0, TimeoutSeconds: 0, } } func workerReadinessProbe() *coreV1.Probe { return &coreV1.Probe{ Handler: coreV1.Handler{ HTTPGet: &coreV1.HTTPGetAction{ Path: "/worker", Port: intstr.FromInt(5000), Scheme: coreV1.URISchemeHTTP, }, }, InitialDelaySeconds: 0, TimeoutSeconds: 0, } }
assets/auto-deploy-app/values.yaml +12 −0 Original line number Diff line number Diff line Loading @@ -116,6 +116,18 @@ workers: {} # - procfile # - start # - worker # livenessProbe: # path: "/" # initialDelaySeconds: 15 # timeoutSeconds: 15 # scheme: "HTTP" # probeType: "httpGet" # readinessProbe: # path: "/" # initialDelaySeconds: 5 # timeoutSeconds: 3 # scheme: "HTTP" # probeType: "httpGet" # preStopCommand: # - /bin/herokuish # - procfile Loading