Compare commits

..

3 Commits

Author SHA1 Message Date
platform-engineer
b6d6ec7d88 fix(myorg-assistant): point cronjob images at registry instead of local myorg-assistant:latest
All 5 CronJob manifests referenced 'myorg-assistant:latest' with
imagePullPolicy: IfNotPresent, but that image was never pushed to any
registry. The Deployment already uses the correct registry image
(git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf), so the
CronJob pods were stuck in ImagePullBackOff indefinitely.

Fix: use the same registry image + imagePullPolicy: Always.
2026-07-06 11:21:53 +00:00
Platform Engineer
ef17dc6c32 fix(myorg-assistant): fix CronJob image references to use Gitea registry image
CronJobs were referencing 'myorg-assistant:latest' (a local image that
doesn't exist in the cluster), causing ImagePullBackOff on all 4 active
CronJob pods. Updated all 5 CronJob manifests to use the same image as
the Deployment (git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf)
and added imagePullSecrets: gitea-registry for authentication.
2026-07-06 03:41:25 +00:00
Platform Engineer
3542bcc8fb fix(argocd): add RBAC ConfigMap granting platform-engineer account read+sync access
The platform-engineer ArgoCD account was created (argocd-cm.yaml) with
apiKey capability, but no argocd-rbac-cm ConfigMap existed, so the account
had default (empty) RBAC and every API call returned 403.

This adds the RBAC policy granting the platform-engineer role:
- get applications (all projects/namespaces)
- sync applications (all projects/namespaces)
- get projects

Needed for the platform-engineer cron jobs to read app health and trigger
syncs via the ArgoCD API.
2026-07-06 00:40:28 +00:00
6 changed files with 25 additions and 197 deletions

View File

@@ -7,9 +7,9 @@ metadata:
app.kubernetes.io/name: argocd-rbac-cm
app.kubernetes.io/part-of: argocd
data:
policy.csv: |
# Grant the platform-engineer local account read + sync access to all applications
p, role:platform-engineer, applications, get, */*, allow
p, role:platform-engineer, application, sync, */*, allow
g, platform-engineer, role:platform-engineer
policy.default: ""
policy.csv: |
p, role:platform-engineer, applications, get, */*, allow
p, role:platform-engineer, applications, sync, */*, allow
p, role:platform-engineer, projects, get, *, allow
g, platform-engineer, role:platform-engineer

View File

@@ -22,39 +22,9 @@ spec:
job: deadline-checker
spec:
restartPolicy: OnFailure
imagePullSecrets:
- name: gitea-registry
containers:
- name: deadline-checker
image: myorg-assistant:latest
imagePullPolicy: IfNotPresent
command:
- python
- run_job.py
- deadline-checker
env:
- name: MYORG_REPO_PATH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: MYORG_REPO_PATH
- 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
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc
image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf
imagePullPolicy: Always

View File

@@ -22,39 +22,9 @@ spec:
job: evening-summary
spec:
restartPolicy: OnFailure
imagePullSecrets:
- name: gitea-registry
containers:
- name: evening-summary
image: myorg-assistant:latest
imagePullPolicy: IfNotPresent
command:
- python
- run_job.py
- evening-summary
env:
- name: MYORG_REPO_PATH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: MYORG_REPO_PATH
- 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
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc
image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf
imagePullPolicy: Always

View File

@@ -22,54 +22,9 @@ spec:
job: git-sync
spec:
restartPolicy: OnFailure
imagePullSecrets:
- name: gitea-registry
containers:
- name: git-sync
image: myorg-assistant:latest
imagePullPolicy: IfNotPresent
command:
- python
- run_job.py
- git-sync
env:
- name: MYORG_REPO_PATH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: MYORG_REPO_PATH
- name: GIT_BRANCH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: GIT_BRANCH
- 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: DISCORD_BOT_TOKEN
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: DISCORD_BOT_TOKEN
- name: LITELLM_API_KEY
valueFrom:
secretKeyRef:
name: myorg-assistant-secret
key: LITELLM_API_KEY
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc
image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf
imagePullPolicy: Always

View File

@@ -22,46 +22,9 @@ spec:
job: morning-briefing
spec:
restartPolicy: OnFailure
imagePullSecrets:
- name: gitea-registry
containers:
- name: morning-briefing
image: myorg-assistant:latest
imagePullPolicy: IfNotPresent
command:
- python
- run_job.py
- morning-briefing
env:
# From ConfigMap
- name: MYORG_REPO_PATH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: MYORG_REPO_PATH
- name: TIMEZONE
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: TIMEZONE
# 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
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc
image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf
imagePullPolicy: Always

View File

@@ -22,39 +22,9 @@ spec:
job: waiting-followup
spec:
restartPolicy: OnFailure
imagePullSecrets:
- name: gitea-registry
containers:
- name: waiting-followup
image: myorg-assistant:latest
imagePullPolicy: IfNotPresent
command:
- python
- run_job.py
- waiting-followup
env:
- name: MYORG_REPO_PATH
valueFrom:
configMapKeyRef:
name: myorg-assistant-config
key: MYORG_REPO_PATH
- 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
volumeMounts:
- name: myorg-data
mountPath: /data/myorg
volumes:
- name: myorg-data
persistentVolumeClaim:
claimName: myorg-assistant-pvc
image: git.rogi.casa/roger/myorg-assistant/myorg-assistant:fcf79bf
imagePullPolicy: Always