forked from roger/k3s-cluster
Compare commits
17 Commits
a5b90994a4
...
fix/litell
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c134d5dd0 | ||
|
|
6df0be81c9 | ||
| a5291da0b2 | |||
|
|
075bdd8ca3 | ||
|
|
e44d7ba1fc | ||
|
|
f1005cd426 | ||
|
|
43c0c2561e | ||
| 8334cd48f8 | |||
|
|
ba7e05a73d | ||
|
|
8bc3025296 | ||
|
|
7a7d67bedc | ||
|
|
19cdc77880 | ||
|
|
8983f482d0 | ||
|
|
0b27cefd13 | ||
|
|
279cc1f235 | ||
|
|
cf6e2784fe | ||
|
|
dad38347e7 |
@@ -25,6 +25,8 @@ metadata:
|
||||
namespace: gitea
|
||||
labels:
|
||||
app: gitea
|
||||
annotations:
|
||||
kubectl.kubernetes.io/restartedAt: "2026-07-21T13:30:00Z"
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
@@ -101,6 +103,8 @@ metadata:
|
||||
namespace: gitea
|
||||
labels:
|
||||
app: gitea-runner
|
||||
annotations:
|
||||
kubectl.kubernetes.io/restartedAt: "2026-07-21T13:30:00Z"
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
@@ -115,7 +119,14 @@ spec:
|
||||
kubernetes.io/arch: arm64
|
||||
containers:
|
||||
- name: gitea-runner
|
||||
image: vegardit/gitea-act-runner:latest
|
||||
image: vegardit/gitea-act-runner:v0.12.0
|
||||
resources:
|
||||
requests:
|
||||
memory: "512Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
env:
|
||||
- name: GITEA_INSTANCE_URL
|
||||
valueFrom:
|
||||
|
||||
@@ -58,9 +58,9 @@ spec:
|
||||
image: ghcr.io/home-assistant/home-assistant:stable
|
||||
resources:
|
||||
requests:
|
||||
memory: "256Mi"
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
limits:
|
||||
memory: "1Gi"
|
||||
ports:
|
||||
- containerPort: 8123
|
||||
volumeMounts:
|
||||
|
||||
@@ -11,18 +11,30 @@ metadata:
|
||||
data:
|
||||
config.yaml: |
|
||||
model_list:
|
||||
- model_name: gpt-5-mini
|
||||
- model_name: gpt-5.6-luna
|
||||
litellm_params:
|
||||
model: openai/gpt-5-mini-2025-08-07
|
||||
model: openai/gpt-5.6-luna
|
||||
api_key: "os.environ/OPENAI_API_KEY"
|
||||
- model_name: claude-4.5-haiku
|
||||
- model_name: claude-haiku-4.5
|
||||
litellm_params:
|
||||
model: "anthropic/claude-haiku-4-5-20251001"
|
||||
api_key: "os.environ/ANTHROPIC_API_KEY"
|
||||
- model_name: claude-sonnet-5
|
||||
litellm_params:
|
||||
model: "anthropic/claude-sonnet-5"
|
||||
api_key: "os.environ/ANTHROPIC_API_KEY"
|
||||
- model_name: gemini-3-flash
|
||||
litellm_params:
|
||||
model: gemini/gemini-3-flash-preview
|
||||
api_key: "os.environ/GEMINI_API_KEY"
|
||||
- model_name: tencent/hy3:free
|
||||
litellm_params:
|
||||
model: openrouter/tencent/hy3:free
|
||||
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||
- model_name: z-ai/glm-5.2
|
||||
litellm_params:
|
||||
model: openrouter/z-ai/glm-5.2
|
||||
api_key: "os.environ/OPENROUTER_API_KEY"
|
||||
- model_name: glm-4.7-flash
|
||||
litellm_params:
|
||||
model: ollama/glm-4.7-flash
|
||||
@@ -100,6 +112,13 @@ spec:
|
||||
env:
|
||||
- name: STORE_MODEL_IN_DB
|
||||
value: "True"
|
||||
resources:
|
||||
requests:
|
||||
memory: "512Mi"
|
||||
cpu: "250m"
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
volumes:
|
||||
- name: config-volume
|
||||
configMap:
|
||||
|
||||
@@ -15,9 +15,10 @@ spec:
|
||||
labels:
|
||||
app: prometheus
|
||||
spec:
|
||||
# Prevent scheduling on Raspberry Pi due to resource requirements (512Mi-1Gi memory, 500m-1000m CPU)
|
||||
# Target the nucbox (amd64, 24Gi RAM) which is the only node with enough memory for Prometheus.
|
||||
nodeSelector:
|
||||
hardware: high-memory
|
||||
kubernetes.io/os: linux
|
||||
kubernetes.io/arch: amd64
|
||||
serviceAccountName: prometheus
|
||||
containers:
|
||||
- name: prometheus
|
||||
|
||||
@@ -54,6 +54,16 @@ spec:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: LITELLM_API_KEY
|
||||
- name: WEB_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: WEB_SECRET_KEY
|
||||
- name: GIT_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: GIT_TOKEN
|
||||
volumeMounts:
|
||||
- name: myorg-data
|
||||
mountPath: /data/myorg
|
||||
|
||||
@@ -54,6 +54,16 @@ spec:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: LITELLM_API_KEY
|
||||
- name: WEB_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: WEB_SECRET_KEY
|
||||
- name: GIT_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: GIT_TOKEN
|
||||
volumeMounts:
|
||||
- name: myorg-data
|
||||
mountPath: /data/myorg
|
||||
|
||||
@@ -24,6 +24,43 @@ spec:
|
||||
restartPolicy: OnFailure
|
||||
imagePullSecrets:
|
||||
- name: gitea-registry
|
||||
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}@rogi.casa"
|
||||
git config credential.helper store
|
||||
echo "https://${GIT_USERNAME}:${GIT_TOKEN}@git.rogi.casa" > ~/.git-credentials
|
||||
else
|
||||
echo "Repository already exists, skipping clone."
|
||||
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: git-sync
|
||||
image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf
|
||||
@@ -69,6 +106,11 @@ spec:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: LITELLM_API_KEY
|
||||
- name: WEB_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: WEB_SECRET_KEY
|
||||
volumeMounts:
|
||||
- name: myorg-data
|
||||
mountPath: /data/myorg
|
||||
|
||||
@@ -61,6 +61,16 @@ spec:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: LITELLM_API_KEY
|
||||
- name: WEB_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: WEB_SECRET_KEY
|
||||
- name: GIT_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: GIT_TOKEN
|
||||
volumeMounts:
|
||||
- name: myorg-data
|
||||
mountPath: /data/myorg
|
||||
|
||||
@@ -54,6 +54,16 @@ spec:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: LITELLM_API_KEY
|
||||
- name: WEB_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: WEB_SECRET_KEY
|
||||
- name: GIT_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: myorg-assistant-secret
|
||||
key: GIT_TOKEN
|
||||
volumeMounts:
|
||||
- name: myorg-data
|
||||
mountPath: /data/myorg
|
||||
|
||||
@@ -53,15 +53,17 @@ spec:
|
||||
value: http
|
||||
- name: N8N_PORT
|
||||
value: "5678"
|
||||
- name: NODE_OPTIONS
|
||||
value: "--max-old-space-size=768"
|
||||
image: n8nio/n8n
|
||||
name: n8n
|
||||
ports:
|
||||
- containerPort: 5678
|
||||
resources:
|
||||
requests:
|
||||
memory: "250Mi"
|
||||
memory: "512Mi"
|
||||
limits:
|
||||
memory: "500Mi"
|
||||
memory: "1Gi"
|
||||
volumeMounts:
|
||||
- mountPath: /home/node/.n8n
|
||||
name: n8n-claim0
|
||||
|
||||
@@ -9,10 +9,10 @@ spec:
|
||||
ingressClassName: traefik
|
||||
tls:
|
||||
- hosts:
|
||||
- openai.rogi.casa
|
||||
- ai.rogi.casa
|
||||
secretName: openwebui-tls
|
||||
rules:
|
||||
- host: openai.rogi.casa
|
||||
- host: ai.rogi.casa
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
|
||||
@@ -59,6 +59,16 @@ data:
|
||||
cron:
|
||||
wrap_response: false
|
||||
|
||||
discord:
|
||||
allowed_channels: '1470909384162017444' # DISCORD_HOME_CHANNEL
|
||||
free_response_channels: '1470909384162017444' # no @mention needed here
|
||||
# Per-platform gateway auth. Paired with GATEWAY_ALLOW_ALL_USERS=true in
|
||||
# the env (secret.yaml), this lets the bot reply to inbound DMs and
|
||||
# group messages from anyone. Tighten later by switching to
|
||||
# DISCORD_ALLOWED_USERS=<id> in the secret and dropping these two lines.
|
||||
dm_policy: open
|
||||
group_policy: open
|
||||
|
||||
memory:
|
||||
memory_enabled: true
|
||||
user_profile_enabled: true
|
||||
|
||||
@@ -125,6 +125,13 @@ spec:
|
||||
env:
|
||||
- name: HERMES_HOME
|
||||
value: /opt/data
|
||||
# Hermes' file-write tool refuses any path outside HERMES_WRITE_SAFE_ROOT.
|
||||
# When unset it defaults to HERMES_HOME (/opt/data), which blocks the
|
||||
# agent's only GitOps remediation path (editing manifests under
|
||||
# /workspace/k3s-cluster). Whitelist the whole filesystem — consistent
|
||||
# with yolo:true, approvals.mode:off, and the agent having no k8s RBAC.
|
||||
- name: HERMES_WRITE_SAFE_ROOT
|
||||
value: "/"
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /opt/data
|
||||
|
||||
Reference in New Issue
Block a user