fix: use CRI pulls for Flux image warmup
Deploy Cluster / Terraform (push) Successful in 30s
Deploy Cluster / Ansible (push) Failing after 15m3s

This commit is contained in:
2026-04-25 19:28:29 +00:00
parent 66e86e55ea
commit 17f1815e7f
+6 -4
View File
@@ -411,20 +411,22 @@ jobs:
--from-file=known_hosts=/tmp/flux_known_hosts \ --from-file=known_hosts=/tmp/flux_known_hosts \
--dry-run=client -o yaml | kubectl apply -f - --dry-run=client -o yaml | kubectl apply -f -
PRIMARY_CP_IP=$(python3 -c 'import json; print(json.load(open("outputs/terraform_outputs.json"))["primary_control_plane_ip"]["value"])') PRIMARY_CP_IP=$(python3 -c 'import json; print(json.load(open("outputs/terraform_outputs.json"))["primary_control_plane_ip"]["value"])')
FLUX_IMAGE_PULL_ATTEMPTS=45
FLUX_IMAGE_PULL_SLEEP=10
for image in \ for image in \
ghcr.io/fluxcd/source-controller:v1.8.0 \ ghcr.io/fluxcd/source-controller:v1.8.0 \
ghcr.io/fluxcd/kustomize-controller:v1.8.1 \ ghcr.io/fluxcd/kustomize-controller:v1.8.1 \
ghcr.io/fluxcd/helm-controller:v1.5.1 \ ghcr.io/fluxcd/helm-controller:v1.5.1 \
ghcr.io/fluxcd/notification-controller:v1.8.1; do ghcr.io/fluxcd/notification-controller:v1.8.1; do
pulled=false pulled=false
for attempt in $(seq 1 12); do for attempt in $(seq 1 "${FLUX_IMAGE_PULL_ATTEMPTS}"); do
echo "Pre-pulling ${image} on ${PRIMARY_CP_IP} (${attempt}/12)" echo "Pre-pulling ${image} on ${PRIMARY_CP_IP} (${attempt}/${FLUX_IMAGE_PULL_ATTEMPTS})"
if ssh -i "$HOME/.ssh/id_ed25519" -o StrictHostKeyChecking=no -o ConnectTimeout=10 "ubuntu@${PRIMARY_CP_IP}" \ if ssh -i "$HOME/.ssh/id_ed25519" -o StrictHostKeyChecking=no -o ConnectTimeout=10 "ubuntu@${PRIMARY_CP_IP}" \
"sudo k3s ctr images pull '${image}'"; then "sudo k3s crictl inspecti '${image}' >/dev/null 2>&1 || ((sudo k3s crictl pull --platform linux/amd64 '${image}' || sudo k3s crictl pull '${image}') && sudo k3s crictl inspecti '${image}' >/dev/null 2>&1)"; then
pulled=true pulled=true
break break
fi fi
sleep 20 sleep "${FLUX_IMAGE_PULL_SLEEP}"
done done
if [ "${pulled}" != "true" ]; then if [ "${pulled}" != "true" ]; then
echo "Failed to pre-pull required Flux image ${image} on ${PRIMARY_CP_IP}" >&2 echo "Failed to pre-pull required Flux image ${image} on ${PRIMARY_CP_IP}" >&2