Freigeben über


HelmDeploy@0 – Packen und Bereitstellen von Helmdiagrammen v0-Aufgabe

Verwenden Sie diese Aufgabe, um einen Kubernetes-Cluster im Azure-Containerdienst bereitzustellen, zu konfigurieren oder zu aktualisieren, indem Sie Helmbefehle ausführen.

Syntax

# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade' | 'uninstall'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package && command != save. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package && command != save. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package && command != save. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package && command != save. Namespace. 
  # Azure Container Registry
    #azureSubscriptionForACR: # string. Alias: azureSubscriptionEndpointForACR. Required when command == save. Azure subscription for Container Registry. 
    #azureResourceGroupForACR: # string. Required when command == save. Resource group. 
    #azureContainerRegistry: # string. Required when command == save. Azure Container Registry. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'save' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package || command == install || command == upgrade. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
    #chartNameForACR: # string. Required when command == save. Chart Name For Azure Container Registry. 
    #chartPathForACR: # string. Required when command == save. Chart Path for Azure Container Registry. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package && command != save. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package && command != save. Tiller namespace. 
    #failOnStderr: false # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Fail on Standard Error. Default: false.
    #publishPipelineMetadata: true # boolean. Optional. Use when command != login && command != logout && command != package && command != save. Publish pipeline metadata. Default: true.
# Package and deploy Helm charts v0
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running helm commands.
- task: HelmDeploy@0
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout && command != package. Connection Type. Default: Azure Resource Manager.
    #azureSubscription: # string. Alias: azureSubscriptionEndpoint. Required when connectionType = Azure Resource Manager && command != logout && command != package. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout && command != package. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout && command != package. Use cluster admin credentials. Default: false.
    #kubernetesServiceConnection: # string. Alias: kubernetesServiceEndpoint. Required when connectionType = Kubernetes Service Connection && command != logout && command != package. Kubernetes Service Connection. 
    #namespace: # string. Optional. Use when command != logout && command != package. Namespace. 
  # Commands
    command: 'ls' # 'create' | 'delete' | 'expose' | 'get' | 'init' | 'install' | 'login' | 'logout' | 'ls' | 'package' | 'rollback' | 'upgrade'. Required. Command. Default: ls.
    #chartType: 'Name' # 'Name' | 'FilePath'. Required when command == install || command == upgrade. Chart Type. Default: Name.
    chartName: # string. Required when chartType == Name. Chart Name. 
    #chartPath: # string. Required when chartType == FilePath || command == package. Chart Path. 
    #chartVersion: # string. Alias: version. Optional. Use when command == package. Version. 
    #releaseName: # string. Optional. Use when command == install || command == upgrade. Release Name. 
    #overrideValues: # string. Optional. Use when command == install || command == upgrade. Set Values. 
    #valueFile: # string. Optional. Use when command == install || command == upgrade. Value File. 
    #destination: '$(Build.ArtifactStagingDirectory)' # string. Optional. Use when command == package. Destination. Default: $(Build.ArtifactStagingDirectory).
    #canaryimage: false # boolean. Optional. Use when command == init. Use canary image version. Default: false.
    #upgradetiller: true # boolean. Optional. Use when command == init. Upgrade Tiller. Default: true.
    #updatedependency: false # boolean. Optional. Use when command == install || command == package. Update Dependency. Default: false.
    #save: true # boolean. Optional. Use when command == package. Save. Default: true.
    #install: true # boolean. Optional. Use when command == upgrade. Install if release not present. Default: true.
    #recreate: false # boolean. Optional. Use when command == upgrade. Recreate Pods. Default: false.
    #resetValues: false # boolean. Optional. Use when command == upgrade. Reset Values. Default: false.
    #force: false # boolean. Optional. Use when command == upgrade. Force. Default: false.
    #waitForExecution: true # boolean. Optional. Use when command == init || command == install || command == upgrade. Wait. Default: true.
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # TLS
    #enableTls: false # boolean. Optional. Use when command != login && command != logout && command != package. Enable TLS. Default: false.
    #caCert: # string. Required when enableTls == true && command != login && command != logout && command != package. CA certificate. 
    #certificate: # string. Required when enableTls == true && command != login && command != logout && command != package. Certificate. 
    #privatekey: # string. Required when enableTls == true && command != login && command != logout && command != package. Key. 
  # Advanced
    #tillernamespace: # string. Optional. Use when command != login && command != logout && command != package. Tiller namespace. 
    #failOnStderr: true # boolean. Optional. Use when command != login && command != logout && command != package. Fail on Standard Error. Default: true.

Eingänge

connectionType - Verbindungstyp
string. Erforderlich, wenn command != logout && command != package && command != save. Zulässige Werte: Azure Resource Manager, Kubernetes Service Connection, None. Standardwert: Azure Resource Manager.

