summaryrefslogtreecommitdiff
path: root/f3s/argocd-apps
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-01-09 11:06:02 +0200
committerPaul Buetow <paul@buetow.org>2026-01-09 19:40:51 +0200
commitec8bd651d57deab371021c27b88f6698376f8e78 (patch)
tree3a60df2bd9c653e7bfdaaab67b5bf52230beda1e /f3s/argocd-apps
parent7ab1222310c23c5f1305c48c199ce432c2fd0848 (diff)
Add self-hosted git server with SSH and cgit web UI
Deploy a self-hosted git repository solution to replace external Codeberg dependency. Components: - SSH git server: Alpine-based container with OpenSSH and git - cgit web UI: Browse repositories at cgit.f3s.buetow.org - Single pod design: git-server + cgit containers sharing storage Infrastructure: - Docker image in git-server/docker-image/ with Justfile build automation - Helm chart in git-server/helm-chart/ for Kubernetes deployment - 5Gi ReadWriteMany PVC for NFS-backed repository storage - ClusterIP service for ArgoCD internal access - NodePort 30022 for external SSH push access - Traefik ingress for cgit web UI ArgoCD Application manifest deployed to cicd namespace. Note: SSH keys must be created as Kubernetes secrets manually, not in git. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Diffstat (limited to 'f3s/argocd-apps')
-rw-r--r--f3s/argocd-apps/cicd/git-server.yaml28
1 files changed, 28 insertions, 0 deletions
diff --git a/f3s/argocd-apps/cicd/git-server.yaml b/f3s/argocd-apps/cicd/git-server.yaml
new file mode 100644
index 0000000..be96b7f
--- /dev/null
+++ b/f3s/argocd-apps/cicd/git-server.yaml
@@ -0,0 +1,28 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: git-server
+ namespace: cicd
+ finalizers:
+ - resources-finalizer.argocd.argoproj.io
+spec:
+ project: default
+ source:
+ repoURL: https://codeberg.org/snonux/conf.git
+ targetRevision: master
+ path: f3s/git-server/helm-chart
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: cicd
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=false
+ retry:
+ limit: 3
+ backoff:
+ duration: 5s
+ factor: 2
+ maxDuration: 1m