From 655fd3827fad9e234c99133ccb0f6719f3869e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20J=C3=B6rg?= Date: Mon, 23 Feb 2026 19:51:18 +0100 Subject: [PATCH] feat: Add Jobsets --- helmfile.d/jobset.yaml.gotmpl | 41 +++++++++++++++++++++++++ values/jobset/env-ekman.yaml.gotmpl | 3 ++ values/jobset/env.yaml.gotmpl | 3 ++ values/jobset/manifests/jobset.yaml | 38 +++++++++++++++++++++++ values/jobset/values/jobset.yaml.gotmpl | 4 +++ 5 files changed, 89 insertions(+) create mode 100644 helmfile.d/jobset.yaml.gotmpl create mode 100644 values/jobset/env-ekman.yaml.gotmpl create mode 100644 values/jobset/env.yaml.gotmpl create mode 100644 values/jobset/manifests/jobset.yaml create mode 100644 values/jobset/values/jobset.yaml.gotmpl diff --git a/helmfile.d/jobset.yaml.gotmpl b/helmfile.d/jobset.yaml.gotmpl new file mode 100644 index 00000000..950e5dd2 --- /dev/null +++ b/helmfile.d/jobset.yaml.gotmpl @@ -0,0 +1,41 @@ +bases: + - ../envs/environments.yaml.gotmpl + +repositories: +- name: jobset + oci: true + url: registry.k8s.io/jobset/charts + +releases: +- name: jobset + namespace: jobset-system + chart: jobset/jobset + version: 0.11.0 + condition: jobset.enabled + values: + - ../values/jobset/values/jobset.yaml.gotmpl + - ../values/jobset/values/jobset-{{ .Environment.Name }}.yaml.gotmpl + postRenderer: ../bin/kustomizer + postRendererArgs: + - ../values/jobset/kustomize/{{ .Environment.Name }} + missingFileHandler: Info +- name: manifests + namespace: jobset-system + chart: manifests + condition: jobset.enabled + missingFileHandler: Info + values: + - ../values/env.yaml + - ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml + - ../values/jobset/env.yaml.gotmpl + - ../values/jobset/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml.gotmpl + hooks: + - events: [ prepare, cleanup ] + showlogs: true + command: ../bin/helmify + args: + - '{{`{{ if eq .Event.Name "prepare" }}build{{ else }}clean{{ end }}`}}' + - '{{`{{ .Release.Chart }}`}}' + - '{{`{{ .Environment.Name }}`}}' + - ../values/jobset/manifests + - manifests diff --git a/values/jobset/env-ekman.yaml.gotmpl b/values/jobset/env-ekman.yaml.gotmpl new file mode 100644 index 00000000..4bc1f931 --- /dev/null +++ b/values/jobset/env-ekman.yaml.gotmpl @@ -0,0 +1,3 @@ +jobset: + enabled: true + autosync: false diff --git a/values/jobset/env.yaml.gotmpl b/values/jobset/env.yaml.gotmpl new file mode 100644 index 00000000..d0723e0c --- /dev/null +++ b/values/jobset/env.yaml.gotmpl @@ -0,0 +1,3 @@ +jobset: + enabled: false + autosync: false diff --git a/values/jobset/manifests/jobset.yaml b/values/jobset/manifests/jobset.yaml new file mode 100644 index 00000000..d8608fca --- /dev/null +++ b/values/jobset/manifests/jobset.yaml @@ -0,0 +1,38 @@ +{{- if .Values.clusterConfig.argo.enabled }} +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: jobset + namespace: argocd +spec: + destination: + namespace: jobset-system + server: 'https://kubernetes.default.svc' + sources: + - repoURL: {{ .Values.clusterConfig.manifests }} + targetRevision: HEAD + path: helmfile.d + plugin: + name: helmfile-cmp + env: + - name: CLUSTER_NAME + value: {{ .Values.clusterConfig.cluster }} + - name: HELMFILE_ENVIRONMENT + value: default + - name: HELMFILE_FILE_PATH + value: jobset.yaml.gotmpl + project: sys + syncPolicy: + managedNamespaceMetadata: + labels: + component: sys + syncOptions: + - CreateNamespace=true + - ApplyOutOfSyncOnly=true + - ServerSideApply=true + {{- if .Values.jobset.autosync }} + automated: + prune: true + # selfHeal: false + {{- end }} +{{- end }} diff --git a/values/jobset/values/jobset.yaml.gotmpl b/values/jobset/values/jobset.yaml.gotmpl new file mode 100644 index 00000000..20511d6c --- /dev/null +++ b/values/jobset/values/jobset.yaml.gotmpl @@ -0,0 +1,4 @@ +prometheus: + enable: false +certManager: + enable: false