Gibt den Verbindungstyp an.

  • Kubernetes Service Connection – Geben Sie Kubernetes Service Connection an, um eine Verbindung mit einem beliebigen Kubernetes-Cluster herzustellen, indem Sie kubeconfig oder das Azure-Dienstkonto verwenden. Ermöglicht es Ihnen, eine KubeConfig-Datei bereitzustellen, ein Dienstkonto anzugeben oder eine AKS-Instanz mit der Option Azure-Abonnement zu importieren. Für das Importieren einer AKS-Instanz mit der Option Azure-Abonnement ist der Kubernetes-Clusterzugriff zur Dienstverbindungskonfiguration erforderlich.
  • Azure Resource Manager – Geben Sie Azure Resource Manager an, um mithilfe von Azure Service Connection eine Verbindung mit einem Azure Kubernetes-Dienst herzustellen. Greift nicht auf Kubernetes-Cluster zur Dienstverbindungskonfiguration zu.
  • None – Verwenden Sie eine zuvor erstellte Kubernetes-Konfiguration, die lokal gespeichert ist.

Weitere Informationen finden Sie unter Dienstverbindung im folgenden abschnitt Hinweise.


connectionType - Verbindungstyp
string. Erforderlich, wenn command != logout && command != package. Zulässige Werte: Azure Resource Manager, Kubernetes Service Connection, None. Standardwert: Azure Resource Manager.

Gibt den Verbindungstyp an.

  • Kubernetes Service Connection – Geben Sie Kubernetes Service Connection an, um eine Verbindung mit einem beliebigen Kubernetes-Cluster herzustellen, indem Sie kubeconfig oder das Azure-Dienstkonto verwenden. Ermöglicht es Ihnen, eine KubeConfig-Datei bereitzustellen, ein Dienstkonto anzugeben oder eine AKS-Instanz mit der Option Azure-Abonnement zu importieren. Für das Importieren einer AKS-Instanz mit der Option Azure-Abonnement ist der Kubernetes-Clusterzugriff zur Dienstverbindungskonfiguration erforderlich.
  • Azure Resource Manager – Geben Sie Azure Resource Manager an, um mithilfe von Azure Service Connection eine Verbindung mit einem Azure Kubernetes-Dienst herzustellen. Greift nicht auf Kubernetes-Cluster zur Dienstverbindungskonfiguration zu.
  • None – Verwenden Sie eine zuvor erstellte Kubernetes-Konfiguration, die lokal gespeichert ist.

Weitere Informationen finden Sie unter Dienstverbindung im folgenden abschnitt Hinweise.


azureSubscription - Azure-Abonnement
Eingabealias: azureSubscriptionEndpoint. string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Der Name der Azure-Dienstverbindung. Geben Sie ein Azure-Abonnement an, das über Ihre Containerregistrierung verfügt.


azureSubscription - Azure-Abonnement
Eingabealias: azureSubscriptionEndpoint. string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout && command != package.

Der Name der Azure-Dienstverbindung. Geben Sie ein Azure-Abonnement an, das über Ihre Containerregistrierung verfügt.


azureResourceGroup - Ressourcengruppe
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Der Name der Ressourcengruppe innerhalb des Abonnements. Geben Sie eine Azure-Ressourcengruppe an.


azureResourceGroup - Ressourcengruppe
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout && command != package.

Der Name der Ressourcengruppe innerhalb des Abonnements. Geben Sie eine Azure-Ressourcengruppe an.


kubernetesCluster - Kubernetes-Cluster
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout && command != package && command != save.

Der Name des AKS-Clusters. Geben Sie einen azure managed Cluster an.


kubernetesCluster - Kubernetes-Cluster
string. Erforderlich, wenn connectionType = Azure Resource Manager && command != logout && command != package.

Der Name des AKS-Clusters. Geben Sie einen azure managed Cluster an.


useClusterAdmin - Verwenden von Clusteradministratoranmeldeinformationen
boolean. Wahlfrei. Wird verwendet, wenn connectionType = Azure Resource Manager && command != logout && command != package && command != save. Standardwert: false.

Verwendet Clusteradministratoranmeldeinformationen anstelle von Standard-Clusterbenutzeranmeldeinformationen.


useClusterAdmin - Verwenden von Clusteradministratoranmeldeinformationen
boolean. Wahlfrei. Wird verwendet, wenn connectionType = Azure Resource Manager && command != logout && command != package. Standardwert: false.

Verwendet Clusteradministratoranmeldeinformationen anstelle von Standard-Clusterbenutzeranmeldeinformationen.


kubernetesServiceConnection - Kubernetes-Dienstverbindung
Eingabealias: kubernetesServiceEndpoint. string. Erforderlich, wenn connectionType = Kubernetes Service Connection && command != logout && command != package && command != save.

