Zero live ingresses reference traefik-crowdsec@kubernetescrd (PR1 + a cluster-wide targeted ingress re-apply confirmed 0), so the crowdsec Middleware CRD and the broken Yaegi bouncer plugin can be removed without orphaning any router. Removes: the `crowdsec` Middleware, the crowdsec-bouncer plugin (static config + initContainer download + state.json entry), the captcha template ConfigMap + volume + captcha.html, the Turnstile widget + data.cloudflare_accounts, and the 3 now-unused module vars. Also drops the `crowdsec` middleware from the catch-all error-pages IngressRoute chain (the one remaining CRD-level reference, which an Ingress-annotation grep does not surface) so that router is not orphaned when the Middleware is deleted; it keeps rate-limit. Enforcement is fully handled out-of-band now: cs-firewall-bouncer (in-kernel nftables, direct hosts) + Cloudflare IP-List/WAF (proxied hosts). The api-token-middleware plugin is deliberately preserved (still used by paperless-mcp). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
26 lines
1 KiB
HCL
26 lines
1 KiB
HCL
variable "tls_secret_name" { type = string }
|
|
variable "redis_host" { type = string }
|
|
|
|
data "vault_kv_secret_v2" "secrets" {
|
|
mount = "secret"
|
|
name = "platform"
|
|
}
|
|
|
|
# x402 wallet lives under secret/viktor (Viktor's personal config) — not
|
|
# secret/platform — and is the only field this stack needs from there.
|
|
data "vault_kv_secret_v2" "viktor" {
|
|
mount = "secret"
|
|
name = "viktor"
|
|
}
|
|
|
|
module "traefik" {
|
|
source = "./modules/traefik"
|
|
tier = local.tiers.core
|
|
redis_host = var.redis_host
|
|
tls_secret_name = var.tls_secret_name
|
|
auth_fallback_htpasswd = data.vault_kv_secret_v2.secrets.data["auth_fallback_htpasswd"]
|
|
x402_wallet_address = lookup(data.vault_kv_secret_v2.viktor.data, "x402_wallet_address", "")
|
|
# Reuses the existing Alertmanager Slack incoming webhook — same channel as
|
|
# other infra alerts. Payment events arrive as a normal Slack message.
|
|
x402_notify_webhook_url = lookup(data.vault_kv_secret_v2.viktor.data, "alertmanager_slack_api_url", "")
|
|
}
|