Files
homelab/userbot/k8s/base/userbots.yaml
T
forust a6af69dca0
ci / lint-compose (push) Successful in 3s
ci / lint-actionlint (push) Successful in 1s
ci / lint-shellcheck (push) Successful in 2s
ci / lint-prettier (push) Successful in 3s
ci / lint-ruff (push) Successful in 1s
ci / lint-yaml (push) Successful in 2s
ci / lint-dockerfiles (push) Successful in 2s
ci / scan-deps (push) Successful in 18s
ci / test-backend (push) Successful in 8s
ci / test-frontend (push) Successful in 11s
ci / validate (push) Successful in 3s
renovate-ci / validate-renovate (push) Successful in 13s
ci / build (push) Successful in 1m30s
fix(k8s): Recreate singletons and trim requests for scheduler headroom
RollingUpdate with default maxSurge needs a spare pod the single node does not have (99% CPU requested), so multi-workload restarts end Pending and verify times out. Recreate on all replicas:1 Deployments (immich-server and bentopdf keep RollingUpdate at replicas 2). Also trims CPU/memory requests toward measured use (adguard, authentik, gitea, netbox, uptime-kuma, netbird-server) and gives traefik requests/limits so it is no longer BestEffort.
2026-09-28 22:36:46 +02:00

145 lines
3.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: forust-userbot-deployment
labels:
app: forust-userbot
app.kubernetes.io/name: userbot
app.kubernetes.io/instance: forust
annotations:
userbot.forust.xyz/display-name: forust
userbot.forust.xyz/legacy: "true"
userbot.forust.xyz/credentials-secret: userbot-forust-secrets
userbot.forust.xyz/pvc: forust-pvc
spec:
selector:
matchLabels:
app: forust-userbot
strategy:
type: Recreate
template:
metadata:
labels:
app: forust-userbot
annotations:
kubectl.kubernetes.io/restartedAt: "2026-07-25T20:24:51+02:00"
spec:
containers:
- name: forust-userbot
image: gcr.forust.xyz/forust/userbot:prod
resources:
limits:
memory: "1.5Gi"
cpu: "300m"
requests:
memory: "512Mi"
cpu: "80m"
envFrom:
- secretRef:
name: userbot-common-secrets
- configMapRef:
name: userbot-common-config
- secretRef:
name: userbot-forust-secrets
volumeMounts:
- name: downloads
mountPath: /app/downloads
- name: forust-storage
mountPath: /app/data
subPath: data
- name: forust-storage
mountPath: /app/logs
subPath: logs
volumes:
- name: downloads
hostPath:
path: /srv/homelab/userbot/Downloads
type: DirectoryOrCreate
- name: forust-storage
persistentVolumeClaim:
claimName: forust-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: forust-pvc
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: anna-userbot-deployment
labels:
app: anna-userbot
app.kubernetes.io/name: userbot
app.kubernetes.io/instance: anna
annotations:
userbot.forust.xyz/display-name: anna
userbot.forust.xyz/legacy: "true"
userbot.forust.xyz/credentials-secret: userbot-anna-secrets
userbot.forust.xyz/pvc: anna-pvc
spec:
selector:
matchLabels:
app: anna-userbot
strategy:
type: Recreate
template:
metadata:
labels:
app: anna-userbot
annotations:
kubectl.kubernetes.io/restartedAt: "2026-07-25T20:24:51+02:00"
spec:
containers:
- name: anna-userbot
image: gcr.forust.xyz/forust/userbot:prod
resources:
limits:
memory: "1.5Gi"
cpu: "300m"
requests:
memory: "512Mi"
cpu: "80m"
envFrom:
- secretRef:
name: userbot-common-secrets
- configMapRef:
name: userbot-common-config
- secretRef:
name: userbot-anna-secrets
volumeMounts:
- name: downloads
mountPath: /app/downloads
- name: anna-storage
mountPath: /app/data
subPath: data
- name: anna-storage
mountPath: /app/logs
subPath: logs
volumes:
- name: downloads
hostPath:
path: /srv/homelab/userbot/Downloads
type: DirectoryOrCreate
- name: anna-storage
persistentVolumeClaim:
claimName: anna-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: anna-pvc
spec:
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce