From 0be1757a0a816367d59b5a3ec1c92f4ac46689d5 Mon Sep 17 00:00:00 2001 From: Xinzhao Xu Date: Wed, 28 Aug 2024 16:10:41 +0800 Subject: [PATCH] charts/karmada: automatically clean up the static-resource Job after it completes Signed-off-by: Xinzhao Xu --- charts/karmada/templates/karmada-static-resource-job.yaml | 3 +++ charts/karmada/templates/post-install-job.yaml | 6 ++++-- charts/karmada/values.yaml | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/charts/karmada/templates/karmada-static-resource-job.yaml b/charts/karmada/templates/karmada-static-resource-job.yaml index f6197e11f9fe..a1bf6cf605ab 100644 --- a/charts/karmada/templates/karmada-static-resource-job.yaml +++ b/charts/karmada/templates/karmada-static-resource-job.yaml @@ -11,6 +11,9 @@ metadata: spec: parallelism: 1 completions: 1 + {{- if semverCompare ">=1.23.0-0" .Capabilities.KubeVersion.GitVersion }} + ttlSecondsAfterFinished: {{ .Values.staticResourceJob.ttlSecondsAfterFinished }} + {{- end }} template: metadata: name: {{ $name }} diff --git a/charts/karmada/templates/post-install-job.yaml b/charts/karmada/templates/post-install-job.yaml index 1b0cad66fe01..3bf36ac4a8ab 100644 --- a/charts/karmada/templates/post-install-job.yaml +++ b/charts/karmada/templates/post-install-job.yaml @@ -1,3 +1,4 @@ +{{- if semverCompare "<1.23.0-0" .Capabilities.KubeVersion.GitVersion }} {{- $name := include "karmada.name" . -}} {{- $namespace := include "karmada.namespace" . -}} {{- if eq .Values.installMode "host" }} @@ -51,8 +52,8 @@ spec: bash <<'EOF' set -ex - # The `post-install hook job` may be applied before all karmada components are ready that rely on `static-resource job` and `hook-job secret`. - # So, we have to postpone the deletion of the `static-resource job` and `hook-job secret` until all karmada components are up and running. + # The `post-install hook job` may be applied before all karmada components are ready that rely on `static-resource job`. + # So, we have to postpone the deletion of the `static-resource job` until all karmada components are up and running. while [[ $(kubectl get pods -n {{ $namespace }} --field-selector=status.phase!=Running,status.phase!=Succeeded -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | grep -v static-resource | wc -l) > 0 ]]; do echo "waiting for all pods of karmada control plane ready..."; sleep 1; @@ -61,3 +62,4 @@ spec: kubectl delete job {{ $name }}-static-resource -n {{ $namespace }} EOF {{- end }} +{{- end }} diff --git a/charts/karmada/values.yaml b/charts/karmada/values.yaml index 34fb8c1a7ce4..22fe45f5b2bb 100644 --- a/charts/karmada/values.yaml +++ b/charts/karmada/values.yaml @@ -102,6 +102,9 @@ preInstallJob: staticResourceJob: tolerations: [] nodeSelector: {} + ## Set a TTL for the static-resource Job, the Job will be automatically cleaned up after this time. + ## This only works on Kubernetes version 1.23 or higher. + ttlSecondsAfterFinished: 10 ## post-install job config postInstallJob: