Verlassen Sie sich für Helm-Diagramm-Abhängigkeiten auf ChartCenter

 

UPDATE: 1. Mai 2021 – Das zentrale Repository ChartCenter einschließlich aller Funktionen wurde eingestellt. Weitere Informationen zur Einstellung der Center finden Sie im Blog-Post zu veralteten Centern

 

ChartCenter ist ein kostenloses zentrales Helm-Diagramm-Repository, das entwickelt wurde, um der Helm-Community zu helfen, unveränderliche, sichere und zuverlässige Diagramme für öffentlich verfügbare Kubernetes-Apps zu finden. Mit ChartCenter haben Sie eine einzige zuverlässige Quelle, um alle öffentlichen Diagramme von einem einzigen, immer verfügbaren Ort aus abzubilden.

Ohne ChartCenter müssen Sie das Repository jedes Helm-Diagramms zum Helm-Client für jede Kubernetes-App hinzufügen, die Sie installieren und aktualisieren möchten. Wenn Sie das ChartCenter-Repository zu Ihrem Helm-Client hinzufügen, haben Sie sofortigen Zugriff auf die Helm-Diagramme für über 250 öffentliche Kubernetes-Anwendungen (und es werden immer mehr), die in ChartCenter abgebildet sind. Verwenden Sie also statt vieler öffentlicher Helm-Repositories nur eines.

Wenn Sie Ihre eigenen Helm-Diagramme erstellen, können Sie auch sicherstellen, dass die öffentlichen Diagramme, die Sie als Abhängigkeiten verwenden, unveränderlich und immer verfügbar sind, indem Sie auf ihre Proxies in ChartCenter verweisen. Dadurch werden unangenehme Überraschungen vermieden, die später durch einen Force-Push oder eine Löschung im ursprünglichen Repository des Diagramms verursacht werden könnten. Wenn Sie das ChartCenter durchgehen, wissen Sie immer, was Sie bekommen – erst recht mit den umfangreichen Metadaten von ChartCenter zu Abhängigkeiten, Statistiken und Sicherheit.

Schauen wir uns an, wie Sie ChartCenter aus Ihren Abhängigkeitsdiagrammen referenzieren können, und werfen wir einen Blick auf das kleine Plug-in für Helm, das Ihnen dies ermöglicht.

ChartCenter verwenden

Es ist sehr einfach, ChartCenter als Ihr zentrales Helm-Repository einzurichten:

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


Jetzt kann Ihr Helm-Client auf jedes der über 30.000 versionierten Helm-Diagramme zugreifen, die in ChartCenter verfügbar sind. Außerdem werden viele beliebte App-Diagramme auf der ChartCenter-Startseite angezeigt, so dass Sie sie bequem finden können.

Allerdings können sich in ChartCenter mehrere verschiedene Sätze von Helm-Diagrammen für dieselbe Kubernetes-App aus alternativen Repos befinden, die möglicherweise Diagramme für spezielle, doppelte oder veraltete Editionen enthalten.

So zum Beispiel ergibt die Suche nach der PostgreSQL-Datenbankanwendung in ChartCenter mehrere Treffer:

In ChartCenter identifiziert ein Namespace das Helm-Repository, in dem die Helm-Diagrammversionen gefunden wurden, und Sie müssen das ChartCenter-Helm-Diagramm über diesen Namespace referenzieren. Referenzieren Sie zum Beispiel das offizielle Bitnami Helm-Diagramm für PostgreSQL als bitnami\postgresql.

So installieren Sie PostgreSQL über die Helm-Befehlszeile:

$ helm install postgresql center/bitnami/postgresql

ChartCenter für Abhängigkeitsdiagramme verwenden

Im obigen Beispiel haben wir  bitnami/postgresql aus dem Helm-Repository https://repo.chartcenter.ioinstalliert und es funktioniert einwandfrei.

Aber anstatt PostgreSQL über die Befehlszeile des Helm-Clients zu installieren, möchten wir es als Abhängigkeit in einem von uns selbst erstellten Helm-Diagramm installieren.

Um Bitnami PostgreSQL in Ihr Helm-Diagramm einzubeziehen, kann die Datei requirements.yaml oder Chart.yaml Ihres Diagramms unter dependencies das Diagramm aus dem Bitnami- Repository spezifizieren:

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


Wir wollen jedoch den unveränderlichen Proxy des Bitnami-Diagramms in ChartCenter verwenden. In diesem Fall spezifiziert repository die URL für das ChartCenter-Repository, allerdings muss der name des Diagramms auch den Namespace enthalten:

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


Der bitnami -Namespace ermöglicht es uns, das richtige Diagramm in ChartCenter zu adressieren, aber das
Problem ist, dass der helm package -Befehl es noch nicht versteht.

Es ist ein Fall in Bezug auf ein Problem für den Helm v3-Client eröffnet worden, um einen zusätzlichen Namespace im helm package -Befehl zu unterstützen, aber die Lösung könnte eine Weile dauern. Der Helm v2-Client akzeptiert keine neuen Funktionen.

Wie können wir also in der Zwischenzeit das Problem lösen?

ChartCenter-Plug-in verwenden

Damit der Helm-Client den Namespace erkennen kann, haben wir ein ChartCenter-Plug-in für Helm entwickelt, das entweder mit dem Helm v3- oder v2-Client verwendet werden kann.

Lassen Sie uns die neueste Plug-in-Version installieren:

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


Das Plug-in ersetzt die helm dependency update – und helm package -Befehle durch nur einen helm center -Befehl:

$ helm center <CHART_NAME>


Dieser neue Befehl führt helm dependency update aus, indem das/die Unterdiagramm(e) aus dem ChartCenter Helm-Repository gezogen und dann das Hauptdiagramm mit dem/den Unterdiagramm(en) in die .tgz -Datei gepackt wird, um in jedes Helm-Repository hochgeladen werden zu können.

Klasse, eine nette und einfache Möglichkeit, das ChartCenter-Plug-in als Tool zum Packen von Abhängigkeitsdiagrammen aus dem ChartCenter-Helm-Repository zu verwenden.

Viel Spaß bei der Diagrammerstellung mit ChartCenter