Freigeben über


HelmDeploy@0: Packen und Bereitstellen von Helm-Diagrammen v0-Aufgabe

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

Verwenden Sie diese Aufgabe, um Ihren Kubernetes-Cluster in Azure Container Service 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.
# 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. 
    #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.
# Package and deploy Helm charts v0
# Deploy, configure, update your 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. 
    #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.

Eingaben

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

Gibt den Verbindungstyp an.

  • Kubernetes Service Connection – Geben Sie an Kubernetes Service Connection , um eine Verbindung mit einem beliebigen Kubernetes-Cluster mithilfe kubeconfig des Azure-Dienstkontos herzustellen. Ermöglicht das Bereitstellen einer KubeConfig-Datei, das Angeben eines Dienstkontos oder das Importieren eines AKS-instance mit der Azure-Abonnementoption. Das Importieren eines AKS-instance mit der Azure-Abonnementoption erfordert den Kubernetes-Clusterzugriff zur Konfigurationszeit der Dienstverbindung.
  • Azure Resource Manager– Geben Sie anAzure Resource Manager, um eine Verbindung mit einer Azure Kubernetes Service mithilfe von Azure Service Connection herzustellen. Greift zum Zeitpunkt der Dienstverbindungskonfiguration nicht auf den Kubernetes-Cluster zu.
  • None – Verwenden Sie eine vorab 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 und None. Standardwert. Azure Resource Manager.

Gibt den Verbindungstyp an.

  • Kubernetes Service Connection – Geben Sie an Kubernetes Service Connection , um eine Verbindung mit einem beliebigen Kubernetes-Cluster mithilfe kubeconfig des Azure-Dienstkontos herzustellen. Ermöglicht das Bereitstellen einer KubeConfig-Datei, das Angeben eines Dienstkontos oder das Importieren eines AKS-instance mit der Azure-Abonnementoption. Das Importieren eines AKS-instance mit der Azure-Abonnementoption erfordert den Kubernetes-Clusterzugriff zur Konfigurationszeit der Dienstverbindung.
  • Azure Resource Manager– Geben Sie anAzure Resource Manager, um eine Verbindung mit einer Azure Kubernetes Service mithilfe von Azure Service Connection herzustellen. Greift zum Zeitpunkt der Dienstverbindungskonfiguration nicht auf den Kubernetes-Cluster zu.
  • None – Verwenden Sie eine vorab 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 mit Ihrer Containerregistrierung an.


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 mit Ihrer Containerregistrierung an.


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 verwalteten Azure-Cluster an.


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

Der Name des AKS-Clusters. Geben Sie einen verwalteten Azure-Cluster an.


useClusterAdmin - Verwenden von Clusteradministratoranmeldeinformationen
boolean. Optional. Verwenden Sie , wenn connectionType = Azure Resource Manager && command != logout && command != package && command != save. Standardwert. false.

Verwendet Clusteradministratoranmeldeinformationen anstelle der Standardanmeldeinformationen von Clusterbenutzern.


useClusterAdmin - Verwenden von Clusteradministratoranmeldeinformationen
boolean. Optional. Verwenden Sie , wenn connectionType = Azure Resource Manager && command != logout && command != package. Standardwert. false.

Verwendet Clusteradministratoranmeldeinformationen anstelle der Standardanmeldeinformationen von Clusterbenutzern.


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. Optional. Verwenden Sie , wenn command != logout && command != package && command != save.

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


namespace - Namespace
string. Optional. Verwenden Sie , wenn command != logout && command != package.

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


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

Gibt ein Azure-Abonnement an, das Über Ihre Azure Container Registry verfügt.


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

Gibt eine Azure-Ressourcengruppe an, die über Ihre Container Registry verfügt.


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

Gibt einen Azure Container Registry an, der zum Pushen von Helm-Diagrammen verwendet werden soll.


command - Befehl
string. Erforderlich. Zulässige Werte: create, delete, expose, initget, install, login, logout, , ls, , package, rollback, , saveupgradeuninstall. Standardwert. ls.

Gibt einen Helm-Befehl an.


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

Gibt einen Helm-Befehl an.


