agentic-os/agents/k8s/bernard-deployment.yaml

185 lines
4.8 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: bernard-worker
namespace: ai-agents-bernard
labels:
app.kubernetes.io/name: bernard-worker
agentic-os.io/agent: bernard
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: bernard-worker
template:
metadata:
labels:
app.kubernetes.io/name: bernard-worker
agentic-os.io/agent: bernard
spec:
initContainers:
- name: git-clone
image: alpine/git:latest
command:
- sh
- -c
- |
git clone http://192.168.8.248:3000/deepkoluguri/agentic-os.git /workspace
volumeMounts:
- name: workspace
mountPath: /workspace
containers:
- name: bernard-worker
image: python:3.11-slim
command:
- sh
- -c
- |
cd /workspace/agents/bernard && pip install -e . -q && bernard-worker
volumeMounts:
- name: workspace
mountPath: /workspace
env:
- name: TEMPORAL_ADDRESS
value: "temporal-frontend.ai-core.svc.cluster.local:7233"
- name: TEMPORAL_NAMESPACE
value: "default"
- name: BERNARD_TASK_QUEUE
value: "bernard"
- name: GITEA_BASE_URL
value: "http://gitea.gitea.svc.cluster.local:3000"
- name: GITEA_TOKEN
valueFrom:
secretKeyRef:
name: bernard-secrets
key: GITEA_TOKEN
- name: LITELLM_API_KEY
valueFrom:
secretKeyRef:
name: bernard-litellm-key
key: LITELLM_API_KEY
- name: LITELLM_BASE_URL
value: "http://litellm.ai-core.svc.cluster.local:4000"
- name: BERNARD_DB_DSN
valueFrom:
secretKeyRef:
name: bernard-secrets
key: BERNARD_DB_DSN
- name: BERNARD_MODEL
value: "ollama-qwen"
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 1000m
memory: 1024Mi
volumes:
- name: workspace
emptyDir: {}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: bernard-dashboard
namespace: ai-agents-bernard
labels:
app.kubernetes.io/name: bernard-dashboard
agentic-os.io/agent: bernard
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: bernard-dashboard
template:
metadata:
labels:
app.kubernetes.io/name: bernard-dashboard
agentic-os.io/agent: bernard
spec:
initContainers:
- name: git-clone
image: alpine/git:latest
command:
- sh
- -c
- |
git clone http://192.168.8.248:3000/deepkoluguri/agentic-os.git /workspace
volumeMounts:
- name: workspace
mountPath: /workspace
containers:
- name: bernard-dashboard
image: python:3.11-slim
command:
- sh
- -c
- |
cd /workspace/agents/bernard && pip install -e . -q && bernard-dashboard
volumeMounts:
- name: workspace
mountPath: /workspace
env:
- name: PORT
value: "8080"
- name: BERNARD_DB_DSN
valueFrom:
secretKeyRef:
name: bernard-secrets
key: BERNARD_DB_DSN
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 120
periodSeconds: 15
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 120
periodSeconds: 5
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 1000m
memory: 1024Mi
volumes:
- name: workspace
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: bernard-dashboard
namespace: ai-agents-bernard
spec:
selector:
app.kubernetes.io/name: bernard-dashboard
ports:
- port: 8080
targetPort: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: bernard-ingress
namespace: ai-agents-bernard
spec:
ingressClassName: apisix
rules:
- host: bernard.applaude.net
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: bernard-dashboard
port:
number: 8080