feat(agent-pod): deploy pi coding-agent pod for in-cluster harness

Namespace + Deployment (2-4 CPU, 4-8Gi mem) running node:20-slim with
pi installed at startup, wired to the homelab-ornith/reasoning/qwen
model providers via the existing model-invoke-apikey. Placeholder
node:20-slim image for now, real harness image to follow.
This commit is contained in:
Story Crater Bot
2026-08-16 00:23:30 -07:00
parent 9b75b15aa3
commit 3620b4929c
5 changed files with 139 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: pi-config
namespace: agent-pod
data:
config.json: |
{
"autoLoadSkills": [
"caveman",
"karpathy-guidelines"
],
"skillsPath": "~/.pi/skills",
"enforceRules": {
"karpathyGuidelines": {
"enabled": true,
"strict": true,
"rules": [
"Think before coding - surface assumptions and tradeoffs",
"Simplicity first - minimum code that solves the problem",
"Surgical changes - touch only what you must",
"Goal-driven execution - define verifiable success criteria"
]
}
},
"projectSpecific": {
"homelab": {
"gitOpsOnly": true,
"noManualKubectl": true,
"rebaseOnly": true,
"cnpgPattern": "unified-app-user"
}
}
}
settings.json: |
{
"defaultModel": "qwen2.5:3b-instruct",
"defaultProvider": "homelab-qwen",
"defaultThinkingLevel": "medium",
"theme": "light"
}
+46
View File
@@ -0,0 +1,46 @@
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:
containers:
- name: pi
image: node:20-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
volumes:
- name: pi-config
configMap:
name: pi-config
- name: pi-models
secret:
secretName: pi-models
+6
View File
@@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: agent-pod
resources:
- deployment.yaml
- configmap.yaml