command - Befehl
string. Erforderlich. Zulässige Werte: create, delete, expose, get, installinit, 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 Sie Diagramminformationen eingeben möchten. Sie können entweder den Namen des Diagramms oder den Ordner-/Dateipfad zum Diagramm angeben.


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

Der Name des zu installierenden Diagrammverweis. Dies kann eine URL oder ein Diagrammname sein. Wenn der Diagrammname beispielsweise lautet, führt stable/mysqlder Task aus helm install stable/mysql.


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

Der Pfad zum zu installierenden Diagramm. Chartpfad: Dies kann ein Pfad zu einem gepackten Chart oder ein Pfad zu einem nicht gepackten Chartverzeichnis sein. Wenn Sie z. B. angeben ./redis, wird der Task ausgeführt helm install ./redis. Wenn Sie ein Diagramm verwenden, das als Artefakt veröffentlicht wird, lautet $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAMEder Pfad .


chartVersion - Version
Eingabealias: version. string. Optional. Verwenden Sie , wenn command == package || command == install || command == upgrade.

Gibt die genaue zu installierende Diagrammversion an. Wenn Sie die Diagrammversion nicht angeben, installiert der Task die neueste Version. Legen Sie die Version im Diagramm auf diese Semverversion fest.


chartVersion - Version
Eingabealias: version. string. Optional. Verwenden Sie , wenn command == package.

Gibt die genaue zu installierende Diagrammversion an. Wenn Sie die Diagrammversion nicht angeben, installiert der Task die neueste Version. Legen Sie die Version im Diagramm auf diese Semverversion fest.


releaseName - Releasename
string. Optional. Verwenden Sie , wenn command == install || command == upgrade.

Der Releasename. Wenn Sie den Releasenamen nicht angeben, wird von der Aufgabe automatisch ein Name für Sie generiert. Die releaseName Eingabe ist nur für install Befehle und upgrade gültig.


overrideValues - Werte festlegen
string. Optional. Verwenden Sie , 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 wie folgt durch eine neue Zeile trennen:

  • key1=val1
  • key2=val2

Wenn Sie über einen Wert verfügen, der neue Zeilen enthält, verwenden Sie die valueFile Option. Andernfalls behandelt der Task die neue Zeile als Trennzeichen. Der Task erstellt den Helm-Befehl mithilfe dieser Setwerte. Beispielsweise können Sie den Wert mit einem Befehl wie dem folgenden festlegen: helm install --set key1=val1 ./redis.


valueFile - Wertdatei
string. Optional. Verwenden Sie , wenn command == install || command == upgrade.

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


destination - Ziel
string. Optional. Verwenden Sie , wenn command == package. Standardwert. $(Build.ArtifactStagingDirectory).

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


canaryimage - Verwenden Sie die Canary-Imageversion.
boolean. Optional. Verwenden Sie , wenn command == init. Standardwert. false.

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


upgradetiller - Tiller upgraden
boolean. Optional. Verwenden Sie , wenn command == init. Standardwert. true.

Wenn true, wird die Tiller-Eingabe aktualisiert, wenn Tiller bereits installiert ist.


updatedependency - Abhängigkeit aktualisieren
boolean. Optional. Verwenden Sie , wenn command == install || command == package. Standardwert. false.

Wenn true, aktualisiert diese Eingabe ein Helm-Abhängigkeitsupdate vor der Installation des Diagramms. Updates Abhängigkeiten vor dem Packen in requirements.yaml das charts/ Verzeichnis ein.


save - Speichern
boolean. Optional. Verwenden Sie , wenn command == package. Standardwert. true.

Speichert das gepackte Diagramm im lokalen Diagrammrepository, wenn auf festgelegt ist true​.


install - Installieren Sie, wenn das Release nicht vorhanden ist.
boolean. Optional. Verwenden Sie , wenn command == upgrade. Standardwert. true.

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


recreate - Erstellen Sie Pods neu.
boolean. Optional. Verwenden Sie , wenn command == upgrade. Standardwert. false.

Führt podsneustarts für die Ressource aus, falls zutreffend.


resetValues - Werte zurücksetzen.
boolean. Optional. Verwenden Sie , wenn command == upgrade. Standardwert. false.

