Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions dev/composables/composable-agents/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: composable-agents-config
namespace: composables
data:
# === OpenAI-compatible endpoint (OpenRouter, LiteLLM, etc.) ===
OPENAI_BASE_URL: "https://openrouter.ai/api/v1"
# === Agent configuration ===
AGENTS_DIR: "./agents"
HOST: "0.0.0.0"
PORT: "8000"
# === MinIO (object storage) ===
MINIO_ENDPOINT: "bricks-minio:9000"
MINIO_ACCESS_KEY: "minioadmin"
MINIO_BUCKET: "composable-agents"
MINIO_SECURE: "false"
# === PostgreSQL (metadata) ===
POSTGRES_HOST: "bricks-db"
POSTGRES_PORT: "5432"
POSTGRES_USER: "raganything"
POSTGRES_DATABASE: "raganything"
# === Tracing (optional) ===
TRACING_PROVIDER: "none"
TRACING_ENABLED: "false"
TRACING_PROJECT_NAME: "composable-agents"
LANGFUSE_HOST: "https://cloud.langfuse.com"
LANGFUSE_PUBLIC_KEY: ""
LANGFUSE_SECRET_KEY: ""
PHOENIX_COLLECTOR_ENDPOINT: "http://bricks-phoenix:6006"
PHOENIX_API_KEY: ""
LANGCHAIN_API_KEY: ""
LANGCHAIN_PROJECT: "composable-agents"
49 changes: 49 additions & 0 deletions dev/composables/composable-agents/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: composable-agents
namespace: composables
labels:
app: composable-agents
spec:
replicas: 1
selector:
matchLabels:
app: composable-agents
template:
metadata:
labels:
app: composable-agents
spec:
tolerations:
- key: "klipperlb-exclude"
value: "true"
effect: "NoSchedule"
operator: "Equal"
containers:
- name: composable-agents
image: kaiohz/composable-agents:latest
ports:
- containerPort: 8000
envFrom:
- secretRef:
name: composable-agents-secret
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 90
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 60
periodSeconds: 5
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "512Mi"
cpu: "500m"
16 changes: 16 additions & 0 deletions dev/composables/composable-agents/external-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: composable-agents-external-secret
namespace: composables
spec:
refreshInterval: 60s
secretStoreRef:
name: openbao-backend
kind: ClusterSecretStore
target:
name: composable-agents-secret
creationPolicy: Owner
dataFrom:
- extract:
key: composables/composable-agents
20 changes: 20 additions & 0 deletions dev/composables/composable-agents/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: composable-agents-ingress
namespace: composables
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
traefik.ingress.kubernetes.io/redirect-scheme: https
spec:
rules:
- host: composable-agents.soludev.tech
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: composable-agents
port:
number: 8000
13 changes: 13 additions & 0 deletions dev/composables/composable-agents/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: composable-agents
namespace: composables
spec:
selector:
app: composable-agents
ports:
- protocol: TCP
port: 8000
targetPort: 8000
type: ClusterIP
26 changes: 26 additions & 0 deletions dev/composables/minio/bucket-init-job.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: batch/v1
kind: Job
metadata:
name: minio-bucket-init
namespace: composables
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: mc
image: minio/mc:latest
envFrom:
- secretRef:
name: minio-secret
env:
- name: MINIO_ENDPOINT
value: "minio:9000"
command:
- /bin/sh
- -c
- |
mc alias set local http://${MINIO_ENDPOINT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
mc mb --ignore-existing local/raganything
mc mb --ignore-existing local/composable-agents
echo "Buckets created successfully"
64 changes: 64 additions & 0 deletions dev/composables/minio/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: minio
namespace: composables
labels:
app: minio
spec:
replicas: 1
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
tolerations:
- key: "klipperlb-exclude"
value: "true"
effect: "NoSchedule"
operator: "Equal"
containers:
- name: minio
image: minio/minio:latest
args:
- server
- /data
- --console-address
- ":9001"
ports:
- containerPort: 9000
name: api
- containerPort: 9001
name: console
envFrom:
- secretRef:
name: minio-secret
volumeMounts:
- name: minio-data
mountPath: /data
livenessProbe:
httpGet:
path: /minio/health/live
port: 9000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /minio/health/ready
port: 9000
initialDelaySeconds: 10
periodSeconds: 5
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "1Gi"
cpu: "500m"
volumes:
- name: minio-data
persistentVolumeClaim:
claimName: minio
16 changes: 16 additions & 0 deletions dev/composables/minio/external-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: minio-external-secret
namespace: composables
spec:
refreshInterval: 60s
secretStoreRef:
name: openbao-backend
kind: ClusterSecretStore
target:
name: minio-secret
creationPolicy: Owner
dataFrom:
- extract:
key: composables/minio
30 changes: 30 additions & 0 deletions dev/composables/minio/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minio-ingress
namespace: composables
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
traefik.ingress.kubernetes.io/redirect-scheme: https
spec:
rules:
- host: composables-minio.soludev.tech
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: minio
port:
number: 9001
- host: composables-api-minio.soludev.tech
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: minio
port:
number: 9000
20 changes: 20 additions & 0 deletions dev/composables/minio/persistent-volume.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-composables-minio
namespace: composables
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-composables-minio
nfs:
server: 100.64.0.6
path: /Volumes/NFSStorage/composables/minio
mountOptions:
- nfsvers=3
- hard
- timeo=600
- retrans=2
18 changes: 18 additions & 0 deletions dev/composables/minio/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: v1
kind: Service
metadata:
name: minio
namespace: composables
spec:
selector:
app: minio
ports:
- name: api
protocol: TCP
port: 9000
targetPort: 9000
- name: console
protocol: TCP
port: 9001
targetPort: 9001
type: ClusterIP
12 changes: 12 additions & 0 deletions dev/composables/minio/volume-claim.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: minio
namespace: composables
spec:
accessModes:
- ReadWriteMany
storageClassName: nfs-composables-minio
resources:
requests:
storage: 5Gi
49 changes: 49 additions & 0 deletions dev/composables/postgres/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
namespace: composables
labels:
app: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
tolerations:
- key: "klipperlb-exclude"
value: "true"
effect: "NoSchedule"
operator: "Equal"
volumes:
- name: postgres-data
persistentVolumeClaim:
claimName: composables-postgres-pvc
containers:
- name: postgres
image: postgres:17-alpine
ports:
- containerPort: 5432
envFrom:
- secretRef:
name: postgres-secret
volumeMounts:
- name: postgres-data
mountPath: /var/lib/postgresql/data
readinessProbe:
exec:
command: ["pg_isready", "-U", "composable_agents", "-d", "composable_agents"]
initialDelaySeconds: 5
periodSeconds: 5
resources:
requests:
memory: "256Mi"
cpu: "300m"
limits:
memory: "512Mi"
cpu: "500m"
Loading