Gibt eine Kubernetes-Dienstverbindung an.


kubernetesServiceConnection - Kubernetes-Dienstverbindung
Eingabealias: kubernetesServiceEndpoint. string. Erforderlich, wenn connectionType = Kubernetes Service Connection && command != logout && command != package.

Gibt eine Kubernetes-Dienstverbindung an.


namespace - Namespace-
string. Wahlfrei. Wird verwendet, wenn command != logout && command != package && command != save.

Der Namespace, auf dem Sie die kubectl Befehle ausführen. Wenn nicht angegeben, verwendet die Aufgabe den Standardnamespace. Geben Sie den zu verwendenden Kubernetes-Namespace an. Sie können den Tiller-Namespace im erweiterten Abschnitt der Aufgabe angeben oder die option --tiller-namespace als Argument übergeben.


namespace - Namespace-
string. Wahlfrei. Wird verwendet, wenn command != logout && command != package.

Der Namespace, auf dem Sie die kubectl Befehle ausführen. Wenn nicht angegeben, verwendet die Aufgabe den Standardnamespace. Geben Sie den zu verwendenden Kubernetes-Namespace an. Sie können den Tiller-Namespace im erweiterten Abschnitt der Aufgabe angeben oder die option --tiller-namespace als Argument übergeben.


azureSubscriptionForACR - Azure-Abonnement für containerregistrierung
Eingabealias: azureSubscriptionEndpointForACR. string. Erforderlich, wenn command == save.

Gibt ein Azure-Abonnement mit Ihrer Azure-Containerregistrierung an.


azureResourceGroupForACR - Ressourcengruppe
string. Erforderlich, wenn command == save.

Gibt eine Azure-Ressourcengruppe mit Ihrer Containerregistrierung an.


azureContainerRegistry - Azure Container Registry
string. Erforderlich, wenn command == save.

Gibt eine Azure-Containerregistrierung an, die für Push-Helm-Diagramme verwendet werden soll.


command - Command
string. Erforderlich. Zulässige Werte: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade, uninstall. Standardwert: ls.

Gibt einen Helm-Befehl an.


command - Command
string. Erforderlich. Zulässige Werte: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade. Standardwert: ls.

Gibt einen Helm-Befehl an.


command - Command
string. Erforderlich. Zulässige Werte: create, delete, expose, get, init, install, login, logout, ls, package, rollback, upgrade. Standardwert: ls.

Gibt einen Helm-Befehl an.


chartType - Diagrammtyp-
string. Erforderlich, wenn command == install || command == upgrade. Zulässige Werte: Name, FilePath (Dateipfad). Standardwert: Name.

Gibt an, wie Diagramminformationen eingegeben werden sollen. Sie können entweder den Namen des Diagramms oder des Ordner-/Dateipfads zum Diagramm angeben.


chartName - Diagrammname
string. Erforderlich, wenn chartType == Name.

Der Name des zu installierenden Diagrammverweises. Dies kann eine URL oder ein Diagrammname sein. Wenn der Diagrammname beispielsweise stable/mysqlist, wird die Aufgabe helm install stable/mysqlausgeführt.


chartPath - Diagrammpfad
string. Erforderlich, wenn chartType == FilePath || command == package.

Der Pfad zum zu installierenden Diagramm. Dies kann ein Pfad zu einem verpackten Diagramm oder ein Pfad zu einem entpackten Diagrammverzeichnis sein. Wenn Sie beispielsweise ./redisangeben, wird die Aufgabe helm install ./redisausgeführt. Wenn Sie ein Diagramm verwenden, das als Artefakt veröffentlicht wird, wird der Pfad $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME.


chartVersion - Version
Eingabealias: version. string. Wahlfrei. Wird verwendet, wenn command == package || command == install || command == upgrade.

Gibt die zu installierende genaue Diagrammversion an. Wenn Sie die Diagrammversion nicht angeben, installiert die Aufgabe die neueste Version. Legen Sie die Version im Diagramm auf diese Semver-Version fest.


chartVersion - Version
Eingabealias: version. string. Wahlfrei. Wird verwendet, wenn command == package.

Gibt die zu installierende genaue Diagrammversion an. Wenn Sie die Diagrammversion nicht angeben, installiert die Aufgabe die neueste Version. Legen Sie die Version im Diagramm auf diese Semver-Version fest.


releaseName - Veröffentlichungsname
string. Wahlfrei. Wird verwendet, wenn command == install || command == upgrade.

Der Releasename. Wenn Sie den Veröffentlichungsnamen nicht angeben, generiert die Aufgabe automatisch einen für Sie. Die releaseName Eingabe ist nur für install und upgrade Befehle gültig.


overrideValues - Festlegen von Werten
string. Wahlfrei. Wird verwendet, wenn command == install || command == upgrade.

