diff --git a/charts/armada/templates/deployment-api.yaml b/charts/armada/templates/deployment-api.yaml index 23761edd..88028579 100644 --- a/charts/armada/templates/deployment-api.yaml +++ b/charts/armada/templates/deployment-api.yaml @@ -151,6 +151,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 979f3d36..d5d955a6 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: env: diff --git a/charts/tiller/templates/deployment-tiller.yaml b/charts/tiller/templates/deployment-tiller.yaml index a7711891..812778cc 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: