58 lines
3.8 KiB
Markdown
58 lines
3.8 KiB
Markdown
---
|
|
title: Gitea (Git Server + CI)
|
|
category: systems
|
|
tags: [gitea, git, ci, actions]
|
|
created: "2026-07-24"
|
|
modified: "2026-07-26"
|
|
---
|
|
|
|
# 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.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 Route `git.familie-schoen.com` im 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-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)
|
|
|
|
## 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.
|
|
|
|
## Related
|
|
- [[systems/rke2-kubernetes]]
|
|
- [[concepts/gitops-workflow]]
|
|
- Solution Doc: `docs/solutions/workflows/2026-07-26-gitea-ssh-access-for-hermes.md`
|