retire-nginxlisted
Install: claude install-skill qwedsazxc78/devops-ai-skill
# /gitops/retire-nginx — Nginx Ingress Retirement
Retires the nginx ingress **controller** (`common.ingress`) and all nginx **Ingress resources**
(`common.service`) for one or all environments after Gateway API / Traefik migration is complete.
> Run this skill only after:
> - All services have active HTTPRoutes or Traefik Ingresses
> - DNS has been cut over to the Traefik/Gateway LB
> - nginx is confirmed idle (no live traffic)
## Usage
```
/gitops/retire-nginx dev # Retire dev only
/gitops/retire-nginx stg # Retire stg only
/gitops/retire-nginx prd # Retire prd only
/gitops/retire-nginx all # Retire all envs sequentially (dev → stg → prd)
```
$ARGUMENTS
---
## Core Rules
| Rule | Why |
|------|-----|
| **Never retire without replacement pre-flight** | Removing nginx before Traefik/HTTPRoutes are active causes an outage |
| **$patch: delete in overlay, not base edits** | Base nginx files stay — other envs may still need them; only the target env's kustomization excludes them |
| **Delete only the ArgoCD app yaml** | Delete `common.ingress/argocd/<env>.yaml`; app-of-apps `prune: true` removes the Application from cluster; Application finalizer cascades to delete all controller resources. Overlay becomes dead code — no need to touch it |
| **Validate nginx-class=0 not Ingress-total=0** | Envs with Traefik ingresses will still have `kind: Ingress` resources after retirement — only nginx-class ones must reach zero |
| **Process envs in