18010eb1d6
A fix landed upstream to deal with armada waiting indefinitely for evicted pods, which intermittently fails stx-openstack application. This commit upversions the tarball version to the one containing that change. Removing patches 0002 and 0003 since the commits are already on the armada code at this version. Story: 2008645 Task: 41906 Signed-off-by: Thiago Brito <thiago.brito@windriver.com> Change-Id: I62caf0a403a054c30b5bbfc1a3c5bc4cf73b60a6
115 lines
4.2 KiB
Diff
115 lines
4.2 KiB
Diff
From 8c6cc4c0ad5569d7de3615463f7d8c4dd7429e63 Mon Sep 17 00:00:00 2001
|
||
From: Thiago Brito <thiago.brito@windriver.com>
|
||
Date: Thu, 22 Apr 2021 20:00:51 -0300
|
||
Subject: [PATCH] Add Helm v2 client initialization using tiller
|
||
postStart exec
|
||
|
||
This adds helm v2 client initialization using the tiller
|
||
container postStart exec to access helm v2 binary.
|
||
|
||
This will perform 'helm init', removes the default repos
|
||
'stable' and 'local', and add valid repos that were provided
|
||
as overrides. Note that helm will only add repos that exist.
|
||
|
||
This expects overrides in this format:
|
||
conf:
|
||
tiller:
|
||
charts_url: 'http://192.168.204.1:8080/helm_charts'
|
||
repo_names:
|
||
- 'starlingx'
|
||
- 'stx-platform'
|
||
repos:
|
||
stable: https://kubernetes-charts.storage.googleapis.com
|
||
|
||
This gives the following result:
|
||
helmv2-cli -- helm repo list
|
||
NAME URL
|
||
stable https://kubernetes-charts.storage.googleapis.com
|
||
starlingx http://192.168.204.1:8080/helm_charts/starlingx
|
||
stx-platform http://192.168.204.1:8080/helm_charts/stx-platform
|
||
|
||
Signed-off-by: Jim Gauld <james.gauld@windriver.com>
|
||
Signed-off-by: Thiago Brito <thiago.brito@windriver.com>
|
||
---
|
||
charts/armada/templates/deployment-api.yaml | 33 +++++++++++++++++++++
|
||
charts/armada/values.yaml | 10 +++++++
|
||
2 files changed, 43 insertions(+)
|
||
|
||
diff --git a/charts/armada/templates/deployment-api.yaml b/charts/armada/templates/deployment-api.yaml
|
||
index 562e3d0..483ec0b 100644
|
||
--- a/charts/armada/templates/deployment-api.yaml
|
||
+++ b/charts/armada/templates/deployment-api.yaml
|
||
@@ -186,6 +186,39 @@ spec:
|
||
- -trace
|
||
{{- end }}
|
||
lifecycle:
|
||
+ postStart:
|
||
+ exec:
|
||
+ command:
|
||
+ - sh
|
||
+ - "-c"
|
||
+ - |
|
||
+ /bin/sh <<'EOF'
|
||
+ # Delay initialization since postStart handler runs asynchronously and there
|
||
+ # is no guarantee it is called before the Container’s entrypoint.
|
||
+ sleep 5
|
||
+ # Initialize Helm v2 client.
|
||
+ export HELM_HOST=:{{ .Values.conf.tiller.port }}
|
||
+ /helm init --client-only --skip-refresh
|
||
+
|
||
+ # Moving the ln up so eventual errors on the next commands doesn't prevent
|
||
+ # having helm available
|
||
+ ln -s -f /helm /tmp/helm
|
||
+
|
||
+ # Removes all repos available so we don't get an error removing what
|
||
+ # doesn't exist anymore or error re-adding an existing repo
|
||
+ /helm repo list | awk '(NR>1){print $1}' | xargs --no-run-if-empty /helm repo rm
|
||
+{{- if .Values.conf.tiller.repos }}
|
||
+ {{- range $name, $repo := .Values.conf.tiller.repos }}
|
||
+ /helm repo add {{ $name }} {{ $repo }}
|
||
+ {{- end }}
|
||
+{{- end }}
|
||
+{{- if .Values.conf.tiller.repo_names }}
|
||
+ {{- range .Values.conf.tiller.repo_names }}
|
||
+ /helm repo add {{ . }} {{ $envAll.Values.conf.tiller.charts_url }}/{{ . }}
|
||
+ {{- end }}
|
||
+{{- end }}
|
||
+ exit 0
|
||
+ EOF
|
||
preStop:
|
||
exec:
|
||
command:
|
||
diff --git a/charts/armada/values.yaml b/charts/armada/values.yaml
|
||
index 3a4427e..da45810 100644
|
||
--- a/charts/armada/values.yaml
|
||
+++ b/charts/armada/values.yaml
|
||
@@ -220,6 +220,10 @@ conf:
|
||
# Note: Defaulting to the (default) kubernetes grace period, as anything
|
||
# greater than that will have no effect.
|
||
prestop_sleep: 30
|
||
+ # Helm v2 initialization
|
||
+ charts_url: null
|
||
+ repo_names: []
|
||
+ repos: {}
|
||
|
||
monitoring:
|
||
prometheus:
|
||
@@ -325,7 +329,13 @@ pod:
|
||
volumes:
|
||
- name: kubernetes-client-cache
|
||
emptyDir: {}
|
||
+ - name: tiller-tmp
|
||
+ emptyDir: {}
|
||
volumeMounts:
|
||
+ - name: tiller-tmp
|
||
+ # /tmp is now readOnly due to the security_context on L288, so
|
||
+ # mounting an emptyDir
|
||
+ mountPath: /tmp
|
||
- name: kubernetes-client-cache
|
||
# Should be the `$HOME/.kube` of the `runAsUser` above
|
||
# as this is where tiller's kubernetes client roots its cache dir.
|
||
--
|
||
2.17.1
|
||
|
||
|