2025-04-09 17:54:32 +02:00

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

  1. 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.

  2. Installer le Chart : Remplacez <nom-release> par le nom que vous souhaitez donner à cette instance de Gitea (par exemple my-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 ;)