From 05d6ab951683c9e0fe07fcb6e4bee1b7f6779a46 Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Mon, 14 Apr 2025 17:02:37 +0200 Subject: [PATCH] [platform] Another logic for deleting components Signed-off-by: Andrei Kvapil --- packages/core/platform/Makefile | 11 ++---- .../core/platform/templates/helmreleases.yaml | 35 ++++++++----------- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/packages/core/platform/Makefile b/packages/core/platform/Makefile index 3196ed09..fdc8df24 100644 --- a/packages/core/platform/Makefile +++ b/packages/core/platform/Makefile @@ -7,18 +7,11 @@ show: helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) apply: - @echo "Applying active HelmReleases..." helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) \ - | yq 'select(.metadata.annotations."cozystack.io/marked-for-deletion" != "true")' - \ | kubectl apply -f- + kubectl delete helmreleases.helm.toolkit.fluxcd.io -l cozystack.io/marked-for-deletion=true -A -delete: - @echo "Deleting marked-for-deletion HelmReleases..." - helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) \ - | yq 'select(.metadata.annotations."cozystack.io/marked-for-deletion" == "true")' - \ - | kubectl delete -f - --ignore-not-found=true - -reconcile: apply delete +reconcile: apply namespaces-show: helm template -n $(NAMESPACE) $(NAME) . --dry-run=server $(API_VERSIONS_FLAGS) -s templates/namespaces.yaml diff --git a/packages/core/platform/templates/helmreleases.yaml b/packages/core/platform/templates/helmreleases.yaml index d437888f..bbd7ef6f 100644 --- a/packages/core/platform/templates/helmreleases.yaml +++ b/packages/core/platform/templates/helmreleases.yaml @@ -11,8 +11,17 @@ {{- end }} {{- range $x := $bundle.releases }} -{{- if not (has $x.name $disabledComponents) }} -{{- if or (not $x.optional) (and ($x.optional) (has $x.name $enabledComponents)) }} + +{{- $shouldInstall := true }} +{{- $shouldDelete := false }} +{{- if or (has $x.name $disabledComponents) (and ($x.optional) (not (has $x.name $enabledComponents))) }} + {{- $shouldInstall = false }} + {{- if lookup "helm.toolkit.fluxcd.io/v2" "HelmRelease" $x.namespace $x.name }} + {{- $shouldDelete = true }} + {{- end }} +{{- end }} + +{{- if or $shouldInstall $shouldDelete }} --- apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease @@ -22,6 +31,9 @@ metadata: labels: cozystack.io/repository: system cozystack.io/system-app: "true" + {{- if $shouldDelete }} + cozystack.io/marked-for-deletion: "true" + {{- end }} spec: interval: 5m releaseName: {{ $x.releaseName | default $x.name }} @@ -79,22 +91,3 @@ spec: {{- end }} {{- end }} {{- end }} -{{- end }} - -{{- range $name := $disabledComponents }} - {{- if ne $name "" }} ---- -apiVersion: helm.toolkit.fluxcd.io/v2 -kind: HelmRelease -metadata: - name: {{ $name }} - namespace: {{ index $dependencyNamespaces $name | default "cozy-system" }} - annotations: - cozystack.io/marked-for-deletion: "true" - labels: - cozystack.io/repository: system - cozystack.io/system-app: "true" -spec: - suspend: true - {{- end }} -{{- end }}