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>
111 lines
3.9 KiB
YAML
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
|