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 anKubernetes Service Connection
, um eine Verbindung mit einem beliebigen Kubernetes-Cluster mithilfekubeconfig
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 anKubernetes Service Connection
, um eine Verbindung mit einem beliebigen Kubernetes-Cluster mithilfekubeconfig
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
, init
get
, install
, login
, logout
, , ls
, , package
, rollback
, , save
upgrade
uninstall
. Standardwert. ls
.
Gibt einen Helm-Befehl an.
command
- Befehl
string
. Erforderlich. Zulässige Werte: create
, delete
, expose
, get
, install
init
, 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
, install
init
, 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/mysql
der 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-NAME
der 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
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.
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
Laden Sie GPG herunter.
Ö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
Sie werden zur Eingabe der Passphrase aufgefordert. Geben Sie den Wert an, und klicken Sie auf OK.
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
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 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 |