Chart Helm
Description
Ce template ajoute :
- une variable
WITH_CHART_JOBS
: (valeur par défaut: true) Indique si on veut importer également les jobs ou uniquement la fonction.deploy-chart
- une fonction
.deploy-chart
: package le chart puis le dépose dans le registre - un job
deploy:chart
: appelle la fonction .deploy-chart (pour le cas où le répertoire contenant le chart s'appelle bien chart)
Pré-requis
Ce template utilise 2 variables d'environnement :
- CHART_USER: le nom de l'utilisateur ayant l'autorisation de déposer un chart
- CHART_USER_PWD: le mot de passe associé (ou token)
Il est conseillé d'utiliser un "deploy token" gitlab pour cet utilisateur déclaré au niveau de votre groupe
Utilisation
Directe
Ajouter le code suivant dans votre fichier .gitlab-ci.yml
include:
- project: geoplateforme/templates
ref: main
file:
- '/ci/chart.yml'
Uniquement la fonction .deploy-chart
Pour ne pas utiliser les jobs mais uniquement la fonction, ajouter la variable globale :
variables:
WITH_CHART_JOBS: "false"
Pour créer son propre job à partir de la fonction :
monjob:
extends: .deploy-chart
variables:
CHART_DIR: # nom du répertoire contenant le chart à packager
...
Exploitation
Les charts sont poussés dans la Package Registry
de votre projet. Pour y intégrer cette Package Registry
comme un dépôt helm
, c'est à dire pouvoir utiliser votre chart
comme dépendance dans un autre chart
, il faut :
-
ajouter ce nouveau dépôt :
bash helm repo add --username 'CHART_USER' --password 'CHART_USER_PWD' REPO_NAME https://gitlab.gpf-tech.ign.fr/api/v4/projects/PROJECT_ID/packages/helm/stable
la valeur de PROJECT_ID votre projet GitLab peut être trouvée dans la page d'accueil sous le nom du projet ou dans la catégorieGénéral
desSettings
. La valeur de REPO_NAME est arbitaire. -
ajouter comme dépendance dans votre nouveau
chart
, ajouter dans la sectiondependencies
deChart.yaml
: ```yaml dependencies:- name: MON_SUPER_CHART version: "0.1.0" repository: "@REPO_NAME" ```
-
mise à jour des dépendances :
helm dependency update