diff --git a/log.md b/log.md index 1245b47..9f1bb94 100644 --- a/log.md +++ b/log.md @@ -1,5 +1,15 @@ # Memory Log +## [2026-09-27] bug-fix | Gitea CSI RBAC Fix + ArgoCD Verknüpfungs-Audit +- Root Cause: Ceph CSI RBD `csi-attacher` fehlte `storage.k8s.io/csinodes` Berechtigung → VolumeAttachments pending → Gitea Pod 4+ Tage Init-crash +- Fix: ClusterRole `ceph-rbd-external-attacher-runner` patched, provisioner Pods neu gestartet → alle 24 VolumeAttachments `true` +- Gitea Pod + schoenkitchen runner durch Pod-Delete wiederhergestellt +- ArgoCD Audit: 17/25 Apps via Gitea SSH, 20/25 Synced+Healthy +- Known Issues: `gitea`/`authelia` Health=Progressing (Ingress-LB-IP Gap), `immich` doppelt verwaltet, `gitea-config` Deployment Drift +- `DEFAULT_ACTIONS_URL=https://gitea.com` deprecated → Helm override auf `self` empfohlen +- Wiki `systems/gitea.md` aktualisiert: Runner Status, Incident, ArgoCD Issues +- Solution Doc: `docs/solutions/bug-fixes/2026-09-27-gitea-csi-rbac-volumeattachment-fix.md` + ## [2026-09-27] architecture | Memory Layer Restructuring + Laya Session-Nutzung - USER.md bereinigt: Infra-Fakten entfernt, nur noch User-Preferences/Safety-Rules (1.087/1.375 chars) - MEMORY.md ausgedünnt: 2.145→1.664 chars, alle Infra-Details zeigen auf Wiki-Seiten mit `→Wiki` Pointern diff --git a/systems/gitea.md b/systems/gitea.md index 372c8a6..a7403af 100644 --- a/systems/gitea.md +++ b/systems/gitea.md @@ -3,14 +3,14 @@ title: Gitea (Git Server + CI) category: systems tags: [gitea, git, ci, actions] created: "2026-07-24" -modified: "2026-07-26" +modified: "2026-09-27" --- # Gitea (Git Server + CI) ## Instanz - **URL:** git.schoen.codes (K8s Ingress, Traefik → gitea-http ClusterIP) -- **Internal:** gitea-internal.gitea:3000 (K8s ClusterIP 10.43.5.203) +- **Internal:** gitea-http ClusterIP (headless, `None`) — Port 3000/TCP, via Ingress/Traefik erreichbar - **SSH:** 10.0.30.200:22 (Cilium LoadBalancer, gitea-ssh service, NodePort 31441) — NICHT .202 (alter Wiki-Fehler) - **Version:** 1.27.0 (K8s Helm chart v12.7.0) - **Privat:** NIEMALS öffentlich machen (enthält Secrets) @@ -28,12 +28,15 @@ modified: "2026-07-26" - Ed25519 SSH-Key als Gitea Deploy Key (read-only) - ArgoCD Secret `argocd-repo-k8s-gitea` mit SSH Private Key - `known_hosts` ConfigMap mit Gitea SSH Hostkey -- 15 ArgoCD Apps via SSH (`ssh://gitea@git.schoen.codes:22/dominik/iac-homelab.git`) +- 17 ArgoCD Apps via SSH (`ssh://git@10.0.30.200:22/dominik/iac-homelab.git`) +- 25 ArgoCD Apps gesamt (Stand Sep 2026) ## Gitea Actions CI - **Primary Runner:** vm200-host (ID 73, act_runner v0.2.13, host backend) — WORKING -- **K8s Runner:** gitea-runner deployment in gitea namespace (DinD sidecar + act_runner v0.2.13) — registered but NO TASK ASSIGNMENT (Gitea 1.27.0 bug) +- **K8s Runner (gitea NS):** gitea-runner deployment (DinD sidecar + act_runner v0.2.13) — RUNNING, declare erfolgreich (Sep 2026). Vorher 4 Tage Init-crash wegen CSI RBAC Issue (siehe unten). +- **K8s Runner (schoenkitchen NS):** gitea-runner StatefulSet (gleiche Architektur) — RUNNING, declare erfolgreich (Sep 2026). - **KNOWN BUG (Gitea 1.27.0):** `actions_ready_job` queue doesn't create `action_task` records for K8s-based runners via gRPC Declare. Only runner 73 (external, pre-registered) receives tasks. Fix: upgrade Gitea to 1.27.1+ or 1.28.x. +- **WARNUNG (Sep 2026):** `DEFAULT_ACTIONS_URL = https://gitea.com` ist deprecated in Gitea 1.27.0 — fallback zu `github`. Helm Values setzen nur `ENABLED: true`; der Wert kommt vom Chart-Default. Zu fixen via Helm values override: `DEFAULT_ACTIONS_URL: self`. - **No runner management API** in Gitea 1.27.0 (`/api/v1/admin/runners` → 404). Manage via DB: `gitea.action_runner` table, `is_disabled` column, `deleted` for soft-delete. - Workflow: `.gitea/workflows/rebuild-infrastructure.yml` - Achtung: `actions/checkout@v4` versucht github.com zu erreichen — muss gemapped werden @@ -51,6 +54,19 @@ modified: "2026-07-26" - **Verwendung:** `GIT_SSH_COMMAND="ssh -i ~/.ssh/id_ed25519_gitea-hermes-push -o StrictHostKeyChecking=no" git push ssh://git@10.0.30.202:22/dominik/iac-homelab.git HEAD:main` - **Wichtig:** Gitea HTTP (Port 3000) hat keine externe IngressRoute — SSH (Port 22 via LoadBalancer) ist der einzige zuverlässige Weg für Git-Pushes von außerhalb K8s. +## Known ArgoCD Issues (Sep 2026) +- **`gitea` app:** Sync=Succeeded, Health=Progressing — Ingress hat keine LoadBalancer IP (Traefik reporting gap). Kosmetisch, Funktionalität OK. +- **`gitea-config` app:** OutOfSync — `Deployment gitea-runner` driftet (manuelle Änderung am Image?). Sync würde helfen. +- **`immich` + `immich-config` apps:** OutOfSync — zwei Apps zeigen auf überlappende Pfade (`rendered` vs roh) im iac-homelab Repo. Architektur-Issue, kein Gitea-Problem. +- **`authelia` app:** Health=Progressing — gleiche Ingress-LB-IP Thematik wie gitea. + +## Incident 2026-09-27: CSI RBAC → Gitea Pod Init-Crash +- **Symptom:** Gitea Pod 4+ Tage in `Init:0/3`, schoenkitchen runner in `PodInitializing`. +- **Root Cause:** Ceph CSI RBD provisioner `csi-attacher` hatte keine Berechtigung, `csinodes` zu lesen → VolumeAttachment blieb pending → PVC konnte nicht mounten. +- **Fix:** RBAC ClusterRole `ceph-rbd-external-attacher-runner` um `storage.k8s.io/csinodes` Resource ergänzt, provisioner Pods neu gestartet. +- Nach Fix: Alle 24 VolumeAttachments `true`, Gitea Pod Running nach Pod-Delete. +- **Lesson:** Bei CSI-basierten PVs immer zuerst VolumeAttachment Status prüfen, nicht nur PVC Phase. + ## Related - [[systems/rke2-kubernetes]] - [[concepts/gitops-workflow]]