5.5 KiB
5.5 KiB
title, category, tags, created, modified
| title | category | tags | created | modified | ||||
|---|---|---|---|---|---|---|---|---|
| Gitea (Git Server + CI) | systems |
|
2026-07-24 | 2026-09-27 |
Gitea (Git Server + CI)
Instanz
- URL: git.schoen.codes (K8s Ingress, Traefik → gitea-http ClusterIP)
- 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)
- CT108 (alte Gitea, 10.0.30.105, v1.25.5): GESTOPPT am 2026-09-17 (genehmigt). War bis zum Abend NICHT gestoppt trotz älterer Wiki-Claims — Live-Checks (v1.25.5-API-Antwort) schlugen die Papierlage. Vor dem Stop: Full-Census (31 Repos auth, 23 gemeinsam — 22 Tips identisch, dominik/memory K8s-Superset), 29 Bare-Bundle-Archive (143 MB) unter
/home/debian/git-archive/ct108-final/. Letzter Live-Konsument war die Routegit.familie-schoen.comim CT99999-Traefik (Upstream .105:3000) — umgebogen auf .203 (K8s), Alias-Host im K8s-Ingress ergänzt (Commit 9e9b6ee). Seither servieren BEIDE Hostnamen v1.27.0.
Repositories
| Repo | Zweck | Clone |
|---|---|---|
| dominik/iac-homelab | IaC (Tofu + Ansible + K8s Manifeste) | /home/debian/iac-homelab auf Hermes host |
| dominik/hermes-skills | Skill Versionierung | ~/.hermes/skills/ |
| dominik/hermes-memories | MEMORY.md/USER.md Sync | ~/.hermes/memories/ |
| dominik/noris-compound-learning | Noris Learnings (shareable) | /home/debian/infra-compound-learning/ |
ArgoCD SSH Deploy Keys
- Ed25519 SSH-Key als Gitea Deploy Key (read-only)
- ArgoCD Secret
argocd-repo-k8s-giteamit SSH Private Key known_hostsConfigMap mit Gitea SSH Hostkey- 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 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_jobqueue doesn't createaction_taskrecords 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.comist deprecated in Gitea 1.27.0 — fallback zugithub. Helm Values setzen nurENABLED: 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_runnertable,is_disabledcolumn,deletedfor soft-delete. - Workflow:
.gitea/workflows/rebuild-infrastructure.yml - Achtung:
actions/checkout@v4versucht github.com zu erreichen — muss gemapped werden - DinD Pitfalls: docker:27-dind creates docker.sock as directory → use TCP mode (--host=tcp://, --tls=false). act_runner:0.2.13 has no docker CLI → use nc for port check. act_runner:0.2.13 doesn't auto-register → wrapper script needed.
- Solution Doc:
docs/solutions/bug-fixes/2026-07-24-gitea-actions-k8s-runner-task-assignment-bug.md
IaC Remotes
- iac-homelab hat EINEN remote:
origin= K8s Gitea (git.schoen.codes) - Alter CT108 remote wurde entfernt (CT108 decommissioned)
Hermes Agent SSH Push Key
- Key:
~/.ssh/id_ed25519_gitea-hermes-push(hermes-agent@gitea-push) - 1Password: "Gitea Hermes Push Key" (ID: lqaebdtewj5xatvpzfrkag73v4)
- Gitea Key ID: 4 (title: hermes-agent-push, user: dominik)
- 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)
giteaapp: Sync=Succeeded, Health=Progressing — Ingress hat keine LoadBalancer IP (Traefik reporting gap). Kosmetisch, Funktionalität OK.gitea-configapp: OutOfSync —Deployment gitea-runnerdriftet (manuelle Änderung am Image?). Sync würde helfen.immich+immich-configapps: OutOfSync — zwei Apps zeigen auf überlappende Pfade (renderedvs roh) im iac-homelab Repo. Architektur-Issue, kein Gitea-Problem.autheliaapp: 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 inPodInitializing. - Root Cause: Ceph CSI RBD provisioner
csi-attacherhatte keine Berechtigung,csinodeszu lesen → VolumeAttachment blieb pending → PVC konnte nicht mounten. - Fix: RBAC ClusterRole
ceph-rbd-external-attacher-runnerumstorage.k8s.io/csinodesResource 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
- Solution Doc:
docs/solutions/workflows/2026-07-26-gitea-ssh-access-for-hermes.md