atlas-iac/services/hermes/hux-evidence-rbac.yaml
jenkins e40fc5ec5d hermes(chat): stage the HUX-12 evidence producer sidecar
Activation-layer staging, fail-closed until enablement: a per-tenant
hux-evidence-producer sidecar on the exact reviewed WebUI image runs
hux_producer.run_once on a 60s loop, inert until the Vault-staged
evidence key (tolerant init, tmpfs, 0400, staged only for the hux
service and producer containers - never hermes or webui), the policy
ConfigMap, and the scope ConfigMap exist. Adds least-privilege
read-only RBAC (pods+statefulset in hermes, the single named Flux
Kustomization), tenant egress to the Kubernetes API ClusterIP and the
traefik edge, the policy allowlist, hux_producer packaging in the WebUI
image, and a third expected WebUI consumer in the Flux release
renderer. Delivery and image-automation gates enforce the boundary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
2026-08-24 04:39:45 -03:00

55 lines
1.4 KiB
YAML

# services/hermes/hux-evidence-rbac.yaml
# Read-only facts for the HUX-12 evidence producer sidecar: Ready pod
# imageIDs and the desired StatefulSet image in this namespace, plus the
# single named Flux Kustomization's applied revision. The pod service
# account gains nothing writable and nothing secret.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: hermes-hux-evidence-read
namespace: hermes
rules:
- apiGroups: [""]
resources: [pods]
verbs: [get, list]
- apiGroups: [apps]
resources: [statefulsets]
verbs: [get]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: hermes-hux-evidence-read
namespace: hermes
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: hermes-hux-evidence-read
subjects:
- kind: ServiceAccount
name: hermes-chat
namespace: hermes
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: hermes-hux-evidence-kustomization-read
rules:
- apiGroups: [kustomize.toolkit.fluxcd.io]
resources: [kustomizations]
resourceNames: [hermes]
verbs: [get]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: hermes-hux-evidence-kustomization-read
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: hermes-hux-evidence-kustomization-read
subjects:
- kind: ServiceAccount
name: hermes-chat
namespace: hermes