Comment utiliser le nouveau référentiel Helm Chart de GitLab –
GitLab 14.1 a ajouté les graphiques Helm à la liste croissante du logiciel des formats de référentiel de packages pris en charge. Vous pouvez désormais stocker et partager vos graphiques à l’aide de vos projets GitLab, sans registre Helm séparé.
Les graphiques Helm sont une collection de manifestes Kubernetes YAML distribués sous forme de package unique. Ils accélèrent et facilitent le déploiement d’applications complexes dans votre cluster. L’utilisation de GitLab comme registre permet à votre équipe de stocker des graphiques avec votre code dans un référentiel géré par l’organisation.
Sommaire
Utilisation du référentiel Helm GitLab
Assurez-vous que votre instance GitLab a été mise à jour vers la version 14.1. Si vous utilisez le déploiement hébergé GitLab.com, vous aurez déjà tout ce dont vous avez besoin.
Préparez une charte Helm simple à envoyer vers votre référentiel. En cours helm create example
produira un nouveau graphique passe-partout appelé example
si vous n’en avez pas de disponible. Le graphique généré sera prêt à être transmis directement à GitLab, sans aucune modification.
Basculez vers votre instance GitLab. Créez un nouveau projet ou trouvez-en un existant. À l’aide de la barre latérale gauche, accédez à Packages & Registres > Package Registry dans votre projet. Si vous ne voyez pas ces menus, accédez à Paramètres> Général, développez l’en-tête « Visibilité, fonctionnalités du projet, autorisations » et activez la bascule « Packages ».
Ajout du référentiel à Helm
Vous êtes maintenant prêt à commencer à utiliser votre référentiel de packages. Vous devez l’enregistrer avec votre client Helm pour commencer.
helm repo add --username <username> --password <token> example-repo https://gitlab.example.com/api/v4/projects/<project>/packages/helm/stable
Le dépôt local sera nommé example-repo
. Remplacer <username>
avec votre nom d’utilisateur GitLab. La valeur de <token>
devrait être un jeton d’accès personnel autorisé à envoyer des packages.
Vous pouvez générer un nouveau jeton en cliquant sur l’icône de votre profil en haut à droite de l’interface de GitLab. Sélectionnez « Préférences » dans le menu, puis « Jetons d’accès » dans la barre latérale gauche. Ajoutez un nouveau jeton d’accès avec le api
portée. Le write_repository
la portée peut sembler correcte mais ne fonctionnera pas réellement ; il ne facilite que l’accès à l’aide de Git sur HTTP, alors que Helm nécessite l’intégration d’API.
Remplacez le <project>
dans l’URL de votre référentiel avec l’ID du projet GitLab vers lequel vous souhaitez pousser. Vous pouvez le trouver sur sa page d’accueil, sous son nom.
Pousser vers le référentiel
Une fois le référentiel ajouté, vous pouvez pousser n’importe quel répertoire avec un graphique Helm valide jusqu’à votre instance GitLab. Il est généralement plus simple d’installer le helm-push
plugin qui ajoute un natif helm push
commander.
Emballez votre graphique si vous ne l’avez pas déjà :
helm package example-chart
Cela créera une archive tar gzippée, example-chart.tgz
, contenant votre graphique.
Ajouter le helm-push
brancher:
helm plugin install https://github.com/chartmuseum/helm-push.git
Enfin, utilisez le plugin pour pousser votre graphique vers votre référentiel GitLab :
helm push example-chart.tgz example-repo
De retour dans l’interface Web GitLab, accédez à l’écran Packages & Registries > Package Registry de votre projet. Vous devriez voir votre graphique s’afficher.
Cliquez sur le nom du graphique pour afficher ses détails. Cet écran vous permet de suivre l’historique du graphique, de télécharger des fichiers de package et d’afficher les anciennes versions. Vous pouvez supprimer le graphique avec le bouton « Supprimer » situé en haut à droite.
Utilisation de graphiques dans le référentiel
Avec le graphique dans votre référentiel, vous pouvez le déployer dans votre cluster Kubernetes. helm install
les commandes devraient fonctionner immédiatement :
# load the contents of repositories helm repo update # install the chart helm install example-repo/example-chart
Cela démarrera un nouveau déploiement de graphique dans votre cluster actif. Utilisez le --kubeconfig
et --namespace
Helm signale si nécessaire de sélectionner un fichier de configuration Kubernetes approprié et de spécifier l’espace de noms dans lequel déployer.
Accéder au référentiel de GitLab dans un pipeline CI
Comme pour ses autres formats de package, le référentiel Helm de GitLab bénéficie d’une intégration intégrée avec le système CI/CD du logiciel. Vos pipelines recevront des variables d’environnement prédéfinies qui simplifient le processus de publication des graphiques. Vous n’avez pas besoin de définir de variables CI personnalisées pour configurer l’authentification.
Voici un exemple de pipeline qui crée un graphique et le publie dans votre référentiel :
stages: - helm-publish helm-publish: stage: helm-publish image: name: alpine/helm:latest entrypoint: [""] script: - helm repo add --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD my-repo $CI_REGISTRY - helm package my-chart - helm push my-chart.tgz my-repo
Le $CI_REGISTRY
Les variables sont configurées pour vous permettre de pousser de nouveaux packages dans le registre. Vous pouvez les réutiliser lors de l’authentification dans les autres référentiels de GitLab, tels que npm, Composer, NuGet et Maven.
Résumé
GitLab dispose désormais d’un référentiel de chartes Helm intégré qui vous permet de stocker vos manifestes Kubernetes avec votre code. Toute personne disposant d’un accès en lecture au référentiel du projet pourra l’ajouter à son client Helm et déployer des graphiques dans des clusters Kubernetes.
Lorsqu’une nouvelle version de graphique est publiée, exécutez helm repo update
puis utiliser helm upgrade
pour déplacer les installations déployées vers la nouvelle version. Vous pouvez gérer les versions des graphiques depuis GitLab et supprimer les anciennes versions qui gaspillent de l’espace disque.