Chicken-and-egg encontrado en smoke E2E DO (cluster 91c93c9c):
- ns 'apps' tiene default-deny NetworkPolicy entregada por stack-deployer.
- Job Alembic (pre-install hook) ejecuta InitContainer wait-for-secret que
hace REST API call al kube-apiserver para chequear Secret.
- La NetworkPolicy del chart (que permite DNS + apiserver egress) estaba como
RESOURCE NORMAL, asi que solo se aplicaba en la FASE PRINCIPAL del helm
install, DESPUES de los hooks.
- Resultado: el InitContainer del hook quedaba bloqueado DNS por
default-deny → curl timeout 240s → helm install fail → NetworkPolicy
nunca se aplica.
Fix:
- Annotations 'helm.sh/hook: pre-install,pre-upgrade' + 'hook-weight: -8'
+ 'hook-delete-policy: before-hook-creation'.
- Weight ordering: -10 AddonClaim → -8 NetworkPolicy → -7 Role/RoleBinding
→ -5 SA → 0 Job Alembic.
- delete-policy: before-hook-creation (no hook-succeeded): el Deployment de
la fase principal necesita la NP viva en runtime.
- Comentario en la regla egress :443 aclarando que cubre kube-apiserver
(10.43.0.1) + Harbor (sin necesidad de regla adicional).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>