diff --git a/base-values/commons.yaml b/base-values/commons.yaml new file mode 100644 index 0000000..490098a --- /dev/null +++ b/base-values/commons.yaml @@ -0,0 +1,22 @@ +commons: + helm: + release: + install: + disableWait: true + remediation: + retries: -1 + upgrade: + disableWait: true + remediation: + retries: -1 + grafana: + dashboards: + labels: + grafana_dashboard: "1" + prometheus: + monitor: + labels: + prometheus: default + rules: + labels: + prometheus: default diff --git a/base-values/infra.yaml b/base-values/infra.yaml new file mode 100644 index 0000000..61d7125 --- /dev/null +++ b/base-values/infra.yaml @@ -0,0 +1,10 @@ +components: + infra-fluxcd: + enabled: true + namespace: "flux-system" + skip_namespace_create: true + values: + grafana: + dashboards: + annotations: + grafana.mon.local/dashboard-folder: "GitOps" diff --git a/base/.helmignore b/base/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/base/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/base/Chart.yaml b/base/Chart.yaml new file mode 100644 index 0000000..498dc38 --- /dev/null +++ b/base/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: base +description: This is an Helm-Chart which creates an overlaye to connect / install multiple flux-charts / components (and use the helm values for it) +type: application + +version: 0.1.0 diff --git a/base/ci/ct-values.yaml b/base/ci/ct-values.yaml new file mode 100644 index 0000000..a4e55e1 --- /dev/null +++ b/base/ci/ct-values.yaml @@ -0,0 +1,7 @@ +commons: + helm: + chart: + sourceRef: + kind: GitRepository + name: wrenix-flux-charts + namespace: flux-system diff --git a/base/templates/namespace.yaml b/base/templates/namespace.yaml new file mode 100644 index 0000000..79a1c08 --- /dev/null +++ b/base/templates/namespace.yaml @@ -0,0 +1,20 @@ +{{ $depulicateNamespace := dict }} +{{- range $name, $config := .Values.components }} +{{- if and $config.enabled + $config.namespace + (ne $config.namespace "") + (not (hasKey $depulicateNamespace $config.namespace)) + (ne $config.namespace $.Release.Namespace) + (not $config.skip_namespace_create) +}} +{{ $depulicateNamespace = set $depulicateNamespace $config.namespace true }} +--- +apiVersion: v1 +kind: Namespace +metadata: + name: "{{ $config.namespace }}" + labels: + {{- toYaml $.Values.commons.namespace.labels | nindent 4 }} +{{- end }} +{{- end }} + diff --git a/base/templates/release.yaml b/base/templates/release.yaml new file mode 100644 index 0000000..12d694d --- /dev/null +++ b/base/templates/release.yaml @@ -0,0 +1,34 @@ +{{- range $name, $config := .Values.components }} +{{- if $config.enabled }} +{{- $name = $config.name | default $name }} +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: "{{ $.Release.Name }}-{{ $name }}" +spec: + chart: + spec: + sourceRef: + {{- toYaml $.Values.commons.helm.chart.sourceRef | nindent 8 }} + chart: "./{{ $name }}" + reconcileStrategy: "Revision" + releaseName: "{{ $.Release.Name }}-{{ $name }}" + targetNamespace: "{{ $config.namespace | default $.Release.Namespace }}" + install: + {{- toYaml $.Values.commons.helm.release.install | nindent 4 }} + test: + {{- toYaml $.Values.commons.helm.release.test | nindent 4 }} + upgrade: + {{- toYaml $.Values.commons.helm.release.upgrade | nindent 4 }} + interval: 5m + valuesFrom: + - kind: ConfigMap + name: "{{ $.Release.Name }}-{{ $name }}-init" + optional: true + valuesKey: init + targetPath: init.version + values: + {{- $config.values | default (dict) | mergeOverwrite (dict "commons" $.Values.commons "global" $.Values.global) | toYaml | nindent 4 }} +{{- end }} +{{- end }} diff --git a/base/values.yaml b/base/values.yaml new file mode 100644 index 0000000..7284880 --- /dev/null +++ b/base/values.yaml @@ -0,0 +1,13 @@ +global: {} + +commons: + namespace: + labels: {} + + helm: + release: + install: {} + test: {} + upgrade: {} + +components: {}