--- # Flux Kustomization: the CVE visibility scanner (docs/17, ADR-0027) — reconciles ./platform/vuln-scanner. # # ISOLATION IS THE POINT, as for clusters/base/cloudflared.yaml. A failing scanner, an unbound PVC or a # pending Certificate must never become a stalled platform, so: # * ITS OWN Kustomization, not a line in platform/kustomization.yaml; # * wait: false — its health is reported by the VulnScanStale/VulnDatabaseStale/VulnCoverageGap/ # VulnCriticalFixAvailable/VulnTriageBotSilent alerts (platform/vuln-scanner/alerts.yaml), not by # this object's Ready condition, which reaches Ready on apply success; # * NOTHING dependsOn THIS. conformance/tests/l0-static/vuln-scanner-isolation fails the gate if any # Kustomization gains `dependsOn: vuln-scanner` or this one stops being wait:false. # # dependsOn: [platform-config] — a real edge: PrometheusRule/ServiceMonitor/Gateway API CRDs, the # Longhorn StorageClass, the Gateway, Keycloak's realm, and Longhorn itself come up through # `platform`/`platform-config` first. apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: vuln-scanner namespace: flux-system spec: interval: 10m retryInterval: 2m timeout: 5m prune: true wait: false dependsOn: - name: platform-config sourceRef: kind: GitRepository name: flux-system path: ./platform/vuln-scanner # REQUIRED: the HTTPRoute hostname, the oauth2-proxy issuer/redirect/cookie-domain args and every # alert's runbook_url are written `${BASE_DOMAIN}`. Substitution fails OPEN, so the file # conformance/tests/l0-static/flux-postbuild-substitution audits this tier. postBuild: substituteFrom: - kind: ConfigMap name: cluster-vars # SOPS decryption is layered per-environment: clusters/dev and clusters/prod each patch THIS # Kustomization by name with a `decryption:` stanza for the oauth2-proxy credentials.