fix: warm External Secrets image before install
This commit is contained in:
+26
-14
@@ -292,6 +292,30 @@ jobs:
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pull_required_image() {
|
||||||
|
local image="$1"
|
||||||
|
local host_ip="$2"
|
||||||
|
local attempts="$3"
|
||||||
|
local sleep_seconds="$4"
|
||||||
|
local failure_message="$5"
|
||||||
|
local pulled=false
|
||||||
|
|
||||||
|
for attempt in $(seq 1 "${attempts}"); do
|
||||||
|
echo "Pre-pulling ${image} on ${host_ip} (${attempt}/${attempts})"
|
||||||
|
if ssh -i "$HOME/.ssh/id_ed25519" -o StrictHostKeyChecking=no -o ConnectTimeout=10 "ubuntu@${host_ip}" \
|
||||||
|
"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
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep "${sleep_seconds}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "${pulled}" != "true" ]; then
|
||||||
|
echo "${failure_message} ${image} on ${host_ip}" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
eso_diagnostics() {
|
eso_diagnostics() {
|
||||||
kubectl -n flux-system get kustomizations,ocirepositories,helmrepositories,helmcharts,helmreleases || true
|
kubectl -n flux-system get kustomizations,ocirepositories,helmrepositories,helmcharts,helmreleases || true
|
||||||
kubectl -n flux-system describe kustomization addon-external-secrets || true
|
kubectl -n flux-system describe kustomization addon-external-secrets || true
|
||||||
@@ -418,20 +442,7 @@ jobs:
|
|||||||
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
|
pull_required_image "${image}" "${PRIMARY_CP_IP}" "${FLUX_IMAGE_PULL_ATTEMPTS}" "${FLUX_IMAGE_PULL_SLEEP}" "Failed to pre-pull required Flux image"
|
||||||
for attempt in $(seq 1 "${FLUX_IMAGE_PULL_ATTEMPTS}"); do
|
|
||||||
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}" \
|
|
||||||
"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
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep "${FLUX_IMAGE_PULL_SLEEP}"
|
|
||||||
done
|
|
||||||
if [ "${pulled}" != "true" ]; then
|
|
||||||
echo "Failed to pre-pull required Flux image ${image} on ${PRIMARY_CP_IP}" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
# Apply CRDs and controllers first
|
# Apply CRDs and controllers first
|
||||||
kubectl apply -f clusters/prod/flux-system/gotk-components.yaml
|
kubectl apply -f clusters/prod/flux-system/gotk-components.yaml
|
||||||
@@ -456,6 +467,7 @@ jobs:
|
|||||||
# Wait directly on the ESO Helm objects; Kustomization readiness hides useful failure details.
|
# Wait directly on the ESO Helm objects; Kustomization readiness hides useful failure details.
|
||||||
wait_for_resource flux-system kustomization.kustomize.toolkit.fluxcd.io/addon-external-secrets 600
|
wait_for_resource flux-system kustomization.kustomize.toolkit.fluxcd.io/addon-external-secrets 600
|
||||||
kubectl -n flux-system annotate kustomization/addon-external-secrets reconcile.fluxcd.io/requestedAt="$(date +%s)" --overwrite
|
kubectl -n flux-system annotate kustomization/addon-external-secrets reconcile.fluxcd.io/requestedAt="$(date +%s)" --overwrite
|
||||||
|
pull_required_image oci.external-secrets.io/external-secrets/external-secrets:v2.1.0 "${PRIMARY_CP_IP}" 45 10 "Failed to pre-pull required External Secrets image"
|
||||||
wait_for_flux_oci_helm_release external-secrets external-secrets external-secrets 600s 600
|
wait_for_flux_oci_helm_release external-secrets external-secrets external-secrets 600s 600
|
||||||
wait_for_resource "" crd/clustersecretstores.external-secrets.io 900
|
wait_for_resource "" crd/clustersecretstores.external-secrets.io 900
|
||||||
wait_for_resource "" crd/externalsecrets.external-secrets.io 900
|
wait_for_resource "" crd/externalsecrets.external-secrets.io 900
|
||||||
|
|||||||
@@ -19,13 +19,25 @@ spec:
|
|||||||
retries: 3
|
retries: 3
|
||||||
values:
|
values:
|
||||||
installCRDs: true
|
installCRDs: true
|
||||||
|
image:
|
||||||
|
repository: oci.external-secrets.io/external-secrets/external-secrets
|
||||||
|
tag: v2.1.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/hostname: k8s-cluster-cp-1
|
kubernetes.io/hostname: k8s-cluster-cp-1
|
||||||
webhook:
|
webhook:
|
||||||
failurePolicy: Ignore
|
failurePolicy: Ignore
|
||||||
|
image:
|
||||||
|
repository: oci.external-secrets.io/external-secrets/external-secrets
|
||||||
|
tag: v2.1.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/hostname: k8s-cluster-cp-1
|
kubernetes.io/hostname: k8s-cluster-cp-1
|
||||||
certController:
|
certController:
|
||||||
|
image:
|
||||||
|
repository: oci.external-secrets.io/external-secrets/external-secrets
|
||||||
|
tag: v2.1.0
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
kubernetes.io/hostname: k8s-cluster-cp-1
|
kubernetes.io/hostname: k8s-cluster-cp-1
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
|
|||||||
Reference in New Issue
Block a user