Compare commits

..

2 Commits

Author SHA1 Message Date
Platform Engineer
483d23ba63 fix(myorg-assistant): add missing GIT_TOKEN to all CronJob pods (deadline-checker, morning-briefing, evening-summary, waiting-followup)
All four CronJobs share the same image + run_job entrypoint and import
Settings(), which requires git_token. Only git-sync and the Deployment
supplied these. Added GIT_REPO_URL/GIT_USERNAME/GIT_TOKEN secret env vars
to the other three CronJobs to prevent the same pydantic ValidationError
crash at import.
2026-07-16 01:19:12 +00:00
Platform Engineer
b5b4a3b250 fix(myorg-assistant): add missing GIT_TOKEN/GIT_REPO_URL/GIT_USERNAME to deadline-checker CronJob
The deadline-checker container crashed at import (pydantic ValidationError:
git_token field required) because the CronJob pod did not mount GIT_TOKEN
from myorg-assistant-secret, unlike the main Deployment. Added the three
git-related secret env vars so Settings() validates.
2026-07-16 01:17:02 +00:00
9 changed files with 44 additions and 62 deletions

View File

@@ -58,9 +58,9 @@ spec:
image: ghcr.io/home-assistant/home-assistant:stable
resources:
requests:
memory: "512Mi"
memory: "256Mi"
limits:
memory: "1Gi"
memory: "512Mi"
ports:
- containerPort: 8123
volumeMounts:

View File

@@ -59,6 +59,16 @@ spec:
secretKeyRef:
name: myorg-assistant-secret
key: WEB_SECRET_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:

View File

@@ -59,6 +59,16 @@ spec:
secretKeyRef:
name: myorg-assistant-secret
key: WEB_SECRET_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:

View File

@@ -24,47 +24,6 @@ spec:
restartPolicy: OnFailure
imagePullSecrets:
- name: gitea-registry
initContainers:
- name: git-clone
image: alpine/git:latest
command:
- sh
- -c
- |
# Normalize the repo URL host to the correct Gitea subdomain.
# The GIT_REPO_URL secret historically contained gitea.rogi.casa,
# which 526s through Cloudflare; the working subdomain is git.rogi.casa.
export GIT_REPO_URL="$(echo "${GIT_REPO_URL}" | sed -E 's#https?://[^/@]+@?gitea\.rogi\.casa#https://'"${GIT_USERNAME}"':'"${GIT_TOKEN}"'@git.rogi.casa#')"
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

View File

@@ -66,6 +66,16 @@ spec:
secretKeyRef:
name: myorg-assistant-secret
key: WEB_SECRET_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:

View File

@@ -59,6 +59,16 @@ spec:
secretKeyRef:
name: myorg-assistant-secret
key: WEB_SECRET_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:

View File

@@ -9,10 +9,10 @@ spec:
ingressClassName: traefik
tls:
- hosts:
- ai.rogi.casa
- openai.rogi.casa
secretName: openwebui-tls
rules:
- host: ai.rogi.casa
- host: openai.rogi.casa
http:
paths:
- path: /

View File

@@ -59,16 +59,6 @@ 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

View File

@@ -125,13 +125,6 @@ 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