Setzt die Werte auf die im Diagramm integrierten Werte zurück.


force - Kraft
boolean. Optional. Verwenden Sie , wenn command == upgrade. Standardwert. false.

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


waitForExecution - Warte
boolean. Optional. Verwenden Sie , wenn command == init || command == install || command == upgrade. Standardwert. true.

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


arguments - Argumente
string. Optional. Verwenden Sie , wenn command != login && command != logout.

Die Helm-Befehlsoptionen.


enableTls - Aktivieren von TLS
boolean. Optional. Verwenden Sie , wenn command != login && command != logout && command != package && command != save. Standardwert. false.

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


enableTls - Aktivieren von TLS
boolean. Optional. Verwenden Sie , 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 Ausstellen eines Zertifikats für den Tiller- und Helm-Client verwendet wird.


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

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


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 - Schlüssel
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 - Schlüssel
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. Optional. Verwenden Sie , wenn command != login && command != logout && command != package && command != save.

Geben Sie den Kubernetes-Namespace von Tiller an.


tillernamespace - Tiller-Namespace
string. Optional. Verwenden Sie , wenn command != login && command != logout && command != package.

Geben Sie den Kubernetes-Namespace von Tiller an.


failOnStderr - Fehler beim Standardfehler
boolean. Optional. Verwenden Sie , wenn command != login && command != logout && command != package && command != save. Standardwert. false.

Wenn diese Eingabe lautet true, schlägt dieser Task fehl, wenn Fehler in die Fehlerpipeline geschrieben werden oder Wenn Daten in den Standardfehlerstream geschrieben werden. Andernfalls basiert die Aufgabe auf dem Exitcode, um den Fehler zu ermitteln.


failOnStderr - Fehler beim Standardfehler
boolean. Optional. Verwenden Sie , wenn command != login && command != logout && command != package. Standardwert. true.

Wenn diese Eingabe lautet true, schlägt dieser Task fehl, wenn Fehler in die Fehlerpipeline geschrieben werden oder Wenn Daten in den Standardfehlerstream geschrieben werden. Andernfalls basiert die Aufgabe auf dem Exitcode, um den Fehler zu ermitteln.


publishPipelineMetadata - Veröffentlichen von Pipelinemetadaten
boolean. Optional. Verwenden Sie , wenn command != login && command != logout && command != package && command != save. Standardwert. true.

Wenn diese Eingabe lautet true, sammelt und veröffentlicht der Task Bereitstellungsmetadaten.


chartNameForACR - Diagrammname für Azure Container Registry
string. Erforderlich, wenn command == save.

Der Name des Diagramms im Azure Container Registry.


chartPathForACR - Diagrammpfad für Azure Container Registry
string. Erforderlich, wenn command == save.

Der Dateipfad zum Diagrammverzeichnis im Azure Container Registry.


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Diese Aufgabe definiert die folgenden Ausgabevariablen, die Sie in Downstreamschritten, Aufträgen und Phasen verwenden können.

helmExitCode
Der Exitcode, der bei der Ausführung des angegebenen Helm-Befehls ausgegeben wird.

helmOutput
Die Ausgabe, die von der Ausführung des angegebenen Helm-Befehls ausgegeben wird.

Keine.

Hinweise

Verwenden Sie HelmDeploy@0, um einen Kubernetes-Cluster in Azure Container Service 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 Paketformats namens Charts optimiert.

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

  • Helm hilft Ihnen dabei, mehrere Kubernetes-Manifeste (YAML) wie Dienste, Bereitstellungen, ConfigMaps und mehr in einer einzigen Einheit namens Helm-Charts zu kombinieren. Sie müssen weder eine Tokenisierung noch ein Tool zur Vorlagenerstellung erfinden oder verwenden.
  • Helm-Charts helfen Ihnen beim Verwalten von Anwendungsabhängigkeiten und beim Bereitstellen 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 Helm-Charts:

  • Die Aufgabe zur Installation von Helm-Tools kann verwendet werden, um die richtige Version von Helm auf den Agents zu installieren.
  • Die Helm-Aufgabe zum Packen und Bereitstellen kann verwendet werden, um die App zu packen und sie in einem Kubernetes-Cluster bereitzustellen. Mit dieser Aufgabe können Sie Tiller auf einem Kubernetes-Namespace installieren oder aktualisieren, um eine sichere Verbindung mit Tiller über TLS für die Bereitstellung von Charts herzustellen oder einen Helm-Befehl wie Lintauszuführen.
  • Der Helm-Task unterstützt das Herstellen einer Verbindung mit einer Azure Kubernetes Service mithilfe einer Azure-Dienstverbindung. Über kubeconfig oder ein Dienstkonto können Sie eine Verbindung mit jedem Kubernetes-Cluster herstellen.
  • Helm-Bereitstellungen lassen sich durch die Kubectl-Aufgabe ergänzen, zum Beispiel „create/update“, „imagepullsecret “und andere.

