Pour Les Dépendances Du Chart Helm, Dépend De ChartCenter

 

MISE À JOUR : depuis le 1er mai 2021, le dépôt central ChartCenter a été mis hors service et toutes les fonctionnalités sont obsolètes. Pour en savoir plus sur la mise hors service des centres, lisez l'article de blog sur la dépréciation des centres

 

ChartCenter est un dépôt central gratuit de charts Helm qui a été conçu pour aider la communauté Helm à trouver des charts immuables, sécurisés et fiables pour les applications Kubernetes accessibles au public. Avec ChartCenter, vous disposez d'une source unique de vérité pour relayer tous les charts publics à partir d'un seul emplacement, toujours disponible. 

Sans ChartCenter, vous devez ajouter le dépôt de chaque chart Helm au client Helm pour chaque application Kubernetes que vous souhaitez installer et mettre à jour. Lorsque vous ajoutez le dépôt ChartCenter à votre client Helm, vous disposez d’un accès immédiat aux charts Helm pour plus de 250 applications Kubernetes publiques (et d'autres à venir) relayées dans ChartCenter. Ainsi, au lieu d'utiliser plusieurs dépôts Helm publics, vous en utilisez un seul.

Lorsque vous créez vos propres charts Helm, vous pouvez également vous assurer que les charts publics que vous utilisez comme dépendances sont immuables et toujours disponibles en référençant leurs proxies dans ChartCenter. Cela permet d'éviter des surprises désagréables qui pourraient être causées ultérieurement par un push ou une suppression forcés dans le dépôt d'origine du chart. Lorsque vous passez par ChartCenter, vous savez toujours ce que vous obtenez, d'autant plus que ChartCenter dispose de métadonnées enrichies sur les dépendances, les statistiques et la sécurité.

Voyons comment référencer ChartCenter à partir de vos charts de dépendance et découvrons le petit plug-in pour Helm qui vous permet de le faire.

Utilisation de ChartCenter

Il est très facile de définir ChartCenter comme votre dépôt Helm central :

$ helm repo add center https://repo.chartcenter.io
$ helm repo update


Désormais, votre client Helm peut accéder à l'un des plus de 30 000 charts Helm versionnés disponibles dans ChartCenter, et de nombreux charts d'applications populaires sont présentés sur la page d'accueil de ChartCenter, pour vous permettre de les localiser facilement.

Mais ChartCenter peut contenir plusieurs ensembles différents de charts Helm pour la même application Kubernetes provenant de dépôts alternatifs qui peuvent contenir des charts pour des éditions spécialisées, dupliquées ou obsolètes.

Par exemple, la recherche de l’application de base de données PostgreSQL dans ChartCenter permet de trouver plusieurs correspondances :

Dans ChartCenter, un espace de noms identifie le dépôt Helm dans lequel les versions du chart Helm ont été trouvées, et vous devez référencer le chart Helm de ChartCenter avec cet espace de noms. Par exemple, référencez le chart Helm Bitnami officiel pour PostgreSQL en tant que bitnami\postgresql.

Pour installer PostgreSQL à partir de la ligne de commande Helm :

$ helm install postgresql center/bitnami/postgresql

Utilisation de ChartCenter pour les Charts de Dépendances

Dans l’exemple ci-dessus, nous avons installé  bitnami/postgresql à partir du dépôt Helm https://repo.chartcenter.io, et cela fonctionne très bien.

Mais au lieu d'installer PostgreSQL via la ligne de commande du client Helm, nous voudrions l'installer en tant que dépendance dans un chart Helm créé par nous-mêmes. 

Pour inclure Bitnami PostgreSQL dans votre chart Helm,  le fichier requirements.yaml ou Chart.yaml de votre chart peut spécifier sous dependencies le chart à partir des dépendances dépôt Bitnami repository:

dependencies :
  - name: postgresql
    version: 9.2.1
    repository: https://charts.bitnami.com/bitnami
    condition: postgresql.enabled


Mais nous voulons utiliser le proxy immuable du chart Bitnami dans ChartCenter. Dans ce cas, repository doit spécifier l’URL du dépôt ChartCenter, mais le champ name doit également inclure le namespace:

dependencies:
 - name: bitnami/postgresql
   version: 9.2.1
   repository: https://repo.chartcenter.io
   condition: postgresql.enabled


L’espace de noms bitnami nous permet de déterminer le chart adéquat dans ChartCenter, mais le
problème est que la commande helm package ne le comprend pas encore.

Un problème est connu, pour que le client Helm v3 prenne en charge un espace de noms supplémentaire dans la commande helm package , qui pourrait prendre un certain temps à résoudre. Le client Helm v2 n’accepte aucune nouvelle fonctionnalité.

Alors, comment résoudre le problème en attendant ?

En Utilisant le Plug-in ChartCenter

Pour permettre au client Helm de reconnaître l’espace de noms, nous avons développé un plug-in ChartCenter pour Helm qui peut être utilisé avec les clients Helm v3 et v2.

Installons la dernière versiondu plug-in :

$ helm plugin install https://github.com/jfrog/chartcenter-plugin


Le plug-in remplace les commandes helm dependency update et helm package avec une seule commande helm center  :

$ helm center <CHART_NAME>


Cette nouvelle commande exécutera helm dependency update, en extrayant le(s) sous-chart(s) du dépôt Helm de ChartCenter Helm, puis en créant un paquet avec le chart principal et un/des sous-chart(s) dans le fichier .tgz pour être prêt à être téléchargé vers n’importe quel dépôt Helm.

Et voilà une façon simple et agréable d'utiliser le plug-in ChartCenter comme un outil pour créer des paquets de charts de dépendances à partir du dépôt Helm de ChartCenter.

Bon travail avec les charts dans ChartCenter