# ============================================================================= # L1 RENDERING SCAFFOLD — every namespace renders a default-deny baseline # (R-NET-01) # Catalog: docs/14 L0/L1 "Every namespace has a default-deny baseline" # # GIVEN any onboarded service (any namespace), # WHEN its resources are rendered, # THEN the render includes the namespaced default-deny baseline policy. # # This is the RENDER-TIME partner of the L2 behavioral default-deny test and of # the L0 Kyverno gate (T-0.5). Rendering the baseline is necessary but NOT # sufficient — enforcement is proven behaviorally at L2 (R-TEST-01). # # STATUS: IMPLEMENTED (T-0.3). render-check.sh renders a service and asserts the # namespaced default-deny baseline is present + shaped (deny-all, both directions) — # a pure offline check (renderer + golden diff, no cluster). conformance/run.sh --layer # l1 and ci/l1.sh run it directly; this Chainsaw Test wraps the SAME script so an # in-cluster run executes the identical assertion. Rendering != enforcement (proven L2). # ============================================================================= apiVersion: chainsaw.kyverno.io/v1alpha1 kind: Test metadata: name: default-deny-baseline-render labels: conformance.home.k3s/R-NET-01: "true" annotations: conformance.home.k3s/requirements: "R-NET-01" conformance.home.k3s/layer: "L1" conformance.home.k3s/safety-critical: "false" conformance.home.k3s/intent: >- Rendering any service's namespace yields a default-deny baseline policy. spec: steps: - name: render-and-assert-default-deny description: >- Render a service and assert the namespaced default-deny baseline is present and shaped (deny-all ingress, both Ingress+Egress), matching the golden. try: - script: content: bash ./render-check.sh