Dienstverbindung

HelmDeploy@0 funktioniert mit zwei Dienstverbindungstypen: Azure Resource Manager und Kubernetes Service Connection. Beispiele zum Konfigurieren dieser beiden Verbindungstypen finden Sie unter Beispiele .

Hinweis

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

Überlegungen zur Kubernetes Service-Verbindung beim Zugriff auf AKS

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

  • KubeConfig
  • Dienstkonto
  • Azure-Abonnement

Screenshot: Auswählen einer Kubernetes-Dienstverbindungsauthentifizierungsmethode

Wenn Sie die Option Azure-Abonnement auswählen, muss für Azure DevOps zum Zeitpunkt der Dienstverbindungskonfiguration auf Kubernetes zugegriffen werden können. Es kann verschiedene Gründe geben, warum eine Dienstverbindung nicht erstellt werden kann, z. B. haben Sie einen privaten Cluster erstellt oder lokale Konten für den Cluster deaktiviert. In diesen Fällen kann Azure DevOps zum Zeitpunkt der Dienstverbindungskonfiguration keine Verbindung mit Ihrem Cluster herstellen, und Es wird ein Bildschirm zum Laden von Namespaces angezeigt.

Screenshot: Auswählen eines Kubernetes-Dienst-Verbindungsauthentifizierungsdialogfelds, das beim Laden von Namespaces hängen bleibt

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

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

Für AKS-Kunden bietet der Verbindungstyp Azure Resource Manager-Dienst die beste Methode, um eine Verbindung mit einem privaten Cluster oder einem Cluster herzustellen, für den lokale Konten deaktiviert sind. Diese Methode ist nicht von der Clusterkonnektivität abhängig, wenn Sie eine Dienstverbindung erstellen. Der Zugriff auf AKS wird auf die Pipelineruntime zurückgestellt, was die folgenden Vorteile hat:

  • Der Zugriff auf einen (privaten) AKS-Cluster kann von einem selbstgehosteten Agent oder einem Skalierungsgruppen-Agent mit Sichtverbindung zum 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. Dies ist die Kubernetes-Empfehlung.
  • Auf AKS kann auch dann zugegriffen werden, wenn lokale Konten deaktiviert sind.

Häufig gestellte Fragen zu Dienstverbindungen

Ich erhalte die folgende Fehlermeldung: Es wurde kein Geheimnis gefunden, das mit dem Dienstkonto verknüpft ist. Was passiert?

Sie verwenden die Option Kubernetes-Dienstverbindung mit Azure-Abonnement. 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-Anleitung zu 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 die Kubernetes-Anleitungen steht.

Ich verwende die Kubernetes-Tasks und die Kubernetes-Dienstverbindung, aber nicht AKS. Muss ich mir Sorgen machen?

Ihre Aufgaben funktionieren weiterhin wie zuvor.

Wird der Kubernetes-Dienstverbindungstyp entfernt?

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

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

Es gibt keine Notwendigkeit, etwas zu ändern. Wenn Sie während der Erstellung die Kubernetes-Dienstverbindung und das ausgewählte Azure-Abonnement verwenden, sollten Sie den Kubernetes-Leitfaden zur Verwendung langlebiger Token beachten.

Ich erschaffe eine Kubernetes-Umgebung und habe keine Option, Dienstverbindungen zu verwenden.

