fix(ci): helm-deploy sin container: — incompatible con runners executor=host [skip ci]
El job helm-deploy declaraba container: alpine/helm:3.14.4. Los runners de ci-system corren con container.enabled=false (executor=host, ADR-043): sin Docker daemon, cualquier job con container: falla al arrancar con 'Cannot connect to the Docker daemon' antes de ejecutar step alguno (mismo patron que SMOKE-COVE-WORKFLOW-CONTAINER-FIX). Fix: se elimina container:; el job corre directo sobre el runner host. kubectl ya viene en la imagen del runner; helm se instala en runtime via curl (la NetworkPolicy de los runners permite egress 443). kubeconfig al HOME del runner en vez de /root. GOLDEN-PATH-WEBBACKEND-DRYRUN. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -21,15 +21,31 @@ jobs:
|
|||||||
enforce_rollback: false # rollout lo gestiona el job helm-deploy abajo
|
enforce_rollback: false # rollout lo gestiona el job helm-deploy abajo
|
||||||
|
|
||||||
# Deploy al cluster del tenant — Helm upgrade --install con hook Alembic.
|
# Deploy al cluster del tenant — Helm upgrade --install con hook Alembic.
|
||||||
|
# El runner corre executor=host (ci-system: container.enabled=false, ADR-043):
|
||||||
|
# los steps se ejecutan directo sobre el pod runner, sin Docker daemon. Por eso
|
||||||
|
# NO se usa `container:` — kubectl ya viene en la imagen del runner; helm se
|
||||||
|
# instala en runtime (la NetworkPolicy de los runners permite egress 443).
|
||||||
helm-deploy:
|
helm-deploy:
|
||||||
needs: build
|
needs: build
|
||||||
runs-on: [self-hosted, linux/amd64]
|
runs-on: [self-hosted, buildkit]
|
||||||
container: alpine/helm:3.14.4
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install kubectl
|
- name: Instalar helm
|
||||||
run: apk add --no-cache kubectl
|
run: |
|
||||||
|
HELM_VERSION=v3.14.4
|
||||||
|
case "$(uname -m)" in
|
||||||
|
x86_64) ARCH=amd64 ;;
|
||||||
|
aarch64) ARCH=arm64 ;;
|
||||||
|
*) echo "Arquitectura no soportada: $(uname -m)"; exit 1 ;;
|
||||||
|
esac
|
||||||
|
mkdir -p "${HOME}/.local/bin"
|
||||||
|
curl -fsSL "https://get.helm.sh/helm-${HELM_VERSION}-linux-${ARCH}.tar.gz" \
|
||||||
|
| tar -xz -C /tmp "linux-${ARCH}/helm"
|
||||||
|
mv "/tmp/linux-${ARCH}/helm" "${HOME}/.local/bin/helm"
|
||||||
|
chmod +x "${HOME}/.local/bin/helm"
|
||||||
|
echo "${HOME}/.local/bin" >> "$GITHUB_PATH"
|
||||||
|
"${HOME}/.local/bin/helm" version
|
||||||
|
|
||||||
- name: Decodificar kubeconfig del tenant
|
- name: Decodificar kubeconfig del tenant
|
||||||
env:
|
env:
|
||||||
@@ -40,9 +56,9 @@ jobs:
|
|||||||
echo "tenant-manager debe provisionarlo al crear el repo."
|
echo "tenant-manager debe provisionarlo al crear el repo."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
mkdir -p /root/.kube
|
mkdir -p "${HOME}/.kube"
|
||||||
echo "$KUBECONFIG_B64" | base64 -d > /root/.kube/config
|
echo "$KUBECONFIG_B64" | base64 -d > "${HOME}/.kube/config"
|
||||||
chmod 600 /root/.kube/config
|
chmod 600 "${HOME}/.kube/config"
|
||||||
|
|
||||||
- name: Helm upgrade --install
|
- name: Helm upgrade --install
|
||||||
env:
|
env:
|
||||||
|
|||||||
Reference in New Issue
Block a user