Gibt Werte in der Befehlszeile an. Diese Eingabe kann mehrere oder separate Werte mit Kommas angeben: key1=val1,key2=val2.

Sie können auch mehrere Werte angeben, indem Sie sie mit einer neuen Zeile wie folgt trennen:

  • key1=val1
  • key2=val2

Wenn Sie einen Wert haben, der neue Zeilen enthält, verwenden Sie die Option valueFile. Andernfalls behandelt der Vorgang die neue Zeile als Trennzeichen. Die Aufgabe erstellt den Befehl "Helm" mithilfe dieser festgelegten Werte. Beispielsweise können Sie den Wert mit einem Befehl wie den folgenden festlegen: helm install --set key1=val1 ./redis.


valueFile - Wertdatei
string. Wahlfrei. Wird verwendet, wenn command == install || command == upgrade.

Gibt Werte in einer YAML-Datei oder einer URL an. Beispiel: Angeben myvalues.yaml Ergebnisse in helm install --values=myvals.yaml.


destination - Ziel-
string. Wahlfrei. Wird verwendet, wenn command == package. Standardwert: $(Build.ArtifactStagingDirectory).

Gibt Werte in einer YAML-Datei oder einer URL an.


canaryimage - Verwenden Sie die Canary-Bildversion.
boolean. Wahlfrei. Wird verwendet, wenn command == init. Standardwert: false.

Gibt das Canary Tiller-Bild an. Verwenden Sie die neueste Vorabversion von Tiller.


upgradetiller - Upgrade Tiller
boolean. Wahlfrei. Wird verwendet, wenn command == init. Standardwert: true.

Wenn true, aktualisiert diese Eingabe Tiller, wenn Tiller bereits installiert ist.


updatedependency - Updateabhängigkeits-
boolean. Wahlfrei. Wird verwendet, wenn command == install || command == package. Standardwert: false.

Wenn true, aktualisiert diese Eingabe vor der Installation des Diagramms ein Helm-Abhängigkeitsupdate. Aktualisiert Abhängigkeiten von requirements.yaml vor dem Verpacken im charts/ Verzeichnis.


save - speichern
boolean. Wahlfrei. Wird verwendet, wenn command == package. Standardwert: true.

Speichert das verpackte Diagramm im lokalen Diagramm-Repository, wenn es auf true​festgelegt ist.


install - Installieren, wenn die Version nicht vorhanden ist.
boolean. Wahlfrei. Wird verwendet, wenn command == upgrade. Standardwert: true.

Wenn noch keine Version mit diesem Namen vorhanden ist, führt diese Eingabe eine Installation aus.


recreate - Pods neu erstellen.
boolean. Wahlfrei. Wird verwendet, wenn command == upgrade. Standardwert: false.

Führt pods restart for the resource, if applicable.


resetValues - Werte zurücksetzen.
boolean. Wahlfrei. Wird verwendet, wenn command == upgrade. Standardwert: false.

Setzt die Werte auf die werte zurück, die in das Diagramm integriert sind.


force - erzwingen
boolean. Wahlfrei. Wird verwendet, wenn command == upgrade. Standardwert: false.

Erzwingt bei Bedarf eine Ressourcenaktualisierung durch eine Lösch- oder Neuaktualisierungsaktion.


waitForExecution - Warten
boolean. Wahlfrei. Wird verwendet, wenn command == init || command == install || command == upgrade. Standardwert: true.

Blockiert die Aktion, bis die Befehlsausführung abgeschlossen ist.


arguments - Argumente
string. Wahlfrei. Wird verwendet, wenn command != login && command != logout.

Die Helm-Befehlsoptionen.


enableTls - TLS- aktivieren
boolean. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package && command != save. Standardwert: false.

Ermöglicht die Verwendung von SSL zwischen Helm und Tiller.


enableTls - TLS- aktivieren
boolean. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package. Standardwert: false.

Ermöglicht die Verwendung von SSL zwischen Helm und Tiller.


caCert - Zertifizierungsstellenzertifikat
string. Erforderlich, wenn enableTls == true && command != login && command != logout && command != package && command != save.

Das Zertifizierungsstellenzertifikat, das zum Ausgeben eines Zertifikats für den Tiller- und Helm-Client verwendet wurde.


caCert - Zertifizierungsstellenzertifikat
string. Erforderlich, wenn enableTls == true && command != login && command != logout && command != package.

Das Zertifizierungsstellenzertifikat, das zum Ausgeben eines Zertifikats für den Tiller- und Helm-Client verwendet wurde.


certificate - Zertifikat
string. Erforderlich, wenn enableTls == true && command != login && command != logout && command != package && command != save.

Geben Sie das Tiller-Zertifikat oder das Helm-Clientzertifikat an.


