k3s/services/nest-matrix-bot/nest-matrix-bot-deployment.yaml

66 lines
2.1 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: matrix-keycloak-bot
namespace: default
labels:
app.kubernetes.io/name: matrix-keycloak-bot
app.kubernetes.io/component: automation
spec:
# Maintain exactly 1 replica to prevent duplicate event handling on Matrix syncs
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: matrix-keycloak-bot
template:
metadata:
labels:
app.kubernetes.io/name: matrix-keycloak-bot
spec:
imagePullSecrets:
- name: forgejo-registry-secret
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
containers:
- name: bot
image: weaver.mynest.love/nest/nest-matrix-bot:latest
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
env:
# --- Non-Sensitive Configuration ---
- name: MATRIX_HOMESERVER
value: "https://starling.mynest.love"
- name: MATRIX_BOT_USER
value: "@access-bot:starling.mynest.love"
- name: ADMIN_ROOM_ID
value: "!adminroomid:starling.mynest.love"
- name: ADMIN_MATRIX_IDS
value: "@nest:starling.mynest.love"
- name: KEYCLOAK_URL
value: "https://sso.mynest.love/"
- name: KEYCLOAK_REALM
value: "nest"
- name: KEYCLOAK_CLIENT_ID
value: "nest-matrix-bot"
# --- Sensitive Credentials from Vault-managed Secret ---
- name: MATRIX_BOT_PASSWORD
valueFrom:
secretKeyRef:
name: matrix-bot-credentials
key: MATRIX_BOT_PASSWORD
- name: KEYCLOAK_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: matrix-bot-credentials
key: KEYCLOAK_CLIENT_SECRET