Tier 4, part 1 of 2 — detection (the safe half; no ingress-path impact).
The CrowdSec agent's log acquisition still targeted podName: ingress-nginx-controller-* — a selector that has matched no pod since ingress-nginx was retired (2026-05-17). So the agents have been parsing nothing and generating no decisions.
This repoints acquisition to the Traefik controller (podName: traefik-*, program: traefik) and swaps crowdsecurity/nginx + nginx-logs for the crowdsecurity/traefik collection (bundles its own parser). Traefik already emits access logs to stdout (logs.access.enabled: true), which the agent reads via the k8s pod-log acquisition.
Restores attack detection. Enforcement — a Traefik bouncer acting on the decisions — is part 2 (separate PR, higher risk).
Worst case here is unchanged from today (agent parses nothing); no request-path effect.
Tier 4, part 1 of 2 — **detection** (the safe half; no ingress-path impact).
The CrowdSec agent's log acquisition still targeted `podName: ingress-nginx-controller-*` — a selector that has matched **no pod** since ingress-nginx was retired (2026-05-17). So the agents have been parsing nothing and generating no decisions.
This repoints acquisition to the Traefik controller (`podName: traefik-*`, `program: traefik`) and swaps `crowdsecurity/nginx` + `nginx-logs` for the `crowdsecurity/traefik` collection (bundles its own parser). Traefik already emits access logs to stdout (`logs.access.enabled: true`), which the agent reads via the k8s pod-log acquisition.
Restores attack **detection**. **Enforcement** — a Traefik bouncer acting on the decisions — is part 2 (separate PR, higher risk).
Worst case here is unchanged from today (agent parses nothing); no request-path effect.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
The agent's acquisition still targeted podName ingress-nginx-controller-*
in the ingress namespace — a selector that has matched no pod since
ingress-nginx was retired (2026-05-17), so the agents have been parsing
nothing and no decisions were being generated.
Repoint to the Traefik controller (podName traefik-*, program traefik)
and swap the nginx collection/parser for crowdsecurity/traefik (which
bundles its own log parser). This restores attack detection. Enforcement
(a Traefik bouncer acting on the decisions) is a separate change.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Tier 4, part 1 of 2 — detection (the safe half; no ingress-path impact).
The CrowdSec agent's log acquisition still targeted
podName: ingress-nginx-controller-*— a selector that has matched no pod since ingress-nginx was retired (2026-05-17). So the agents have been parsing nothing and generating no decisions.This repoints acquisition to the Traefik controller (
podName: traefik-*,program: traefik) and swapscrowdsecurity/nginx+nginx-logsfor thecrowdsecurity/traefikcollection (bundles its own parser). Traefik already emits access logs to stdout (logs.access.enabled: true), which the agent reads via the k8s pod-log acquisition.Restores attack detection. Enforcement — a Traefik bouncer acting on the decisions — is part 2 (separate PR, higher risk).
Worst case here is unchanged from today (agent parses nothing); no request-path effect.
🤖 Generated with Claude Code