certificate - Zertifikat
string. Erforderlich, wenn enableTls == true && command != login && command != logout && command != package.

Geben Sie das Tiller-Zertifikat oder das Helm-Clientzertifikat an.


privatekey - Key-
string. Erforderlich, wenn enableTls == true && command != login && command != logout && command != package && command != save.

Geben Sie die Tiller-Taste oder den Helm-Clientschlüssel an.


privatekey - Key-
string. Erforderlich, wenn enableTls == true && command != login && command != logout && command != package.

Geben Sie die Tiller-Taste oder den Helm-Clientschlüssel an.


tillernamespace - Tiller-Namespace
string. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package && command != save.

Geben Sie den Kubernetes-Namespace von Tillernetes an.


tillernamespace - Tiller-Namespace
string. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package.

Geben Sie den Kubernetes-Namespace von Tillernetes an.


failOnStderr - fehler bei Standardfehler-
boolean. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package && command != save. Standardwert: false.

Wenn diese Eingabe trueist, schlägt diese Aufgabe fehl, wenn Fehler in die Fehlerpipeline geschrieben werden oder daten in den Standardfehlerdatenstrom geschrieben werden. Andernfalls basiert die Aufgabe auf dem Beendigungscode, um fehler zu ermitteln.


failOnStderr - fehler bei Standardfehler-
boolean. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package. Standardwert: true.

Wenn diese Eingabe trueist, schlägt diese Aufgabe fehl, wenn Fehler in die Fehlerpipeline geschrieben werden oder daten in den Standardfehlerdatenstrom geschrieben werden. Andernfalls basiert die Aufgabe auf dem Beendigungscode, um fehler zu ermitteln.


publishPipelineMetadata - Veröffentlichen von Pipelinemetadaten
boolean. Wahlfrei. Wird verwendet, wenn command != login && command != logout && command != package && command != save. Standardwert: true.

Wenn diese Eingabe trueist, sammelt und veröffentlicht die Aufgabe Bereitstellungsmetadaten.


chartNameForACR - Diagrammname für die Azure-Containerregistrierung
string. Erforderlich, wenn command == save.

Der Name des Diagramms in der Azure-Containerregistrierung.


chartPathForACR - Diagrammpfad für die Azure-Containerregistrierung
string. Erforderlich, wenn command == save.

Der Dateipfad zum Diagrammverzeichnis in der Azure-Containerregistrierung.


Aufgabensteuerungsoptionen

Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.

Ausgabevariablen

Mit dieser Aufgabe werden die folgenden Ausgabevariablendefiniert, die Sie in nachgeschalteten Schritten, Aufträgen und Phasen verwenden können.

helmExitCode
Der Ausstiegscode, der aus der Ausführung des angegebenen Helmbefehls ausgegeben wird.

helmOutput
Die Ausgabe, die aus der Ausführung des angegebenen Helmbefehls ausgegeben wird.

Bemerkungen

Verwenden Sie HelmDeploy@0, um einen Kubernetes-Cluster im Azure-Containerdienst bereitzustellen, zu konfigurieren oder zu aktualisieren, indem Sie Helm-Befehle ausführen. Helm ist ein Tool, das die Bereitstellung und Verwaltung von Kubernetes-Apps mithilfe eines Verpackungsformats namens Diagramme optimiert.

Sie können sogar die komplexeste Kubernetes-App mithilfe von Helm definieren, versionieren, freigeben, installieren und aktualisieren.

  • Helm hilft Ihnen, mehrere Kubernetes-Manifeste (Yaml) wie Dienst, Bereitstellungen, Configmaps und mehr in einer einzigen Einheit namens Helm Charts zu kombinieren. Sie müssen weder eine Tokenisierung noch ein Vorlagentool erstellen oder verwenden.
  • Helmdiagramme helfen Ihnen bei der Verwaltung von Anwendungsabhängigkeiten und der Bereitstellung sowie beim Rollback als Einheit. Sie sind auch einfach zu erstellen, zu versionieren, zu veröffentlichen und mit anderen Partnerteams zu teilen.

Azure Pipelines bietet integrierte Unterstützung für Helmdiagramme:

  • Die Helm Tool Installer-Aufgabe kann verwendet werden, um die richtige Version von Helm auf den Agents zu installieren.
  • Das Helm-Paket und die Bereitstellungsaufgabe können verwendet werden, um die App zu packen und in einem Kubernetes-Cluster bereitzustellen. Sie können die Aufgabe verwenden, um Tiller auf einen Kubernetes-Namespace zu installieren oder zu aktualisieren, um eine sichere Verbindung mit Tiller über TLS für die Bereitstellung von Diagrammen herzustellen oder einen Helm-Befehl wie Lint-auszuführen.
  • Die Helm-Aufgabe unterstützt die Verbindung mit einem Azure Kubernetes-Dienst mithilfe einer Azure-Dienstverbindung. Sie können eine Verbindung mit einem beliebigen Kubernetes-Cluster herstellen, indem Sie kubeconfig- oder ein Dienstkonto verwenden.
  • Helmbereitstellungen können mithilfe der Kubectl Aufgabe ergänzt werden; Beispielsweise erstellen/aktualisieren, imagepullsecret und andere.

