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 SieKubernetes Service Connection
an, um eine Verbindung mit einem beliebigen Kubernetes-Cluster herzustellen, indem Siekubeconfig
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 SieAzure 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 SieKubernetes Service Connection
an, um eine Verbindung mit einem beliebigen Kubernetes-Cluster herzustellen, indem Siekubeconfig
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 SieAzure 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/mysql
ist, wird die Aufgabe helm install stable/mysql
ausgefü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 ./redis
angeben, wird die Aufgabe helm install ./redis
ausgefü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 true
ist, 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 true
ist, 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 true
ist, 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
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.
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
Laden Sie GPG-herunter.
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
Sie werden zur Eingabe der Passphrase aufgefordert. Geben Sie den Wert ein, und klicken Sie auf 'OK'.
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
So zeigen Sie die Liste der öffentlichen Schlüssel an
gpg --list-keys
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 |