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:
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -0,0 +1,6 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: agent-pod
|
||||
resources:
|
||||
- deployment.yaml
|
||||
- configmap.yaml
|
||||
Reference in New Issue
Block a user