feat(vuln): vuln-scanner platform manifests, Flux tier, alerts, L0/L2/L3 tests
Hand-authored platform/vuln-scanner (non-gating Flux tier, digest-pinned Trivy 0.76.1 and python 3.14.9-alpine, read-only RBAC, per-pod oauth2-proxy, internal-only cve.<domain>), five alerts with promtool tests, R-VULN-01..09 registry entries, and vuln-* L0 checks with mutation self-tests. src/ and the bot workflow are integrated separately. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
4c3a284cad
commit
b85d1e3ed7
47 files changed
+2572
-6
No files matched your search
@@ -0,0 +1,23 @@
|
||||
---
|
||||
# vuln-scanner — the CVE visibility scanner (R-VULN-01..09, ADR-0027, docs/17). Hand-authored platform
|
||||
# delivery tooling, not a catalog service: its cluster-wide read identity is something a
|
||||
# ServiceDefinition cannot express.
|
||||
#
|
||||
# gateway-access=shared opts this namespace in to attach the cve.<domain> HTTPRoute to the shared
|
||||
# Gateway; the route targets the per-pod oauth2-proxy sidecar (:4180), never the page directly.
|
||||
#
|
||||
# INTENTIONALLY NOT homelab.keithjackson.dev/app-namespace=true (the crafty/cloudflared/pm-agent
|
||||
# posture): every Kyverno app policy matches on that label, and the generated default-deny would then
|
||||
# be double-owned with the one this tree ships (networkpolicy.yaml), the 2026-09-30 drift loop. The
|
||||
# pod still carries the egress-class and auth-mode labels those policies would require.
|
||||
#
|
||||
# PodSecurity `restricted` IS enforced: nothing here needs any privilege.
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: vuln-scanner
|
||||
labels:
|
||||
app.kubernetes.io/name: vuln-scanner
|
||||
gateway-access: "shared"
|
||||
pod-security.kubernetes.io/enforce: restricted
|
||||
pod-security.kubernetes.io/enforce-version: latest
|
||||
Reference in new issue
Block a user