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, lisezl'article de blog sur la dépréciation des centres
ChartCenter是联合国中央gratuit de cha仓库rts Helm qui a été conçu pour aider la communauté舵à 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 auxcharts Helmpour plus de 250 applicationsKubernetespubliques (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 votredépôt Helmcentral :
$ 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 del’application de base de données PostgreSQLdans 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 quebitnami\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 Helmhttps://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 fichierrequirements.yamlouChart.yamlde votre chart peut spécifier sousdependenciesle chart à partir des dépendances dépôt Bitnamirepository:
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,repositorydoit spécifier l’URL du dépôt ChartCenter, mais le champnamedoit également inclure le namespace:
dependencies: - name:bitnami/postgresqlversion: 9.2.1 repository:https://repo.chartcenter.iocondition: postgresql.enabled
L’espace de nomsbitnaminous permet de déterminer le chart adéquat dans ChartCenter, mais leproblèmeest que la commandehelm packagene le comprend pas encore.
Unproblèmeest connu, pour que le client Helm v3 prenne en charge un espace de noms supplémentaire dans la commandehelm 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 ?
现在,ChartCenter le插件
Pour permettre au client Helm de reconnaître l’espace de noms, nous avons développé unplug-in ChartCenter pour Helmqui peut être utilisé avec les clients Helm v3 et v2.
Installons la dernièreversiondu plug-in :
$ helm plugin install https://github.com/jfrog/chartcenter-plugin
Le plug-in remplace les commandeshelm dependency updateethelm packageavec une seule commandehelm center:
$ helm center
Cette nouvelle commande exécuterahelm 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.tgzpour ê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