agents-runtime/k8s/agents-api.yaml

112 lines
2.5 KiB
YAML

apiVersion: v1
kind: ServiceAccount
metadata:
name: agents-ops-sa
namespace: agents-runtime
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: agents-ops-clusterrole
rules:
- apiGroups: ["", "apps", "batch", "networking.k8s.io"]
resources: ["pods", "pods/log", "deployments", "services", "namespaces", "events", "jobs", "cronjobs", "ingresses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: agents-ops-clusterrolebinding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: agents-ops-clusterrole
subjects:
- kind: ServiceAccount
name: agents-ops-sa
namespace: agents-runtime
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: agents-api
labels:
app.kubernetes.io/name: agents-api
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: agents-api
template:
metadata:
labels:
app.kubernetes.io/name: agents-api
spec:
serviceAccountName: agents-ops-sa
initContainers:
- name: git-clone
image: alpine/git
command:
- git
- clone
- http://192.168.8.248:3000/deepkoluguri/agents-runtime.git
- /app
volumeMounts:
- name: app-volume
mountPath: /app
containers:
- name: api
image: python:3.11-slim
workingDir: /app
command: ["sh", "-c", "pip install -r requirements.txt && python -m src.api"]
env:
- name: PYTHONPATH
value: "/app"
- name: GOOGLE_API_KEY
valueFrom:
secretKeyRef:
name: agents-api-secrets
key: GOOGLE_API_KEY
ports:
- containerPort: 8000
volumeMounts:
- name: app-volume
mountPath: /app
volumes:
- name: app-volume
emptyDir: {}
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: agents-api-secrets
namespace: agents-runtime
spec:
refreshInterval: 1h
secretStoreRef:
kind: ClusterSecretStore
name: infisical
target:
name: agents-api-secrets
creationPolicy: Owner
data:
- secretKey: GOOGLE_API_KEY
remoteRef:
key: GOOGLE_API_KEY
---
apiVersion: v1
kind: Service
metadata:
name: agents-api
labels:
app.kubernetes.io/name: agents-api
spec:
ports:
- port: 8000
targetPort: 8000
selector:
app.kubernetes.io/name: agents-api