← ClaudeAtlas

nginx-to-traefiklisted

Class-swap migration that ports services from NGINX Ingress to Traefik Ingress (`ingressClassName: traefik`) while keeping both controllers running in parallel. DNS A-records are the only cutover lever. Designed for eye-of-horus-gitops conventions: nginx files move to archive/ (never deleted), Traefik Ingresses live in kustomization.resources (never patches), backend Service names and secretName are written verbatim (Kustomize namePrefix does not touch them). Operator-declared LB IPs only — never auto-derived from cluster state. State stored in docs/reports/nginx-to-traefik/<slug>/.
qwedsazxc78/devops-ai-skill · ★ 2 · DevOps & Infrastructure · score 68
Install: claude install-skill qwedsazxc78/devops-ai-skill
# nginx-to-traefik Skill Invoked by Zeus pipeline `*nginx-to-traefik`. This skill is the **first half** of the chained migration NGINX → Traefik Ingress → Gateway API. Used standalone it ports a batch of services to Traefik while leaving the NGINX controller serving everyone else. Used under skill `nginx-to-gateway` (the orchestrator), its `state.yaml` output is consumed as the input to skill `gateway-api-migration` with `--source-class traefik`. ## Canonical references | File | When to read | |---|---| | `references/nginx-to-traefik-env-config.md` | Step 0b — env-config schema and operator prompts | | `references/annotation-translation.md` | Step 3 — annotation mapping | | `references/dns-cutover-runbook.md` | Step 10 — printed/linked at end of run | ## Bundled scripts | Script | Used by | Purpose | |---|---|---| | `scripts/inventory_nginx_ingresses.py` | Step 1 | Per-overlay nginx Ingress inventory | | `scripts/generate_traefik_ingress.py` | Step 3 | Emit `<service>-traefik-ingress.yaml` | | `scripts/update_kustomization.py` | Step 5, 6 | Idempotent edits to kustomization.yaml + app.ingress.yaml | | `scripts/validate_cross_consistency.sh` | Step 7b | 4-way DNS↔verify↔ingress↔cert cross-check | ## Activation Triggered explicitly by `*nginx-to-traefik` from Zeus. Not auto-triggered. ## Invocation forms ``` *nginx-to-traefik # interactive: inventory + propose batches *nginx-to-traefik <env> # process all services in