db16f48a95
Create debian package structure for armada and armada-helm-toolkit. Story: 2009221 Task: 43917 Change-Id: Ie1177d50b1c22239be18c109129308d13d75ba28 Signed-off-by: Daniel Safta <daniel.safta@windriver.com>
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
|
||
|
||
|