--- title: Gitea (Git Server + CI) category: systems tags: [gitea, git, ci, actions] created: "2026-07-24" modified: "2026-07-24" --- # 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) - **SSH:** 10.0.30.202:22 (Cilium LoadBalancer, gitea-ssh service) - **Version:** 1.27.0 (K8s Helm chart v12.7.0) - **Privat:** NIEMALS öffentlich machen (enthält Secrets) - **CT108 (alte Gitea, 10.0.30.105): DECOMMISSIONED** — gestoppt am 2026-07-24 ## 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-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`) ## 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) - **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. - **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 - **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) ## Related - [[systems/rke2-kubernetes]] - [[concepts/gitops-workflow]]