Falls Sie während der Erstellung 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, steht in keinem Zusammenhang mit der Tokenerstellung. Um eine interaktive Eingabeaufforderung zu verhindern, werden wir kubelogin in einem zukünftigen Update unterstützen.

Befehlswerte

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

Jede Befehlseingabe wird einem Satz von Aufgabeneingaben zugeordnet. Die Befehle, die einer Vorgangseingabe zugeordnet sind, werden im YAML-Syntaxblock und in der Aufgabeneingabetabelle festgelegt.

Problembehandlung

Für die HelmDeploy-Aufgabe wird der Fehler „unknown flag: --wait“ ausgelöst, während „helm init --wait --client-only“ für Version 3.0.2 von Helm ausgeführt wird.

Zwischen Helm 2 und Helm 3 gibt es einige Breaking Changes. Einer davon umfasst das Entfernen von Tiller, weshalb der Befehl helm init nicht mehr unterstützt wird. Entfernen Sie den init-Befehl, wenn Sie Version 3.0 oder höher von Helm verwenden.

Wenn bei Verwendung von Helm 3 „System.debug“ auf „TRUE“ festgelegt ist und der Befehl „helm upgrade“ verwendet wird, tritt für die Pipeline ein Fehler auf, obwohl das Upgrade erfolgreich war.

Dies ist ein bekanntes Problem mit Helm 3, da einige Protokolle in stderr geschrieben werden. Der HelmDeploy-Task wird als nicht erfolgreich gekennzeichnet, wenn Protokolle in stderr geschrieben wurden oder der Exitcode nicht Null ist. Legen Sie für die Taskeingabe failOnStderr: false fest, um die für stderr ausgegebenen Protokolle zu ignorieren.

Beispiele

Azure Resource Manager

Dieses YAML-Beispiel zeigt, wie Azure Resource Manager verwendet wird, um auf den Kubernetes-Cluster zu verweisen. Dies ist für einen der Helm-Befehle und die entsprechenden Werte zu verwenden, 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

Dieses YAML-Beispiel zeigt, wie die Kubernetes-Dienstverbindung verwendet wird, um auf den Kubernetes-Cluster zu verweisen. Dies ist für einen der Helm-Befehle und die entsprechenden Werte zu verwenden, 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 Helm-Befehle: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.

In diesem YAML-Beispiel wird der Befehl Is veranschaulicht:

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

Befehl „init“

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

Befehl „install“

In diesem YAML-Beispiel wird der Befehl install veranschaulicht:

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

Befehl „package“

In diesem YAML-Beispiel wird der Befehl package veranschaulicht:

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

Befehl „upgrade“

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 „save“

In diesem YAML-Beispiel wird der Befehl save 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)

Helm-Charts packen und signieren

In diesem Abschnitt erfahren Sie, wie Sie Helm-Charts in einer Pipeline packen und signieren.

Generieren eines privat-öffentlichen Schlüsselpaars zum Signieren des Helm-Charts mithilfe von GPG

  1. Laden Sie GPG herunter.

  2. Öffnen Sie die Eingabeaufforderung im Administratormodus. Führen Sie den folgenden Befehl aus, um ein privat-öffentliches Schlüsselpaar zum Signieren des Helm-Charts mithilfe von GPG zu generieren. Beim Erstellen des Schlüssels werden Sie zur Eingabe des Benutzernamens und der E-Mail-Adresse aufgefordert. Der Name der E-Mail-Adresse wird später verwendet, um das private-öffentliche Schlüsselpaar zu benennen, das erstellt wird.

    gpg --full-generate-key
    

    Generieren von Schlüsseln

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

    Screenshot, der die Eingabe der Passphrase zeigt.

  4. Nach dem Erstellen des Schlüssels können Sie mit dem folgenden Befehl die Liste der privaten und öffentlichen Schlüssel anzeigen.

    • 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 gezeigt.

    • Für einen privaten Schlüssel
    gpg --export-secret-key 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 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 94325E18E53EDD99DD8339C3CFD9DAF0707CB788 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 im Abschnitt Sichere Dateien.

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, Klassischer Build, klassisches Release
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Setzbare Variablen Any
Agent-Version Alle unterstützten Agent-Versionen.
Aufgabenkategorie Bereitstellen