Helm-Artefakt bereitstellen

Helm ist ein quelloffener Packagemanager für Kubernetes zum Teilen, Verpacken und Deployment der Software für Kubernetes. Der Oracle Cloud Infrastructure (OCI) DevOps-Service unterstützt das Deployment von Helm-Charts in einem Kubernetes-Engine-(OKE-)Cluster. Sie können auch Helm-Befehle ausführen, die als Inlineartefakt angegeben und der Helm-Phase zum Deployment hinzugefügt wurden.

Das Helm-Diagramm-Deployment erfolgt nur, wenn das Helm-Diagramm zum ersten Mal bereitgestellt wird oder wenn Updates in den Artefakt- oder Helm-Phasenparametern ermittelt werden. Dies wird vor der Ausführung des Deployments automatisch validiert. Um das Helm-Diagramm jedoch unabhängig von den Aktualisierungen am Artefakt oder einem anderen Helm-Phasenparameter bereitzustellen, müssen Sie den Parameter ENFORCE_HELM_DEPLOYMENT während der Deployment-Ausführung auf true setzen. Dieser Parameter funktioniert sowohl auf Phasen- als auch auf Pipelineebene. Wenn der Parameter für eine bestimmte Phase festgelegt ist, gilt er nur für diese Phase. Wenn der Parameter für eine Pipeline oder ein Deployment-Argument festgelegt ist, gilt er für alle Phasen in der Pipeline. Wenn der Parameter jedoch für das Pipeline- oder Deployment-Argument und das Staging-Override-Argument festgelegt ist, hat der Pipelineparameter oder das Deployment-Argument Vorrang vor dem Staging-Override-Argument. Der Parameter gilt für alle Phasen in der Pipeline.

Für eine bestimmte Helm-Deployment-Phase haben Sie die Möglichkeit, OCI_DEVOPS_DEPLOY_USE_CREATE_NAMESPACE_FLAG als Phasenparameter-Override zu verwenden. Der Parameter kann auf true oder false gesetzt werden, um das Flag --create-namespace zu steuern, wenn Sie den Befehl helm upgrade für das Deployment von Helm-Diagrammen verwenden. Dieser Parameter arbeitet auf Phasenebene und bietet eine verbesserte Granularität in den Deployment-Konfigurationen. Weitere Informationen finden Sie unter Parameter konfigurieren.

Bevor Sie beginnen, benötigen Sie eine Deployment-Pipeline und erstellen ein Kubernetes-Engine-Cluster. Sie können das Deployment sowohl in öffentlichen als auch in privaten OKE-Clustern ausführen.

Informationen zum Erstellen dynamischer Gruppen und Policys für Deployment-Pipelines finden Sie unter Deployment-Pipeline-Policys. Weitere Informationen finden Sie unter DevOps-IAM-Policys.

Die Helm-Charts müssen sich zum Deployment im OCI Container Registry-Repository befinden. Weitere Informationen finden Sie unter Helm-Charts hinzufügen. Für die Ausführung von Helm-Befehlen müssen Sie die Helm-Befehle als Inlineartefakt angeben. Siehe Helm-Befehlsspezifikation.

Helm-Charts enthalten Vorlagen mit Kubernetes-YAML-Manifestdateien und eine values.yaml-Datei zur Angabe der Standardvorlagenwerte. values.yaml ist eine generische Datei in OCI Artifact Registry. Sie müssen eine Referenz auf diese Datei erstellen. Weitere Informationen finden Sie unter Artifact Registry-Artefakt hinzufügen .

Hinweis

Das Deployment unterstützt keine Parametersubstitution im Helm-Diagramm-Tarball. Sie wird jedoch in der Datei values.yaml unterstützt.