Dienstverbindung

HelmDeploy@0 funktioniert mit zwei Dienstverbindungstypen: Azure Resource Manager und Kubernetes Service Connection. Beispiele für die Konfiguration dieser beiden Verbindungstypen finden Sie unter Beispiele.

Hinweis

Eine Dienstverbindung ist nicht erforderlich, wenn eine Umgebungsressource, die auf einen Kubernetes-Cluster verweist, bereits in der Pipelinephase angegeben wurde.

Überlegungen zur Kubernetes-Dienstverbindung beim Zugriff auf AKS

Sie können eine Kubernetes-Dienstverbindung mit einer der folgenden Optionen erstellen.

  • KubeConfig
  • Dienstkonto
  • Azure-Abonnement

Screenshot der Auswahl einer Kubernetes-Dienstverbindungsauthentifizierungsmethode.

Wenn Sie die Option Azure-Abonnement auswählen, muss Kubernetes zur Dienstverbindungskonfiguration auf Azure DevOps zugreifen können. Es kann verschiedene Gründe geben, warum eine Dienstverbindung nicht erstellt werden kann, z. B. sie einen privaten Cluster erstellt haben oder der Cluster lokalen Kontendeaktiviert hat. In diesen Fällen kann Azure DevOps zur Dienstverbindungskonfiguration keine Verbindung mit Ihrem Cluster herstellen, und Es wird ein hängen gebliebener Laden von Namespaces Bildschirm angezeigt.

Screenshot der Auswahl eines Kubernetes-Dienstverbindungsauthentifizierungsdialogfelds, das beim Laden von Namespaces hängen bleibt.

Ab Kubernetes 1.24 werden langlebige Token standardmäßig nicht mehrerstellt. Kubernetes empfiehlt, keine langlebigen Token zu verwenden. Daher haben Aufgaben, die eine Kubernetes-Dienstverbindung verwenden, die mit der Option Azure-Abonnement erstellt wurde, keinen Zugriff auf das permanente Token, das für die Authentifizierung erforderlich ist und nicht auf Ihren Kubernetes-Cluster zugreifen kann. Dies führt auch zum fixierten Laden von Namespaces Dialogfeld.

Verwenden der Azure Resource Manager-Dienstverbindung für den Zugriff auf AKS

Für AKS-Kunden bietet der Azure Resource Manager-Dienstverbindungstyp die beste Methode zum Herstellen einer Verbindung mit einem privaten Cluster oder einem Cluster mit deaktivierten lokalen Konten. Diese Methode hängt nicht von der Clusterkonnektivität zum Zeitpunkt der Erstellung einer Dienstverbindung ab. Access to AKS is deferred to pipeline runtime, which has the following advantages:

  • Der Zugriff auf einen (privaten) AKS-Cluster kann von einem selbst gehosteten oder Skalensatz-Agent mit Blick auf den Cluster ausgeführt werden.
  • Für jede Aufgabe, die eine Azure Resource Manager-Dienstverbindung verwendet, wird ein Token erstellt. Dadurch wird sichergestellt, dass Sie eine Verbindung mit Kubernetes mit einem kurzlebigen Token herstellen, bei dem es sich um die Kubernetes-Empfehlunghandelt.
  • Auf AKS kann auch zugegriffen werden, wenn lokale Konten deaktiviert sind.

Häufig gestellte Fragen zur Dienstverbindung

Ich erhalte die folgende Fehlermeldung: Es wurde kein geheimer Schlüssel gefunden, der dem Dienstkonto zugeordnet ist. Was passiert?

Sie verwenden die Kubernetes-Dienstverbindung mit der Azure-Abonnementoption. Wir aktualisieren diese Methode, um langlebige Token zu erstellen. Dies wird voraussichtlich Mitte Mai verfügbar sein. Es wird jedoch empfohlen, mit der Verwendung des Azure-Dienstverbindungstyps zu beginnen und keine langlebigen Token gemäß Kubernetes-Leitfadenzu verwenden.

Ich verwende AKS und möchte nichts ändern, kann ich weiterhin Aufgaben mit der Kubernetes-Dienstverbindung verwenden?

Wir aktualisieren diese Methode, um langlebige Token zu erstellen. Dies wird voraussichtlich Mitte Mai verfügbar sein. Bitte beachten Sie jedoch, dass dieser Ansatz gegen Kubernetes-Anleitung.

Ich verwende die Kubernetes-Aufgaben und kubernetes-Dienstverbindung, aber keine AKS. Sollte ich besorgt sein?

Aufgaben funktionieren weiterhin wie zuvor.

Wird der Dienstverbindungstyp Kubernetes entfernt?

Unsere Kubernetes-Aufgaben arbeiten mit jedem Kubernetes-Cluster, unabhängig davon, wo sie ausgeführt werden. Die Kubernetes-Dienstverbindung ist weiterhin vorhanden.

Ich bin ein AKS-Kunde und alles läuft gut, sollte ich handeln?

Es ist nicht erforderlich, etwas zu ändern. Wenn Sie die Kubernetes-Dienstverbindung verwenden und während der Erstellung das Azure-Abonnement ausgewählt haben, sollten Sie sich den Kubernetes-Anleitungen zur Verwendung von langlebigen Tokenbewusst sein.

Ich erschaffe eine Kubernetes-Umgebung und habe keine Möglichkeit, Dienstverbindungen zu verwenden.

Falls Sie während der Erstellungszeit der Umgebung nicht auf Ihre AKS zugreifen können, können Sie eine leere Umgebung verwenden und die connectionType Eingabe auf eine Azure Resource Manager-Dienstverbindung festlegen.

Ich habe AKS mit Azure Active Directory RBAC konfiguriert, und meine Pipeline funktioniert nicht. Werden diese Updates dies beheben?

Der Zugriff auf Kubernetes, wenn AAD RBAC aktiviert ist, ist nicht mit der Tokenerstellung verknüpft. Um eine interaktive Eingabeaufforderung zu verhindern, werden wir kubelogin in einem zukünftigen Update unterstützen.

Befehlswerte

Die Befehlseingabe akzeptiert einen der folgenden Helmbefehle: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Beispiele werden im Abschnitt Examples bereitgestellt.

Jede Befehlseingabe ordnet eine Reihe von Aufgabeneingaben zu. Die Befehle, die einer Aufgabeneingabe zugeordnet sind, werden im YAML-Syntaxblock und in der Aufgabeneingabetabelle festgelegt.

Problembehandlung

Bei der HelmDeploy-Aufgabe wird der Fehler "unbekanntes Flag: --wait" ausgelöst, während "helm init --wait --client-only" in der Helm 3.0.2-Version ausgeführt wird.

Zwischen Helm 2 und Helm 3 gibt es einige bruchbrechende Änderungen. Einer davon umfasst das Entfernen von Tiller, und daher wird helm init Befehl nicht mehr unterstützt. Befehl entfernen: init, wenn Sie Helm 3.0+-Versionen verwenden.

Wenn "System.debug" auf "true" festgelegt ist und das Helm-Upgrade der verwendete Befehl ist, schlägt die Pipeline fehl, obwohl das Upgrade erfolgreich war.

Dies ist ein bekanntes Problem mit Helm 3, da einige Protokolle in Stderr geschrieben werden. Helm Deploy Task is marked as failed if there are logs to stderr or exit code is non-zero. Legen Sie die Vorgangseingabe failOnStderr fest: false, um die protokolle zu ignorieren, die in stderr gedruckt werden.

Beispiele

Azure Resource Manager

In diesem YAML-Beispiel wird gezeigt, wie Azure Resource Manager verwendet wird, um auf den Kubernetes-Cluster zu verweisen. Dies wird mit einem der Steuer-Befehle und den entsprechenden Werten verwendet, die für den Befehl erforderlich sind:

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io
  azureResourceGroup: Contoso
  kubernetesCluster: Contoso

- task: HelmDeploy@0
  displayName: Helm deploy
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)

Kubernetes-Dienstverbindung

In diesem YAML-Beispiel wird gezeigt, wie die Kubernetes-Dienstverbindung verwendet wird, um auf den Kubernetes-Cluster zu verweisen. Dies wird mit einem der Steuer-Befehle und den entsprechenden Werten verwendet, die für den Befehl erforderlich sind:

- task: HelmDeploy@0
  displayName: Helm deploy
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: Contoso

Befehle

Die Befehlseingabe akzeptiert einen der folgenden Helmbefehle: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.

In diesem YAML-Beispiel wird der Befehl ls veranschaulicht:

- task: HelmDeploy@0
  displayName: Helm list
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: ls
    arguments: --all

Init-Befehl

In diesem YAML-Beispiel wird der Befehl init veranschaulicht:

- task: HelmDeploy@0
  displayName: Helm init
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: init
    upgradetiller: true
    waitForExecution: true
    arguments: --client-only

Installationsbefehl

In diesem YAML-Beispiel wird der Befehl Installation veranschaulicht:

- task: HelmDeploy@0
  displayName: Helm install
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: install
    chartType: FilePath
    chartPath: Application/charts/sampleapp

Paketbefehl

