myorg assistant

This commit is contained in:
Roger Oriol
2026-02-03 23:56:31 +01:00
parent aa4793dd51
commit a895d4cf33
11 changed files with 673 additions and 0 deletions

View File

@@ -0,0 +1,176 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: myorg-assistant
namespace: default
labels:
app: myorg-assistant
spec:
replicas: 1
selector:
matchLabels:
app: myorg-assistant
template:
metadata:
labels:
app: myorg-assistant
spec:
initContainers:
- name: git-clone
image: alpine/git:latest
command:
- sh
- -c
- |
if [ ! -d /data/myorg/.git ]; then
echo "Cloning repository..."
git clone ${GIT_REPO_URL} /data/myorg
cd /data/myorg
git config user.name "${GIT_USERNAME}"
git config user.email "${GIT_USERNAME}@users.noreply.github.com"
git config credential.helper store
echo "https://${GIT_USERNAME}:${GIT_TOKEN}@github.com" > ~/.git-credentials
else
echo "Repository already exists, pulling latest changes..."
cd /data/myorg
git pull
fi
env:
- name: GIT_REPO_URL
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: GIT_REPO_URL
- name: GIT_USERNAME
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: GIT_USERNAME
- name: GIT_TOKEN
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: GIT_TOKEN
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
containers:
- name: myorg-assistant
image: myorg-assistant:latest
imagePullPolicy: IfNotPresent
command: ["./start.sh"]
ports:
- containerPort: 8000
name: web
protocol: TCP
env:
# From ConfigMap
- name: LITELLM_ENDPOINT
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: LITELLM_ENDPOINT
- name: LITELLM_MODEL
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: LITELLM_MODEL
- name: MYORG_REPO_PATH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: MYORG_REPO_PATH
- name: TIMEZONE
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: TIMEZONE
- name: WEB_HOST
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: WEB_HOST
- name: WEB_PORT
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: WEB_PORT
- name: GIT_BRANCH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: GIT_BRANCH
# From Secret
- name: DISCORD_BOT_TOKEN
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: DISCORD_BOT_TOKEN
- name: DISCORD_CHANNEL_ID
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: DISCORD_CHANNEL_ID
- name: LITELLM_API_KEY
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: LITELLM_API_KEY
- name: GIT_REPO_URL
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: GIT_REPO_URL
- name: GIT_USERNAME
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: GIT_USERNAME
- name: GIT_TOKEN
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: GIT_TOKEN
- name: WEB_SECRET_KEY
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: WEB_SECRET_KEY
- name: WEB_PASSWORD
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: WEB_PASSWORD
optional: true
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
exec:
command:
- sh
- -c
- "ps aux | grep 'python -m src.main bot' | grep -v grep"
initialDelaySeconds: 30
periodSeconds: 30
timeoutSeconds: 5
failureThreshold: 3
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc
restartPolicy: Always