Informationen zum Zugriff auf DevOps über die Oracle Cloud-Konsole, die REST-API und die CLI finden Sie unter Auf DevOps zugreifen.

    1. Öffnen Sie das Navigationsmenü, und klicken Sie auf Entwicklerservices. Klicken Sie unter DevOps auf Projekte.
    2. Wählen Sie ein Projekt und eine Deployment-Pipeline aus.
    3. Um der Pipeline eine Phase hinzuzufügen, klicken Sie auf das Plussymbol, und wählen Sie Phase hinzufügen aus.
    4. Wählen Sie als Staging-Typ Helm-Chart in Kubernetes-Cluster installieren oder Helm-Befehle in Kubernetes-Cluster ausführen aus, und klicken Sie auf Weiter.
    5. Geben Sie einen Namen und eine Beschreibung für die Phase ein. Das Hinzufügen einer Beschreibung ist optional.
    6. Wählen Sie unter Umgebung eine vorhandene Clusterumgebung aus.
    7. Wählen Sie den Zweck zum Erstellen der Helm-Phase aus. Optionen sind:

      • Helm-Diagramm auf Kubernetes-Cluster installieren oder upgraden
      • Helm-Befehle auf Kubernetes-Cluster ausführen
    8. Wenn Sie die Option zum Ausführen von Helm-Befehlen auswählen, wählen Sie das Helm-Befehlsspezifikationsartefakt aus, und fügen Sie die Phase hinzu. Weitere Informationen finden Sie unter Helm Command Specification.
    9. Wenn Sie die Option zum Installieren oder Upgraden des Helm-Diagramms auswählen, geben Sie einen Releaseinamen ein. Beispiel: helm-release.

      Ein Release bezieht sich auf die ausgeführte Instanz des Helm-Diagramms mit einer bestimmten Konfiguration. Ein einzelnes Chart kann mehrmals in demselben Cluster installiert werden und verschiedene Releases erstellen. Der Release-Name kann parametrisiert werden. Beispiel: helm-release-${version}.

      Versionsnamen müssen dem RFC 1123-Standard entsprechen. Sie dürfen nur kleingeschriebene alphanumerische Zeichen enthalten, oder '-', muss mit einem alphanumerischen Zeichen beginnen und enden.

    10. Um das Helm-Release beim Löschen dieser Phase aus der Pipeline aus dem OKE-Cluster zu deinstallieren, aktivieren Sie das Kontrollkästchen Helm-Release beim Löschen der Phase deinstallieren.
    11. Klicken Sie auf Artefakt auswählen, um das Helm-Diagramm für das Deployment auszuwählen.
    12. (Optional) Klicken Sie auf Artefakt auswählen, um die Datei values.yaml mit den an das Helm-Diagramm übergebenen Werten auszuwählen. Die Datei enthält Standardparameter, die Sie überschreiben können.
    13. (Optional) Um den Standardumgebungs-Namespace außer Kraft zu setzen, geben Sie einen Wert für Override-Kubernetes-Namespace ein. Der Wert kann parametrisiert werden. Beispiel: helm-${namespace}.

      Namespace-Werte müssen dem RFC 1123-Standard entsprechen. Sie dürfen nur kleingeschriebene alphanumerische Zeichen enthalten, oder '-', muss mit einem alphanumerischen Zeichen beginnen und enden.

    14. (Optional) Geben Sie einen Timeoutwert für das Deployment in Sekunden ein.
    15. (Optional) Geben Sie Optionen für ein Helm-Upgrade an, um ein Upgrade der Helm-Chartversion durchzuführen oder die Konfiguration des Helm-Release zu ändern. Siehe Helm-Upgrade.

      Sie können Werte und Zeichenfolgenwerte für den Helm-Befehl während des Deployments des Helm-Charts festlegen.

      Geben Sie die maximale Anzahl von Upgrades pro Deployment an. Standardmäßig ist der Wert auf 10 gesetzt. Geben Sie null ein, wenn Sie keinen Grenzwert für die Upgrades festlegen möchten.

    16. Um bei nicht erfolgreicher Validierung automatisch zur letzten erfolgreichen Releaseversion zurückzukehren, wählen Sie Ja. Weitere Informationen finden Sie unter Deployment zurücksetzen.
    17. (Optional) Um der Pipeline Tags hinzuzufügen, klicken Sie auf Taggingoptionen anzeigen. Tagging ist ein Metadaten-System, mit dem Sie die Ressourcen im Mandanten organisieren und verfolgen können.

      Wenn Sie über Berechtigungen zum Erstellen von Ressourcen verfügen, sind Sie auch berechtigt, Freiformtags hinzuzufügen.

      Um ein definiertes Tag hinzuzufügen, benötigen Sie Berechtigungen zum Verwenden des Tag-Namespace.

      Weitere Informationen finden Sie unter Ressourcentags.

    18. Um der Pipeline die Phase hinzuzufügen, klicken Sie auf Hinzufügen.

      Wenn Sie das Kontrollkästchen zum Deinstallieren des Helm-Release beim Löschen der Phase aktiviert haben, klicken Sie im Dialogfeld Warnung zum Deinstallieren von Helm-Release auf Bestätigen. Wenn das Helm-Release deinstalliert wird, wird eine Arbeitsanforderung erstellt, um das Release zu deinstallieren. Der Status wird im Abschnitt "Deployment" auf der Seite Deployment-Pipelines verfolgt.

      Eine Phasenvorschau enthält einen Snapshot der Konfiguration.

    Fügen Sie der Pipeline bei Bedarf weitere Phasen sequenziell oder parallel hinzu. Um die Build-Ausgabe in der Zielumgebung bereitzustellen, führen Sie die Deployment-Pipeline aus.

    Während des Deployments können Sie das Deployment dieser Phase abbrechen, was zu einem Rollback auf den vorherigen Status führt. Wenn Sie das Deployment abbrechen, wenn ein Helm-Releaseupgrade ausgeführt wird, wird das Upgrade abgebrochen, und das Release wird auf den vorherigen Status zurückgesetzt.

    Um ein Deployment in der Build-Pipeline automatisch auszulösen, können Sie der Build-Pipeline eine Phase "Deployment auslösen" hinzufügen.

  • Um eine OKE-Helm-Phase für die Pipeline zu erstellen, führen Sie den Befehl create-OKE-helm-chart-stage aus:

    oci devops deploy-stage create-oke-helm-chart-stage

    Erforderliche Parameter:

    • --helm-chart-artifact-id
    • --oke-cluster-environment-id
    • --pipeline-id
    • --stage-predecessor-collection
    • --release-name

    Um der Helm-Phase das Feld "Zweck" hinzuzufügen, führen Sie den Befehl update-oke-helm-chart-stage aus:

    oci devops deploy-stage update-oke-helm-chart-stage --helm-command-artifact-ids --purpose

    Um die Helm-Phase zu deinstallieren, führen Sie den Befehl create-oke-helm-chart-stage aus:

    oci devops deploy-stage create-oke-helm-chart-stage --is-uninstall-on-stage-delete

    Um alle Befehle für deploy-stage abzurufen:

    oci devops deploy-stage -h

    So erhalten Sie Hilfe für den Befehl create-oke-helm-chart-stage:

    oci devops deploy-stage create-oke-helm-chart-stage -h
  • Um eine Kubernetes-Clusterphase für die Pipeline zu erstellen, verwenden Sie den Vorgang CreateDeployStage. Geben Sie für das Attribut deployStageType den Wert OKE_HELM_CHART_DEPLOYMENT an.