diff --git a/base-values/commons.yaml b/base-values/commons.yaml index d63ed78..4afa3ad 100644 --- a/base-values/commons.yaml +++ b/base-values/commons.yaml @@ -1,3 +1,19 @@ +base: + helm: + release: + install: + disableWait: true + remediation: + retries: -1 + crds: CreateReplace + upgrade: + disableWait: true + remediation: + retries: -1 + crds: CreateReplace + driftDetection: + mode: enabled + commons: helm: release: diff --git a/base/Chart.yaml b/base/Chart.yaml index 785f682..edb16b0 100644 --- a/base/Chart.yaml +++ b/base/Chart.yaml @@ -6,4 +6,4 @@ maintainers: - name: WrenIX url: https://wrenix.eu -version: 0.1.0 +version: 0.2.0 diff --git a/base/ci/ct-values.yaml b/base/ci/ct-values.yaml index e81a5e8..07c6d43 100644 --- a/base/ci/ct-values.yaml +++ b/base/ci/ct-values.yaml @@ -1,14 +1,11 @@ -commons: +base: namespace: labels: common-label: "default" - helm: - chart: - sourceRef: - kind: GitRepository - name: wrenix-flux-charts - namespace: flux-system + release: + valuesFrom: + - name: a components: test-default-namespace: diff --git a/base/templates/namespace.yaml b/base/templates/namespace.yaml index d0400f0..aa14cce 100644 --- a/base/templates/namespace.yaml +++ b/base/templates/namespace.yaml @@ -15,7 +15,7 @@ kind: Namespace metadata: name: "{{ $config.namespace.name }}" labels: - {{- $config.namespace.labels | default (dict) | mergeOverwrite $.Values.commons.namespace.labels | toYaml | nindent 4 }} + {{- $config.namespace.labels | default (dict) | mergeOverwrite $.Values.base.namespace.labels | toYaml | nindent 4 }} {{- end }} {{- end }} diff --git a/base/templates/release.yaml b/base/templates/release.yaml index 61760c7..34babc8 100644 --- a/base/templates/release.yaml +++ b/base/templates/release.yaml @@ -10,27 +10,41 @@ spec: chart: spec: sourceRef: - {{- toYaml $.Values.commons.helm.chart.sourceRef | nindent 8 }} + kind: "GitRepository" + {{- with $.Values.base.helm.repo.namespace }} + namespace: {{ . }} + {{- if $config.branch }} + name: "{{ $.Release.Namespace }}-{{ $.Release.Name }}-{{ $componentInstance }}" + {{- else }} + name: "{{ $.Release.Namespace }}-{{ $.Release.Name }}" + {{- end }} + {{- else }} + {{- if $config.branch }} + name: "{{ $.Release.Name }}-{{ $componentInstance }}" + {{- else }} + name: "{{ $.Release.Name }}" + {{- end }} + {{- end }} chart: "./{{ $componentName }}" reconcileStrategy: "Revision" releaseName: "{{ printf "%s-%s" $.Release.Name $componentInstance | replace (printf "%s-%s" $.Release.Name $.Release.Name) $.Release.Name }}" targetNamespace: "{{ ($config.namespace | default (dict)).name | default (dict) | default $.Release.Namespace }}" install: - {{- toYaml $.Values.commons.helm.release.install | nindent 4 }} + {{- toYaml $.Values.base.helm.release.install | nindent 4 }} test: - {{- toYaml $.Values.commons.helm.release.test | nindent 4 }} + {{- toYaml $.Values.base.helm.release.test | nindent 4 }} upgrade: - {{- toYaml $.Values.commons.helm.release.upgrade | nindent 4 }} + {{- toYaml $.Values.base.helm.release.upgrade | nindent 4 }} driftDetection: - {{- toYaml $.Values.commons.helm.release.driftDetection | nindent 4 }} - interval: {{ $.Values.componentCommons.helm.release.interval }} + {{- toYaml $.Values.base.helm.release.driftDetection | nindent 4 }} + interval: {{ $.Values.base.helm.release.interval }} valuesFrom: - kind: ConfigMap name: "{{ $.Release.Name }}-{{ $componentInstance }}-init" optional: true valuesKey: init targetPath: init.version - {{- with $.Values.componentCommons.helm.release.valuesFrom }} + {{- with $.Values.base.helm.release.valuesFrom }} {{- toYaml . | nindent 4 }} {{- end }} {{- with $config.valuesFrom }} diff --git a/base/templates/repo.yaml b/base/templates/repo.yaml new file mode 100644 index 0000000..b7f2872 --- /dev/null +++ b/base/templates/repo.yaml @@ -0,0 +1,58 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: GitRepository +metadata: + {{- with .Values.base.helm.repo.namespace }} + name: "{{ $.Release.Namespace }}-{{ $.Release.Name }}" + namespace: {{ . }} + {{- else }} + name: "{{ $.Release.Name }}" + {{- end }} +spec: + url: {{ .Values.base.helm.repo.url | quote }} + ref: + {{- toYaml .Values.base.helm.repo.ref | nindent 4 }} + {{- with .Values.base.helm.repo.secretRef }} + secretRef: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.base.helm.repo.verify }} + verify: + {{- toYaml . | nindent 4 }} + {{- end }} + interval: {{ .Values.base.helm.repo.interval }} + +{{/* + +if branch is set + +*/}} + +{{- range $componentInstance, $config := .Values.components }} +{{- if and $config.enabled $config.branch }} +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: GitRepository +metadata: + {{- with $.Values.base.helm.repo.namespace }} + name: "{{ $.Release.Namespace }}-{{ $.Release.Name }}-{{ $componentInstance }}" + namespace: {{ . }} + {{- else }} + name: "{{ $.Release.Name }}-{{ $componentInstance }}" + {{- end }} +spec: + url: {{ $.Values.base.helm.repo.url | quote }} + ref: + branch: {{ $config.branch | quote }} + {{- with $.Values.base.helm.repo.secretRef }} + secretRef: + {{- toYaml . | nindent 4 }} + {{- end }} + interval: 1m + {{- with $.Values.base.helm.repo.verify }} + verify: + {{- toYaml . | nindent 4 }} + {{- end }} + interval: {{ $.Values.base.helm.repo.interval }} +{{- end }} +{{- end }} diff --git a/base/values.yaml b/base/values.yaml index ee05b7c..affca33 100644 --- a/base/values.yaml +++ b/base/values.yaml @@ -1,24 +1,46 @@ -global: {} +## +# configuration of this helm-chart +## -commons: +base: namespace: # -- labels for every new created namespace (together or overwritten by components.: # -- enable component-release to install