fix(platform): harden external-dns chart install

This commit is contained in:
Haitao Pan 2026-04-04 06:08:45 +08:00
parent 92785aea6b
commit 18b865d763
2 changed files with 27 additions and 1 deletions

View File

@ -8,6 +8,7 @@ k3s_platform_reloader_chart_version: "1.3.0"
k3s_platform_caddy_chart_version: "1.2.0"
k3s_platform_apisix_chart_version: "2.13.0"
k3s_platform_external_dns_chart_version: "1.20.0"
k3s_platform_external_dns_chart_repo_url: "https://kubernetes-sigs.github.io/external-dns/"
k3s_platform_values:
components:

View File

@ -130,7 +130,32 @@
ansible.builtin.shell: |
set -euo pipefail
export KUBECONFIG="{{ k3s_platform_kubeconfig_path }}"
helm upgrade --install "{{ k3s_platform_values.components.externalDns.releaseName }}" external-dns/external-dns \
chart_dir="$(mktemp -d /tmp/external-dns.XXXXXX)"
cleanup() {
rm -rf "$chart_dir"
}
trap cleanup EXIT
attempt=1
max_attempts=6
while true; do
rm -rf "$chart_dir"/*
if helm pull --repo "{{ k3s_platform_external_dns_chart_repo_url }}" \
--version "{{ k3s_platform_external_dns_chart_version }}" \
--untar \
--untardir "$chart_dir" \
external-dns; then
break
fi
if [ "$attempt" -ge "$max_attempts" ]; then
echo "failed to download external-dns after $attempt attempts" >&2
exit 1
fi
sleep "$((attempt * 30))"
attempt=$((attempt + 1))
done
helm upgrade --install "{{ k3s_platform_values.components.externalDns.releaseName }}" "$chart_dir/external-dns" \
--namespace platform \
--create-namespace \
--version "{{ k3s_platform_external_dns_chart_version }}" \