feat: add ServiceAccounts for poimen-memory/kmsvc/immich operator Roles

Bind each service's operator Role to a ServiceAccount alongside the
existing oidc:*-admins Group, and wire serviceAccountName into the
pods we control (immich-server, immich-machine-learning,
management-service). poimen-memory's Deployment lives in its own
repo/ArgoCD app, so its SA is created here but not yet wired to a pod.
This commit is contained in:
Story Crater Bot
2026-08-26 19:51:05 -07:00
parent 7e648d2251
commit e4de366d2a
5 changed files with 29 additions and 0 deletions
+2
View File
@@ -19,6 +19,7 @@ spec:
labels:
app: immich-server
spec:
serviceAccountName: immich
nodeSelector:
kubernetes.io/hostname: talos-cp-3
containers:
@@ -81,6 +82,7 @@ spec:
labels:
app: immich-machine-learning
spec:
serviceAccountName: immich
containers:
- name: immich-machine-learning
image: ghcr.io/immich-app/immich-machine-learning:release
+8
View File
@@ -3,6 +3,11 @@
# provisioning-managed (immich-oidc). Same pattern as
# k8s/apps/paperless/rbac.yaml. Inert until kube-apiserver's OIDC wiring
# lands (--oidc-groups-claim=groups, --oidc-groups-prefix=oidc:).
apiVersion: v1
kind: ServiceAccount
metadata:
name: immich
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
@@ -29,6 +34,9 @@ subjects:
- kind: Group
name: "oidc:immich-admins"
apiGroup: rbac.authorization.k8s.io
- kind: ServiceAccount
name: immich
namespace: immich
roleRef:
kind: Role
name: immich-operator
@@ -13,6 +13,7 @@ spec:
labels:
app: management-service
spec:
serviceAccountName: kmsvc
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
+9
View File
@@ -3,6 +3,12 @@
# operator configmap are Strimzi-managed - hand-editing them gets reverted
# by the operator's reconcile loop or breaks the Kafka cluster. Inert until
# kube-apiserver's OIDC wiring lands.
apiVersion: v1
kind: ServiceAccount
metadata:
name: kmsvc
namespace: sqs
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
@@ -27,6 +33,9 @@ subjects:
- kind: Group
name: "oidc:kmsvc-admins"
apiGroup: rbac.authorization.k8s.io
- kind: ServiceAccount
name: kmsvc
namespace: sqs
roleRef:
kind: Role
name: kmsvc-operator
@@ -3,6 +3,12 @@
# poimen-git-info/poimen-secrets-* (owned by poimen's own repo/ArgoCD app,
# not this one) are excluded. Inert until kube-apiserver's OIDC wiring lands
# (--oidc-groups-claim=groups, --oidc-groups-prefix=oidc:).
apiVersion: v1
kind: ServiceAccount
metadata:
name: poimen-memory
namespace: poimen
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
@@ -27,6 +33,9 @@ subjects:
- kind: Group
name: "oidc:poimen-memory-admins"
apiGroup: rbac.authorization.k8s.io
- kind: ServiceAccount
name: poimen-memory
namespace: poimen
roleRef:
kind: Role
name: poimen-memory-operator