diff --git a/charts/armada/templates/deployment-api.yaml b/charts/armada/templates/deployment-api.yaml index 534cdf48..9d3bff45 100644 --- a/charts/armada/templates/deployment-api.yaml +++ b/charts/armada/templates/deployment-api.yaml @@ -153,6 +153,16 @@ spec: {{- if .Values.conf.tiller.trace }} - -trace {{- end }} + lifecycle: + preStop: + exec: + command: + # Delay tiller termination so that it has a chance to finish + # deploying releases including marking them with + # DEPLOYED/FAILED status, otherwise they can get stuck in + # PENDING_*** status. + - sleep + - "{{ .Values.conf.tiller.prestop_sleep }}" ports: - name: tiller containerPort: {{ .Values.conf.tiller.port }} diff --git a/charts/armada/values.yaml b/charts/armada/values.yaml index 115034ba..d18bd254 100644 --- a/charts/armada/values.yaml +++ b/charts/armada/values.yaml @@ -209,6 +209,9 @@ conf: namespace: kube-system # Limit the maximum number of revisions saved per release. 0 for no limit. history_max: 0 + # Note: Defaulting to the (default) kubernetes grace period, as anything + # greater than that will have no effect. + prestop_sleep: 30 pod: security_context: diff --git a/charts/tiller/templates/deployment-tiller.yaml b/charts/tiller/templates/deployment-tiller.yaml index a7711891..2607f9a0 100644 --- a/charts/tiller/templates/deployment-tiller.yaml +++ b/charts/tiller/templates/deployment-tiller.yaml @@ -77,6 +77,16 @@ spec: {{- if .Values.conf.tiller.trace }} - -trace {{- end }} + lifecycle: + preStop: + exec: + command: + # Delay tiller termination so that it has a chance to finish + # deploying releases including marking them with + # DEPLOYED/FAILED status, otherwise they can get stuck in + # PENDING_*** status. + - sleep + - "{{ .Values.conf.tiller.prestop_sleep }}" ports: - name: tiller containerPort: 44134 diff --git a/charts/tiller/values.yaml b/charts/tiller/values.yaml index e9ab128d..59170ae8 100644 --- a/charts/tiller/values.yaml +++ b/charts/tiller/values.yaml @@ -41,6 +41,9 @@ conf: tiller: verbosity: 5 trace: false + # Note: Defaulting to the (default) kubernetes grace period, as anything + # greater than that will have no effect. + prestop_sleep: 30 pod: resources: