Files
homelab/kubernetes/apps/review-bot/deployment.yaml
claude-botandClaude Opus 5.5 7f29ebb878
review-bot reviewed: comment
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
ci/woodpecker/pr/review-bot-test Pipeline was successful
ci/woodpecker/pr/ci-manifests-test Pipeline was successful
chore: follow homelab to konairius/homelab
Flux source URL, flux-git rotator verify repo, review-bot REPOS, pipeline API,
clone and push URLs, the heating-can source label and the review-bot and
kuma-sync Go module paths. Merge right after the transfer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 10:43:23 +02:00

111 lines
3.9 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: review-bot
namespace: review-bot
labels:
app.kubernetes.io/name: review-bot
annotations:
# The review token rotates quarterly; a restart picks it up.
secret.reloader.stakater.com/reload: review-bot-secrets
spec:
# One replica: the queue that keeps a PR from being reviewed twice lives in the process.
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app.kubernetes.io/name: review-bot
template:
metadata:
labels:
app.kubernetes.io/name: review-bot
spec:
automountServiceAccountToken: false
# Running reviews finish on shutdown (SHUTDOWN_WAIT is 9m).
terminationGracePeriodSeconds: 600
securityContext:
runAsNonRoot: true
runAsUser: 65534
runAsGroup: 65534
seccompProfile:
type: RuntimeDefault
containers:
- name: review-bot
image: gitea.renner.uno/gitea_admin/review-bot:2026-10-19-0540 # {"$imagepolicy": "flux-system:review-bot"}
env:
- name: REPOS
value: konairius/homelab,konairius/homeassistant,konairius/authentik-samba-bridge,konairius/shelly-manager
- name: GITEA_URL
value: https://gitea.renner.uno
- name: AGENT_NAME
value: pr-review
- name: CONNECTOR_ID
value: 01a12adf-cdc3-7562-b32b-b1fa96be244c
# The first model is the default; a backend without its keys is off.
- name: MODELS
value: |
mistral:mistral-large-4-0 = Mistral Large 4. Solid on routine changes of small to medium size.
anthropic:claude-haiku-5-5 = Claude Haiku 5.5. Cheapest and fastest; only for trivial changes such as documentation, comments or version bumps.
anthropic:claude-sonnet-5-5 = Claude Sonnet 5.5. Fast and capable; good for most code and configuration changes.
anthropic:claude-opus-5-5 = Claude Opus 5.5. The strongest reviewer; for large or cross-cutting changes and anything touching security, secrets, network policy or data.
- name: SELECTOR
value: typesafe
- name: ANTHROPIC_API_KEY
valueFrom:
secretKeyRef:
name: review-bot-secrets
key: ANTHROPIC_API_KEY
- name: MCP_TOKEN
valueFrom:
secretKeyRef:
name: review-bot-secrets
key: MCP_TOKEN
- name: TYPESAFE_API_KEY
valueFrom:
secretKeyRef:
name: review-bot-secrets
key: TYPESAFE_API_KEY
- name: WEBHOOK_SECRET
valueFrom:
secretKeyRef:
name: review-bot-secrets
key: WEBHOOK_SECRET
- name: MISTRAL_API_KEY
valueFrom:
secretKeyRef:
name: review-bot-secrets
key: MISTRAL_API_KEY
- name: REVIEW_TOKEN
valueFrom:
secretKeyRef:
name: review-bot-secrets
key: REVIEW_TOKEN
ports:
- containerPort: 8080
name: http
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
livenessProbe:
httpGet:
path: /healthz
port: http
initialDelaySeconds: 5
periodSeconds: 30
readinessProbe:
httpGet:
path: /readyz
port: http
initialDelaySeconds: 2
periodSeconds: 10
resources:
requests:
cpu: 10m
memory: 32Mi
limits:
memory: 256Mi