Wenn du ein privates Git-Repository auf deinem Kubernetes-Cluster benötigst, zeigt diese Anleitung, wie du eines einrichtest.

Wir werden Gitea als Repository-Server verwenden. Es bietet ein gut gepflegtes Helm-Chart, das die Installation vereinfacht.

Falls noch nicht geschehen, installiere zuerst Helm.

Helm-Installation

Es gibt mehrere Wege, Helm zu installieren.

Auf macOS kannst du das Installationsskript verwenden:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
cat get_helm.sh

Oder mit Homebrew installieren (schneller):

brew install helm

Gitea-Installation

Füge zuerst das Chart-Repository hinzu:

helm repo add gitea-charts https://dl.gitea.io/charts/

Wenn du keine Standardwerte überschreiben musst, installiere Gitea mit:

helm install gitea gitea-charts/gitea

Standardmäßig ist Gitea als headless konfiguriert. Ich brauchte stattdessen eine interne ClusterIP, also habe ich gitea-values.yaml erstellt:

service:
 http:
 type: ClusterIP
 port: 3000
 clusterIP:
 ssh:
 type: ClusterIP
 port: 22
 clusterIP:

Installiere mit der benutzerdefinierten Values-Datei:

helm install --values gitea-values.yaml gitea gitea-charts/gitea

Die Ausgabe sollte ungefähr so aussehen:

NAME: gitea
LAST DEPLOYED: Thu Feb 18 21:30:29 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
1. Get the application URL by running these commands:
 echo "Visit http://127.0.0.1:3000 to use your application"
 kubectl --namespace default port-forward svc/gitea-http 3000:3000

Sie liefern sogar den Befehl, um den Port des Pods auf deine lokale Maschine weiterzuleiten:

kubectl --namespace default port-forward svc/gitea-http 3000:3000

Gitea läuft jetzt und kann in deinem Browser unter localhost:3000 aufgerufen werden.

Das Passwort des initialen Admin-Benutzers (gitea_admin) befindet sich in der values.yaml des Charts: r8sA8CPHD9!bt6d

Ein erstes Projekt hinzufügen

Erstelle ein neues Repository, indem du den ”+“-Button drückst und “New Repository” auswählst.

Fülle die erforderlichen Felder aus, z.B. wähle den Eigentümer und gib einen Repository-Namen an.

Wenn bereit, drücke “Create Repository”.

Das Repository ist erstellt und Dateien können hinzugefügt werden. Ein Klick auf den Repository-Namen zeigt die Schritte zum Hinzufügen von Dateien zum neuen Repository.

Ich habe lokal ein neues Projekt erstellt:

$ mkdir my-java-project
$ cd my-java-project/
$ touch README.md

Initialisiere das lokale Repository:

$ git init
Initialized empty Git repository in /Users/username/my-java-project/.git/

Füge die Dateien hinzu und committe sie:

$ git add README.md
$ git commit -m "first commit"
[master (root-commit) 1689222] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

Pushe nun das lokale Repository zum entfernten privaten Repository:

$ git remote add origin http://127.0.0.1:3000/gitea_admin/my-java-project.git

$ git push -u origin master

Username for 'http://127.0.0.1:3000': gitea_admin
Password for 'http://gitea_admin@127.0.0.1:3000':
Counting objects: 3, done.
Writing objects: 100% (3/3), 220 bytes | 220.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:. Processing 1 references
remote: Processed 1 references in total
To http://127.0.0.1:3000/gitea_admin/my-java-project.git
 * [new branch]  master -> master
Branch master set up to track remote branch master from origin.

Et voila - alles hat funktioniert!

Ressourcen

  • Gitea: Git with a cup of tea
  • Installation with Helm (on Kubernetes)
  • Gitea Helm Chart
  • Installing Helm