Add arrstack creds role and k8s auth for mediamark #141
Reference in New Issue
Block a user
Delete Branch "benvin/mediamark-arrstack-role"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
mediamark (kids-content marking UI, namespace
mediamark) needs Sonarr/Radarr access to list series/movies and read metadata + artwork. It should get ephemeral virtual arrproxy keys from the arrstack secrets engine via arrproxy, not a copy of the static app API keys.How
config/arrstack_secret_backend_role/arrstack/mediamark.yaml— role minting keys scoped tosonarr+radarr(no prowlarr),ttl: 60/max_ttl: 86400, mirroring the existing per-app roles.config/auth_kubernetes_role/k8s/au/syd1/mediamark.yaml— k8s auth rolemediamark, bound to serviceaccountdefaultin namespacemediamark,token_ttl/token_max_ttl600, audiencevault.policies/arrstack/creds/mediamark.yaml—readonarrstack/creds/mediamark, granted tok8s/au/syd1: [mediamark]only (deliberately not the shareddefaultk8s role, which would expose the creds to every namespace).Engine mount/config and the existing roles are untouched.
Note
The companion argocd-apps change consumes
arrstack/creds/mediamarkvia aVaultDynamicSecret(response fields:token,id,apps,subject,expires_at).GET/HEAD-only is not expressible today.
arrstack_secret_backend_rolecarriesapps/ttl/max_ttlonly, and arrproxy scopes machine tokens by app — the GET/HEAD restriction on the cheeztv/kids tier is a grant on an OIDC group, not on a minted token. The role is scoped as tightly as the engine allows and the limitation is documented in the yaml; per-token method scoping needs a plugin + arrproxy feature.