40 lines
1.6 KiB
YAML
40 lines
1.6 KiB
YAML
|
|
# ops-warden's calling identity for flex-auth (WARDEN-WP-0031 T04).
|
||
|
|
#
|
||
|
|
# flex-auth's `flex-auth-ops-warden` pin binds `resource.system: ops-warden` to
|
||
|
|
# the principal `system:serviceaccount:ops-warden:ops-warden` and TokenReviews
|
||
|
|
# the caller's bearer token with audience `flex-auth` (FLEX-WP-0016).
|
||
|
|
#
|
||
|
|
# This ServiceAccount is the subject of that binding. It holds no RBAC at all —
|
||
|
|
# it is never used to talk to the Kubernetes API, only to be *reviewed* by it.
|
||
|
|
# A workstation `warden sign` mints a short-lived bound token against it:
|
||
|
|
#
|
||
|
|
# kubectl create token ops-warden -n ops-warden \
|
||
|
|
# --audience flex-auth --duration 10m
|
||
|
|
#
|
||
|
|
# Boundary note: cluster resources are railiance-platform's to own. This
|
||
|
|
# manifest lives here because the identity is ops-warden's and flex-auth's
|
||
|
|
# binding names it; railiance-platform should adopt it into the cluster's own
|
||
|
|
# manifests, at which point this file becomes the record of what was applied
|
||
|
|
# rather than the source of truth (ADR-0003 — cover the gap, name the owner).
|
||
|
|
apiVersion: v1
|
||
|
|
kind: Namespace
|
||
|
|
metadata:
|
||
|
|
name: ops-warden
|
||
|
|
labels:
|
||
|
|
app.kubernetes.io/managed-by: ops-warden
|
||
|
|
netkingdom.coulomb.social/purpose: caller-identity
|
||
|
|
---
|
||
|
|
apiVersion: v1
|
||
|
|
kind: ServiceAccount
|
||
|
|
metadata:
|
||
|
|
name: ops-warden
|
||
|
|
namespace: ops-warden
|
||
|
|
labels:
|
||
|
|
app.kubernetes.io/managed-by: ops-warden
|
||
|
|
annotations:
|
||
|
|
netkingdom.coulomb.social/bound-by: >-
|
||
|
|
flex-auth-ops-warden callerAuth binding
|
||
|
|
ops-warden=system:serviceaccount:ops-warden:ops-warden (FLEX-WP-0016)
|
||
|
|
netkingdom.coulomb.social/workplan: WARDEN-WP-0031
|
||
|
|
automountServiceAccountToken: false
|