22 lines
1.7 KiB
YAML
22 lines
1.7 KiB
YAML
|
|
# THE single source of truth for the devvm Workstation lifecycle (onboard -> offboard).
|
||
|
|
# Consumed by roster_engine.py (derive/validate) + t3-provision-users.sh (apply).
|
||
|
|
#
|
||
|
|
# os_user (the map KEY, pinned) -> authentik_user . k8s_user . tier . namespaces
|
||
|
|
# The three identifiers differ per person (verified 2026-06-08) -- no email->username
|
||
|
|
# derivation; record each explicitly.
|
||
|
|
#
|
||
|
|
# Tiers: admin | power-user | namespace-owner
|
||
|
|
# admin - cluster-admin, unlocked tree, secrets (groups: sudo,docker,code-shared)
|
||
|
|
# power-user - cluster-wide READ (no Secrets) via oidc-power-user-readonly; locked clone
|
||
|
|
# namespace-owner - admin in their own namespace(s) only; locked clone
|
||
|
|
#
|
||
|
|
# wizard IS listed (as admin): the reconcile REGENERATES /etc/ttyd-user-map +
|
||
|
|
# dispatch.json from this file, so omitting him would drop his t3 instance. The
|
||
|
|
# provisioner skips account/group/clone mutations for already-existing users, so
|
||
|
|
# listing him is safe (he keeps his unlocked tree + cluster-admin untouched).
|
||
|
|
users:
|
||
|
|
wizard: {authentik_user: vbarzin, k8s_user: wizard, tier: admin} # base config author + cluster-admin
|
||
|
|
emo: {authentik_user: emil.barzin, k8s_user: emo, tier: power-user} # NET-NEW k8s_users entry (add as power-user before provisioning)
|
||
|
|
ancamilea: {authentik_user: ancaelena98, k8s_user: anca, tier: namespace-owner, namespaces: [plotting-book]} # ALREADY provisioned in-cluster -- assert, don't re-create
|
||
|
|
# gheorghe: {authentik_user: vabbit81, k8s_user: vabbit81, tier: namespace-owner, namespaces: [vabbit81]} # already a cluster ns-owner; uncomment to give him a devvm workstation
|