In diesem YAML-Beispiel wird der Befehl Paket veranschaulicht:

- task: HelmDeploy@0
  displayName: Helm package
  inputs:
    command: package
    chartPath: Application/charts/sampleapp
    destination: $(Build.ArtifactStagingDirectory)

Upgrade-Befehl

In diesem YAML-Beispiel wird der Befehl Upgrade veranschaulicht:

- task: HelmDeploy@0
  displayName: Helm upgrade
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: upgrade
    chartType: filepath
    chartPath: $(Build.ArtifactStagingDirectory)/sampleapp-v0.2.0.tgz
    releaseName: azuredevopsdemo
    install: true
    waitForExecution: false

Befehl "speichern"

In diesem YAML-Beispiel wird der Befehl zum Speichern veranschaulicht:

- task: HelmDeploy@0
  displayName: Helm save
  inputs:
    command: save
    chartNameForACR: mycontainerregistry.azurecr.io/helm/hello-world:v1
    chartPathForACR: Application/charts/sampleapp
    azureSubscriptionEndpointForACR: $(azureSubscriptionEndpointForACR)
    azureResourceGroupForACR: $(azureResourceGroupForACR)
    azureContainerRegistry: $(azureContainerRegistry)

Packen und Signieren von Helmdiagrammen

In diesem Abschnitt erfahren Sie, wie Sie Helmdiagramme in einer Pipeline packen und signieren.

Generieren eines Schlüsselpaars mit privatem öffentlichem Schlüssel zum Signieren des Steuerdiagramms mithilfe von GPG

  1. Laden Sie GPG-herunter.

  2. Starten Sie die Eingabeaufforderung in einem Administratormodus. Führen Sie den folgenden Befehl aus, um ein privates schlüsselpaar zu generieren, um das Steuerdiagramm mit gpg zu signieren. Beim Erstellen des Schlüssels werden Sie zur Eingabe des Benutzernamens und der E-Mail-Adresse aufgefordert. Die "Name-E-Mail-Adresse" wird später verwendet, um das zu erstellende Private-Public-Schlüsselpaar zu benennen.

    gpg --full-generate-key
    

    Generieren von Schlüsseln

  3. Sie werden zur Eingabe der Passphrase aufgefordert. Geben Sie den Wert ein, und klicken Sie auf 'OK'.

    Screenshot, der die Passphrase zeigt.

  4. Nach dem Erstellen des Schlüssels können Sie die Liste der Schlüssel sehen, die sowohl privat als auch öffentlich mit dem folgenden Befehl enthält.

    • So zeigen Sie die Liste der privaten Schlüssel an

      gpg --list-secret-keys
      

      private Schlüssel

    • So zeigen Sie die Liste der öffentlichen Schlüssel an

      gpg --list-keys
      

      öffentliche Schlüssel

  5. Speichern Sie die privaten und öffentlichen Schlüssel in zwei verschiedenen Dateien mit der Erweiterung gpg wie unten dargestellt.

    • Für einen privaten Schlüssel
    gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
    

    Die datei privatekeys.gpg wird in den oben erwähnten Pfad exportiert.

    • Für einen öffentlichen Schlüssel
    gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
    

    Die datei publickey.gpg wird in den oben erwähnten Pfad exportiert.

Speichern Sie in Azure DevOps die datei privatekey.gpg in der Bibliothek, abschnitt "sichere Dateien" Abschnitt.

Beispiel

pool:
  name: Hosted Ubuntu 1604

variables:
  # The below variable should be secure
  HelmKeyPassphrase: contoso@123
  keyName: contoso contoso@microsoft.com
  azureSubscriptionEndpoint: contoso
  azureResourceGroup: contoso
  kubernetesCluster: contoso

steps:
- task: DownloadSecureFile@1
  displayName: Download Secure file
  inputs:
    secureFile: privatekey.gpg
  name: privateKeyRing

- task: HelmInstaller@0
  displayName: Install Helm 2.12.0
  inputs:
    helmVersion: 2.12.0

- task: HelmDeploy@0
  displayName: helm init
  inputs:
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: init
    arguments: --client-only

- task: HelmDeploy@0
  displayName: helm package
  inputs:
    command: package
    chartPath: Application/charts/sampleapp
    arguments: --sign --key "$(keyName)" --keyring $(privateKeyRing.secureFilePath)
  env:
    HelmKeyPassphrase: $(HelmKeyPassphrase)

Anforderungen

Anforderung BESCHREIBUNG
Pipelinetypen YAML, Classic Build, Classic Release
Läuft auf Agent, DeploymentGroup
Anforderungen Nichts
Funktionen Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag.
Befehlseinschränkungen Jegliche
Settable-Variablen Jegliche
Agentversion Alle unterstützten Agentversionen.
Vorgangskategorie Einsetzen