6.5 KiB
Chart Helm pour Gitea
Ce dépôt contient un Chart Helm pour déployer Gitea, un service Git auto-hébergé simple et léger, sur un cluster Kubernetes.
Description
Gitea offre une solution similaire à GitHub, GitLab ou Bitbucket, mais avec des besoins en ressources beaucoup plus faibles. Ce chart Helm facilite son déploiement et sa configuration dans un environnement Kubernetes.
Note: Il s'agit d'un chart communautaire / personnel et non du chart officiel maintenu par l'équipe Gitea (s'il en existe un que vous n'utilisez pas).
Prérequis
- Cluster Kubernetes (v1.19+ recommandé)
- Helm v3.0+ installé et configuré
kubectl
configuré pour interagir avec votre cluster- Un provisionneur de volumes persistants (StorageClass) si vous souhaitez activer la persistance des données (fortement recommandé).
Installation du Chart
-
Ajouter le dépôt Helm (si vous en hébergez un) : Remplacez
<nom-du-repo>
par le nom que vous voulez donner à votre dépôt localement et<url-du-repo>
par l'URL où votre chart est hébergé (par exemple, une page GitHub Pages).helm repo add <nom-du-repo> <url-du-repo> helm repo update
Si vous utilisez le chart directement depuis ce dépôt Git cloné, vous pouvez sauter cette étape.
-
Installer le Chart : Remplacez
<nom-release>
par le nom que vous souhaitez donner à cette instance de Gitea (par exemplemy-gitea
).-
Depuis le dépôt Git local : Naviguez jusqu'au répertoire où se trouve ce README.md.
# Installation simple dans le namespace 'default' helm install <nom-release> . # Installation dans un namespace spécifique (recommandé) helm install <nom-release> . --namespace gitea --create-namespace # Installation avec des valeurs personnalisées helm install <nom-release> . -f mes-valeurs.yaml --namespace gitea --create-namespace
-
Après l'installation, Gitea devrait être accessible via le Service Kubernetes créé (ClusterIP, NodePort, ou LoadBalancer) ou via l'Ingress si configuré. Utilisez kubectl get svc,ing -n <namespace>
pour vérifier.
Configuration
Les paramètres de configuration principaux sont disponibles dans le fichier values.yaml
. Vous pouvez les surcharger en utilisant l'option -f
lors de l'installation ou --set
pour des valeurs spécifiques.
Voici quelques paramètres clés :
Paramètre | Description | Défaut |
---|---|---|
image.repository |
Image Docker Gitea à utiliser | gitea/gitea |
image.tag |
Tag de l'image Gitea | <dernière_version> |
service.type |
Type de service Kubernetes (ClusterIP, NodePort, LoadBalancer) | ClusterIP |
service.port |
Port HTTP du service | 3000 |
ingress.enabled |
Activer/désactiver la création d'une ressource Ingress | true |
ingress.className |
Classe Ingress à utiliser (si nécessaire, ex: nginx , traefik ) |
"" |
ingress.hosts[0].host |
Nom d'hôte pour l'accès via Ingress (ex: gitea.mondomaine.com ) |
chart-example.local |
ingress.hosts[0].paths[0].path |
Chemin pour l'Ingress | / |
ingress.tls |
Configuration TLS pour l'Ingress (voir values.yaml pour la structure) |
[] |
persistence.enabled |
Activer/désactiver la persistance des données Gitea | true |
persistence.storageClass |
StorageClass à utiliser pour le PVC (si "-" , utilise la classe par défaut) |
"-" |
persistence.size |
Taille du volume persistant (ex: 10Gi ) |
10Gi |
gitea.admin.username |
Nom d'utilisateur de l'administrateur initial Gitea | gitea_admin |
gitea.admin.password |
Mot de passe de l'administrateur initial Gitea ( IMPORTANT: à changer!) | <mot_de_passe_aléatoire> |
gitea.config |
Permet de surcharger des clés de configuration app.ini de Gitea |
{} |
database.type |
Type de base de données (sqlite3 , postgres , mysql ) |
postgresql |
database.host |
Hôte de la base de données (si externe) | "" |
database.name |
Nom de la base de données (si externe) | gitea |
database.user |
Utilisateur de la base de données (si externe) | gitea |
database.password |
Mot de passe de la base de données (si externe, utiliser un secret !) | "" |
database.existingSecret |
Nom d'un secret Kubernetes existant contenant les identifiants DB | "" |
Note sur la base de données : Par défaut, le chart utilise PostgreSql avec les données stockées sur le volume persistant. Configurez les paramètres database.*
en conséquence et assurez-vous que Gitea puisse y accéder depuis le cluster.
Consultez le fichier values.yaml
pour voir toutes les options de configuration disponibles.
Mise à jour
Pour mettre à jour une release existante avec une nouvelle version du chart ou de nouvelles valeurs :
# Mettre à jour le dépôt (si utilisé)
helm repo update
# Mettre à jour la release
helm upgrade <nom-release> <nom-du-repo>/gitea --namespace <namespace> -f nouvelles-valeurs.yaml
# Ou depuis le dépôt local:
helm upgrade <nom-release> . --namespace <namespace> -f nouvelles-valeurs.yaml
PS : Pour l'instant je n'ai pas déposer ce chart sur un repo helm, peut-être un jour ;)