From ea83fa5e7e51c1e6237c885704fd45a7722189f1 Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Sat, 21 Jun 2025 18:24:46 +0200 Subject: [PATCH] feat: socerer helmfile setup --- helmfile.d/sorcerer.yaml.gotmpl | 45 +++++++++++++++++++ values/sorcerer/chart | 1 - values/sorcerer/env.yaml.gotmpl | 5 +++ .../base/deployment_patch.yaml | 0 .../{ => kustomize}/base/kustomization.yaml | 0 .../{ => kustomize}/prod/appsettings.json | 0 .../prod/archives-backup-volume.yaml | 0 .../{ => kustomize}/prod/configurations.yaml | 0 .../sorcerer/{ => kustomize}/prod/default.env | 0 .../prod/deployment_patch.yaml | 0 .../{ => kustomize}/prod/keyvault.yaml | 0 .../{ => kustomize}/prod/kustomization.yaml | 0 values/sorcerer/{ => kustomize}/prod/pv.yaml | 0 values/sorcerer/{ => kustomize}/prod/pvc.yaml | 0 .../sorcerer/{ => kustomize}/prod/rbac.yaml | 0 .../sorcerer/{ => kustomize}/prod/redis.yaml | 0 .../{ => kustomize}/prod/secrets.yaml | 0 .../{ => kustomize}/prod/secretstore.yaml | 0 .../{ => kustomize}/prod/statestore.yaml | 0 .../{ => kustomize}/prod/tracing.yaml | 0 .../{ => kustomize}/staging/appsettings.json | 0 .../staging/archives-backup-volume.yaml | 0 .../staging/configurations.yaml | 0 .../staging/deployment_patch.yaml | 0 .../{ => kustomize}/staging/keyvault.yaml | 0 .../staging/kustomization.yaml | 0 .../sorcerer/{ => kustomize}/staging/pv.yaml | 0 .../sorcerer/{ => kustomize}/staging/pvc.yaml | 0 .../{ => kustomize}/staging/rbac.yaml | 0 .../{ => kustomize}/staging/redis.yaml | 0 .../{ => kustomize}/staging/secrets.yaml | 0 .../{ => kustomize}/staging/secretstore.yaml | 0 .../{ => kustomize}/staging/statestore.yaml | 0 .../{ => kustomize}/staging/tracing.yaml | 0 values/sorcerer/manifests/sorcerer.yaml | 36 +++++++++++++++ values/sorcerer/{ => values}/values-prod.yaml | 0 .../sorcerer/{ => values}/values-staging.yaml | 0 37 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 helmfile.d/sorcerer.yaml.gotmpl delete mode 120000 values/sorcerer/chart create mode 100644 values/sorcerer/env.yaml.gotmpl rename values/sorcerer/{ => kustomize}/base/deployment_patch.yaml (100%) rename values/sorcerer/{ => kustomize}/base/kustomization.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/appsettings.json (100%) rename values/sorcerer/{ => kustomize}/prod/archives-backup-volume.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/configurations.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/default.env (100%) rename values/sorcerer/{ => kustomize}/prod/deployment_patch.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/keyvault.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/kustomization.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/pv.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/pvc.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/rbac.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/redis.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/secrets.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/secretstore.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/statestore.yaml (100%) rename values/sorcerer/{ => kustomize}/prod/tracing.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/appsettings.json (100%) rename values/sorcerer/{ => kustomize}/staging/archives-backup-volume.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/configurations.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/deployment_patch.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/keyvault.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/kustomization.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/pv.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/pvc.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/rbac.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/redis.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/secrets.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/secretstore.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/statestore.yaml (100%) rename values/sorcerer/{ => kustomize}/staging/tracing.yaml (100%) create mode 100644 values/sorcerer/manifests/sorcerer.yaml rename values/sorcerer/{ => values}/values-prod.yaml (100%) rename values/sorcerer/{ => values}/values-staging.yaml (100%) diff --git a/helmfile.d/sorcerer.yaml.gotmpl b/helmfile.d/sorcerer.yaml.gotmpl new file mode 100644 index 00000000..1e5f15e1 --- /dev/null +++ b/helmfile.d/sorcerer.yaml.gotmpl @@ -0,0 +1,45 @@ +bases: + - ../envs/environments.yaml.gotmpl + +repositories: +- name: oceanbox + url: "git+https://gitlab-ci:glpat-WUPiu4yb5Ffx7R8dC2kZ@gitlab.com/oceanbox/manifests@charts?ref=main" + +commonLabels: + tier: system + +apiVersions: +- monitoring.coreos.com/v1 + +releases: +- name: sorcerer + namespace: {{ .Environment.Name }}-sorcerer + chart: oceanbox/sorcerer + condition: sorcerer.enabled + values: + - ../values/sorcerer/values/sorcerer.yaml.gotmpl + - ../values/sorcerer/values/sorcerer-{{ .Environment.Name }}.yaml.gotmpl + postRenderer: ../bin/kustomizer + postRendererArgs: + - ../values/sorcerer/kustomize/{{ .Environment.Name }} + missingFileHandler: Info +- name: manifests + namespace: {{ .Environment.Name }}-sorcerer + chart: manifests + condition: sorcerer.enabled + missingFileHandler: Info + values: + - ../values/env.yaml + - ../values/env-{{ requiredEnv "ARGOCD_ENV_CLUSTER_NAME" }}.yaml + - ../values/sorcerer/env.yaml.gotmpl + - ../values/sorcerer/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/sorcerer/manifests + - manifests diff --git a/values/sorcerer/chart b/values/sorcerer/chart deleted file mode 120000 index 690615dc..00000000 --- a/values/sorcerer/chart +++ /dev/null @@ -1 +0,0 @@ -../../charts/sorcerer \ No newline at end of file diff --git a/values/sorcerer/env.yaml.gotmpl b/values/sorcerer/env.yaml.gotmpl new file mode 100644 index 00000000..0f594c5d --- /dev/null +++ b/values/sorcerer/env.yaml.gotmpl @@ -0,0 +1,5 @@ +sorcerer: + enabled: true + autosync: false + env: {{ .Environment.Name }} + diff --git a/values/sorcerer/base/deployment_patch.yaml b/values/sorcerer/kustomize/base/deployment_patch.yaml similarity index 100% rename from values/sorcerer/base/deployment_patch.yaml rename to values/sorcerer/kustomize/base/deployment_patch.yaml diff --git a/values/sorcerer/base/kustomization.yaml b/values/sorcerer/kustomize/base/kustomization.yaml similarity index 100% rename from values/sorcerer/base/kustomization.yaml rename to values/sorcerer/kustomize/base/kustomization.yaml diff --git a/values/sorcerer/prod/appsettings.json b/values/sorcerer/kustomize/prod/appsettings.json similarity index 100% rename from values/sorcerer/prod/appsettings.json rename to values/sorcerer/kustomize/prod/appsettings.json diff --git a/values/sorcerer/prod/archives-backup-volume.yaml b/values/sorcerer/kustomize/prod/archives-backup-volume.yaml similarity index 100% rename from values/sorcerer/prod/archives-backup-volume.yaml rename to values/sorcerer/kustomize/prod/archives-backup-volume.yaml diff --git a/values/sorcerer/prod/configurations.yaml b/values/sorcerer/kustomize/prod/configurations.yaml similarity index 100% rename from values/sorcerer/prod/configurations.yaml rename to values/sorcerer/kustomize/prod/configurations.yaml diff --git a/values/sorcerer/prod/default.env b/values/sorcerer/kustomize/prod/default.env similarity index 100% rename from values/sorcerer/prod/default.env rename to values/sorcerer/kustomize/prod/default.env diff --git a/values/sorcerer/prod/deployment_patch.yaml b/values/sorcerer/kustomize/prod/deployment_patch.yaml similarity index 100% rename from values/sorcerer/prod/deployment_patch.yaml rename to values/sorcerer/kustomize/prod/deployment_patch.yaml diff --git a/values/sorcerer/prod/keyvault.yaml b/values/sorcerer/kustomize/prod/keyvault.yaml similarity index 100% rename from values/sorcerer/prod/keyvault.yaml rename to values/sorcerer/kustomize/prod/keyvault.yaml diff --git a/values/sorcerer/prod/kustomization.yaml b/values/sorcerer/kustomize/prod/kustomization.yaml similarity index 100% rename from values/sorcerer/prod/kustomization.yaml rename to values/sorcerer/kustomize/prod/kustomization.yaml diff --git a/values/sorcerer/prod/pv.yaml b/values/sorcerer/kustomize/prod/pv.yaml similarity index 100% rename from values/sorcerer/prod/pv.yaml rename to values/sorcerer/kustomize/prod/pv.yaml diff --git a/values/sorcerer/prod/pvc.yaml b/values/sorcerer/kustomize/prod/pvc.yaml similarity index 100% rename from values/sorcerer/prod/pvc.yaml rename to values/sorcerer/kustomize/prod/pvc.yaml diff --git a/values/sorcerer/prod/rbac.yaml b/values/sorcerer/kustomize/prod/rbac.yaml similarity index 100% rename from values/sorcerer/prod/rbac.yaml rename to values/sorcerer/kustomize/prod/rbac.yaml diff --git a/values/sorcerer/prod/redis.yaml b/values/sorcerer/kustomize/prod/redis.yaml similarity index 100% rename from values/sorcerer/prod/redis.yaml rename to values/sorcerer/kustomize/prod/redis.yaml diff --git a/values/sorcerer/prod/secrets.yaml b/values/sorcerer/kustomize/prod/secrets.yaml similarity index 100% rename from values/sorcerer/prod/secrets.yaml rename to values/sorcerer/kustomize/prod/secrets.yaml diff --git a/values/sorcerer/prod/secretstore.yaml b/values/sorcerer/kustomize/prod/secretstore.yaml similarity index 100% rename from values/sorcerer/prod/secretstore.yaml rename to values/sorcerer/kustomize/prod/secretstore.yaml diff --git a/values/sorcerer/prod/statestore.yaml b/values/sorcerer/kustomize/prod/statestore.yaml similarity index 100% rename from values/sorcerer/prod/statestore.yaml rename to values/sorcerer/kustomize/prod/statestore.yaml diff --git a/values/sorcerer/prod/tracing.yaml b/values/sorcerer/kustomize/prod/tracing.yaml similarity index 100% rename from values/sorcerer/prod/tracing.yaml rename to values/sorcerer/kustomize/prod/tracing.yaml diff --git a/values/sorcerer/staging/appsettings.json b/values/sorcerer/kustomize/staging/appsettings.json similarity index 100% rename from values/sorcerer/staging/appsettings.json rename to values/sorcerer/kustomize/staging/appsettings.json diff --git a/values/sorcerer/staging/archives-backup-volume.yaml b/values/sorcerer/kustomize/staging/archives-backup-volume.yaml similarity index 100% rename from values/sorcerer/staging/archives-backup-volume.yaml rename to values/sorcerer/kustomize/staging/archives-backup-volume.yaml diff --git a/values/sorcerer/staging/configurations.yaml b/values/sorcerer/kustomize/staging/configurations.yaml similarity index 100% rename from values/sorcerer/staging/configurations.yaml rename to values/sorcerer/kustomize/staging/configurations.yaml diff --git a/values/sorcerer/staging/deployment_patch.yaml b/values/sorcerer/kustomize/staging/deployment_patch.yaml similarity index 100% rename from values/sorcerer/staging/deployment_patch.yaml rename to values/sorcerer/kustomize/staging/deployment_patch.yaml diff --git a/values/sorcerer/staging/keyvault.yaml b/values/sorcerer/kustomize/staging/keyvault.yaml similarity index 100% rename from values/sorcerer/staging/keyvault.yaml rename to values/sorcerer/kustomize/staging/keyvault.yaml diff --git a/values/sorcerer/staging/kustomization.yaml b/values/sorcerer/kustomize/staging/kustomization.yaml similarity index 100% rename from values/sorcerer/staging/kustomization.yaml rename to values/sorcerer/kustomize/staging/kustomization.yaml diff --git a/values/sorcerer/staging/pv.yaml b/values/sorcerer/kustomize/staging/pv.yaml similarity index 100% rename from values/sorcerer/staging/pv.yaml rename to values/sorcerer/kustomize/staging/pv.yaml diff --git a/values/sorcerer/staging/pvc.yaml b/values/sorcerer/kustomize/staging/pvc.yaml similarity index 100% rename from values/sorcerer/staging/pvc.yaml rename to values/sorcerer/kustomize/staging/pvc.yaml diff --git a/values/sorcerer/staging/rbac.yaml b/values/sorcerer/kustomize/staging/rbac.yaml similarity index 100% rename from values/sorcerer/staging/rbac.yaml rename to values/sorcerer/kustomize/staging/rbac.yaml diff --git a/values/sorcerer/staging/redis.yaml b/values/sorcerer/kustomize/staging/redis.yaml similarity index 100% rename from values/sorcerer/staging/redis.yaml rename to values/sorcerer/kustomize/staging/redis.yaml diff --git a/values/sorcerer/staging/secrets.yaml b/values/sorcerer/kustomize/staging/secrets.yaml similarity index 100% rename from values/sorcerer/staging/secrets.yaml rename to values/sorcerer/kustomize/staging/secrets.yaml diff --git a/values/sorcerer/staging/secretstore.yaml b/values/sorcerer/kustomize/staging/secretstore.yaml similarity index 100% rename from values/sorcerer/staging/secretstore.yaml rename to values/sorcerer/kustomize/staging/secretstore.yaml diff --git a/values/sorcerer/staging/statestore.yaml b/values/sorcerer/kustomize/staging/statestore.yaml similarity index 100% rename from values/sorcerer/staging/statestore.yaml rename to values/sorcerer/kustomize/staging/statestore.yaml diff --git a/values/sorcerer/staging/tracing.yaml b/values/sorcerer/kustomize/staging/tracing.yaml similarity index 100% rename from values/sorcerer/staging/tracing.yaml rename to values/sorcerer/kustomize/staging/tracing.yaml diff --git a/values/sorcerer/manifests/sorcerer.yaml b/values/sorcerer/manifests/sorcerer.yaml new file mode 100644 index 00000000..3edc40ee --- /dev/null +++ b/values/sorcerer/manifests/sorcerer.yaml @@ -0,0 +1,36 @@ +{{ if .Values.clusterConfig.argo.enabled }} +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: {{ .Values.sorcerer.env }}-sorcerer + namespace: argocd + annotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + destination: + namespace: {{ .Values.sorcerer.env }}-sorcerer + server: https://kubernetes.default.svc + project: sorcerer + 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: {{ .Values.sorcerer.env }} + - name: HELMFILE_FILE_PATH + value: sorcerer.yaml.gotmpl + syncPolicy: + syncOptions: + - CreateNamespace=true + - ApplyOutOfSyncOnly=true + # automated: + # prune: true + # selfHeal: false +{{- end }} diff --git a/values/sorcerer/values-prod.yaml b/values/sorcerer/values/values-prod.yaml similarity index 100% rename from values/sorcerer/values-prod.yaml rename to values/sorcerer/values/values-prod.yaml diff --git a/values/sorcerer/values-staging.yaml b/values/sorcerer/values/values-staging.yaml similarity index 100% rename from values/sorcerer/values-staging.yaml rename to values/sorcerer/values/values-staging.yaml