Parameterize artifact repository settings (#4)

* Parameterize artifact configuration

**What**
- Add parameterization of artifact store configuration

**Why**
Enables configuration of artifact repo secrets or omitting for use with IAM credentials

* Add workflow CRD definition to argo chart

**Why**
The workflow CRD must exist in order for argo to function

* artifactRepository values follow tree structure

* Deploy CRD as a pre-install hook

**What**
Using `lachlanevenson/k8s-kubectl`, which appears to be the most popular, off the shelf container with `kubectl` applied, run a job to apply the `workflow` crd.

**Why**
CRD is not, and cannot, be parameterized with release and so attempting to deploy as a regular template causes failures when installing subsequent releases.
This commit is contained in:
Lukasz Lempart 2018-03-23 21:10:05 -07:00 committed by Alexander Matyushentsev
parent 7ac7a9b193
commit be46446e0c
5 changed files with 67 additions and 14 deletions

View file

@ -1,29 +1,31 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-{{ .Values.controllerName}}-configmap
name: {{ .Release.Name }}-{{ .Values.controllerName }}-configmap
labels:
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
config: |
{{ if .Values.useReleaseAsInstanceID }}
{{- if .Values.useReleaseAsInstanceID }}
instanceID: {{ .Release.Name }}
{{ else }}
{{- else }}
instanceID: {{ .Values.instanceID }}
{{ end }}
{{- end }}
artifactRepository:
{{ if .Values.installMinio }}
{{- if or .Values.installMinio .Values.useDefaultArtifactRepo }}
s3:
{{- if .Values.useStaticCredentials }}
accessKeySecret:
key: accesskey
name: {{ .Release.Name }}-minio-user
bucket: {{ .Values.minioBucketName }}
endpoint: {{ .Release.Name }}-minio-svc:9000
insecure: true
key: {{ .Values.artifactRepository.s3.accessKeySecret.key }}
name: {{ .Values.artifactRepository.s3.accessKeySecret.name | default (printf "%s-%s" .Release.Name "minio-user") }}
secretKeySecret:
key: secretkey
name: {{ .Release.Name }}-minio-user
{{ end }}
key: {{ .Values.artifactRepository.s3.secretKeySecret.key }}
name: {{ .Values.artifactRepository.s3.secretKeySecret.name | default (printf "%s-%s" .Release.Name "minio-user") }}
{{- end }}
bucket: {{ .Values.artifactRepository.s3.bucket | default .Values.minioBucketName }}
endpoint: {{ .Values.artifactRepository.s3.endpoint | default (printf "%s-%s" .Release.Name "minio-svc:9000") }}
insecure: {{ .Values.artifactRepository.s3.insecure }}
{{- end}}
executorImage: "{{ .Values.imagesNamespace }}/{{ .Values.executorImage }}:{{ .Values.imagesTag }}"