Files
homelab/k8s/apps/agent-pod/deployment.yaml
T

89 lines
2.5 KiB
YAML
Raw Normal View History

apiVersion: apps/v1
kind: Deployment
metadata:
name: agent-pod
namespace: agent-pod
spec:
replicas: 1
selector:
matchLabels:
app: agent-pod
template:
metadata:
labels:
app: agent-pod
spec:
# api.riotpiao.com has no in-cluster DNS record (only resolves from the
# home network's own resolver) -- pin it to ingress-nginx-controller's
# ClusterIP so pi's models.json baseUrl works unchanged. TLS still
# terminates correctly since SNI/Host still say api.riotpiao.com.
hostAliases:
- ip: "10.101.128.185"
hostnames:
- "api.riotpiao.com"
containers:
- name: pi
image: node:22-slim
command:
- sh
- -c
- "npm install -g @earendil-works/[email protected] && sleep infinity"
resources:
requests:
cpu: "2"
memory: 4Gi
limits:
cpu: "4"
memory: 8Gi
volumeMounts:
- name: pi-config
mountPath: /root/.pi/config.json
subPath: config.json
- name: pi-config
mountPath: /root/.pi/agent/settings.json
subPath: settings.json
- name: pi-models
mountPath: /root/.pi/agent/models.json
subPath: models.json
- name: agent-run-script
mountPath: /root/agent-run.js
subPath: agent-run.js
# Sidecar: relays pi's --mode json session events to agent-console.
# Runs via `go run` on mounted source rather than a prebuilt image --
# same "no registry yet" tradeoff as the pi container's npm install.
- name: hub
image: golang:1.25-alpine
workingDir: /hub
command:
- sh
- -c
- "go run ."
env:
- name: HUB_ADDR
value: ":9090"
ports:
- containerPort: 9090
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
volumeMounts:
- name: hub-src
mountPath: /hub
volumes:
- name: pi-config
configMap:
name: pi-config
- name: pi-models
secret:
secretName: pi-models
- name: agent-run-script
configMap:
name: agent-run-script
- name: hub-src
configMap:
name: hub-src