HelmDeploy@0 - Empaqueter et déployer des graphiques Helm v0
Utilisez cette tâche pour déployer, configurer ou mettre à jour un cluster Kubernetes dans Azure Container Service en exécutant des commandes Helm.
Syntaxe
# 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.
Entrées
connectionType
-
type de connexion
string
. Obligatoire lorsque command != logout && command != package && command != save
. Valeurs autorisées : Azure Resource Manager
, Kubernetes Service Connection
, None
. Valeur par défaut : Azure Resource Manager
.
Spécifie le type de connexion.
-
Kubernetes Service Connection
: spécifiezKubernetes Service Connection
pour vous connecter à n’importe quel cluster Kubernetes à l’aide dekubeconfig
ou du compte de service Azure. Vous permet de fournir un fichier KubeConfig, de spécifier un compte de service ou d’importer une instance AKS avec l’option abonnement Azure. L’importation d’une instance AKS avec l’option abonnement Azure nécessite l’accès au cluster Kubernetes au moment de la configuration de la connexion de service. -
Azure Resource Manager
: spécifiezAzure Resource Manager
pour vous connecter à un service Azure Kubernetes à l’aide d’Azure Service Connection. N’accède pas au cluster Kubernetes au moment de la configuration de la connexion de service. -
None
: utilisez une configuration Kubernetes précréée stockée localement.
Pour plus d’informations, consultez de connexion de service dans la section remarques suivantes.
connectionType
-
type de connexion
string
. Obligatoire lorsque command != logout && command != package
. Valeurs autorisées : Azure Resource Manager
, Kubernetes Service Connection
, None
. Valeur par défaut : Azure Resource Manager
.
Spécifie le type de connexion.
-
Kubernetes Service Connection
: spécifiezKubernetes Service Connection
pour vous connecter à n’importe quel cluster Kubernetes à l’aide dekubeconfig
ou du compte de service Azure. Vous permet de fournir un fichier KubeConfig, de spécifier un compte de service ou d’importer une instance AKS avec l’option abonnement Azure. L’importation d’une instance AKS avec l’option abonnement Azure nécessite l’accès au cluster Kubernetes au moment de la configuration de la connexion de service. -
Azure Resource Manager
: spécifiezAzure Resource Manager
pour vous connecter à un service Azure Kubernetes à l’aide d’Azure Service Connection. N’accède pas au cluster Kubernetes au moment de la configuration de la connexion de service. -
None
: utilisez une configuration Kubernetes précréée stockée localement.
Pour plus d’informations, consultez de connexion de service dans la section remarques suivantes.
azureSubscription
-
abonnement Azure
Alias d’entrée : azureSubscriptionEndpoint
.
string
. Obligatoire lorsque connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nom de la connexion de service Azure. Spécifiez un abonnement Azure doté de votre registre de conteneurs.
azureSubscription
-
abonnement Azure
Alias d’entrée : azureSubscriptionEndpoint
.
string
. Obligatoire lorsque connectionType = Azure Resource Manager && command != logout && command != package
.
Nom de la connexion de service Azure. Spécifiez un abonnement Azure doté de votre registre de conteneurs.
azureResourceGroup
-
groupe de ressources
string
. Obligatoire lorsque connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nom du groupe de ressources dans l’abonnement. Spécifiez un groupe de ressources Azure.
azureResourceGroup
-
groupe de ressources
string
. Obligatoire lorsque connectionType = Azure Resource Manager && command != logout && command != package
.
Nom du groupe de ressources dans l’abonnement. Spécifiez un groupe de ressources Azure.
kubernetesCluster
-
de cluster Kubernetes
string
. Obligatoire lorsque connectionType = Azure Resource Manager && command != logout && command != package && command != save
.
Nom du cluster AKS. Spécifiez un cluster managé Azure.
kubernetesCluster
-
de cluster Kubernetes
string
. Obligatoire lorsque connectionType = Azure Resource Manager && command != logout && command != package
.
Nom du cluster AKS. Spécifiez un cluster managé Azure.
useClusterAdmin
-
Utiliser les informations d’identification de l’administrateur de cluster
boolean
. Optionnel. Utilisez quand connectionType = Azure Resource Manager && command != logout && command != package && command != save
. Valeur par défaut : false
.
Utilise les informations d’identification de l’administrateur de cluster au lieu des informations d’identification utilisateur de cluster par défaut.
useClusterAdmin
-
Utiliser les informations d’identification de l’administrateur de cluster
boolean
. Optionnel. Utilisez quand connectionType = Azure Resource Manager && command != logout && command != package
. Valeur par défaut : false
.
Utilise les informations d’identification de l’administrateur de cluster au lieu des informations d’identification utilisateur de cluster par défaut.
kubernetesServiceConnection
-
de connexion Kubernetes Service
Alias d’entrée : kubernetesServiceEndpoint
.
string
. Obligatoire lorsque connectionType = Kubernetes Service Connection && command != logout && command != package && command != save
.
Spécifie une connexion Kubernetes Service.
kubernetesServiceConnection
-
de connexion Kubernetes Service
Alias d’entrée : kubernetesServiceEndpoint
.
string
. Obligatoire lorsque connectionType = Kubernetes Service Connection && command != logout && command != package
.
Spécifie une connexion Kubernetes Service.
namespace
-
espace de noms
string
. Optionnel. Utilisez quand command != logout && command != package && command != save
.
Espace de noms sur lequel vous exécutez les commandes kubectl
. Si elle n’est pas spécifiée, la tâche utilise l’espace de noms par défaut. Spécifiez l’espace de noms Kubernetes à utiliser. Vous pouvez spécifier l’espace de noms Tiller dans la section avancée de la tâche ou en passant l’option --tiller-namespace
en tant qu’argument.
namespace
-
espace de noms
string
. Optionnel. Utilisez quand command != logout && command != package
.
Espace de noms sur lequel vous exécutez les commandes kubectl
. Si elle n’est pas spécifiée, la tâche utilise l’espace de noms par défaut. Spécifiez l’espace de noms Kubernetes à utiliser. Vous pouvez spécifier l’espace de noms Tiller dans la section avancée de la tâche ou en passant l’option --tiller-namespace
en tant qu’argument.
abonnement Azure azureSubscriptionForACR
- pour Container Registry
Alias d’entrée : azureSubscriptionEndpointForACR
.
string
. Obligatoire lorsque command == save
.
Spécifie un abonnement Azure doté de votre Registre de conteneurs Azure.
azureResourceGroupForACR
-
groupe de ressources
string
. Obligatoire lorsque command == save
.
Spécifie un groupe de ressources Azure qui possède votre registre de conteneurs.
azureContainerRegistry
-
Azure Container Registry
string
. Obligatoire lorsque command == save
.
Spécifie un Registre de conteneurs Azure à utiliser pour envoyer (push) des graphiques Helm.
command
-
commande
string
. Obligatoire. Valeurs autorisées : create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
, uninstall
. Valeur par défaut : ls
.
Spécifie une commande Helm.
command
-
commande
string
. Obligatoire. Valeurs autorisées : create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, save
, upgrade
. Valeur par défaut : ls
.
Spécifie une commande Helm.
command
-
commande
string
. Obligatoire. Valeurs autorisées : create
, delete
, expose
, get
, init
, install
, login
, logout
, ls
, package
, rollback
, upgrade
. Valeur par défaut : ls
.
Spécifie une commande Helm.
chartType
-
type de graphique
string
. Obligatoire lorsque command == install || command == upgrade
. Valeurs autorisées : Name
, FilePath
(chemin d’accès au fichier). Valeur par défaut : Name
.
Spécifie la façon dont vous souhaitez entrer des informations de graphique. Vous pouvez fournir le nom du graphique ou du chemin d’accès au dossier/fichier du graphique.
chartName
-
nom du graphique
string
. Obligatoire lorsque chartType == Name
.
Nom de la référence de graphique à installer. Il peut s’agir d’une URL ou d’un nom de graphique. Par exemple, si le nom du graphique est stable/mysql
, la tâche s’exécute helm install stable/mysql
.
chartPath
-
chemin d’accès du graphique
string
. Obligatoire lorsque chartType == FilePath || command == package
.
Chemin d’accès au graphique à installer. Il peut s’agir d’un chemin d’accès à un graphique empaqueté ou d’un chemin d’accès à un répertoire de graphique décompressé. Par exemple, si vous spécifiez ./redis
, la tâche s’exécute helm install ./redis
. Si vous consommez un graphique publié en tant qu’artefact, le chemin d’accès sera $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME
.
chartVersion
-
version
Alias d’entrée : version
.
string
. Optionnel. Utilisez quand command == package || command == install || command == upgrade
.
Spécifie la version exacte du graphique à installer. Si vous ne spécifiez pas la version du graphique, la tâche installe la dernière version. Définissez la version sur le graphique sur cette version semver.
chartVersion
-
version
Alias d’entrée : version
.
string
. Optionnel. Utilisez quand command == package
.
Spécifie la version exacte du graphique à installer. Si vous ne spécifiez pas la version du graphique, la tâche installe la dernière version. Définissez la version sur le graphique sur cette version semver.
releaseName
-
nom de publication
string
. Optionnel. Utilisez quand command == install || command == upgrade
.
Nom de la mise en production. Si vous ne spécifiez pas le nom de mise en production, la tâche en génère automatiquement une pour vous. L’entrée releaseName
n’est valide que pour les commandes install
et upgrade
.
overrideValues
-
définir des valeurs
string
. Optionnel. Utilisez quand command == install || command == upgrade
.
Spécifie des valeurs sur la ligne de commande. Cette entrée peut spécifier plusieurs valeurs ou distinctes avec des virgules : key1=val1,key2=val2
.
Vous pouvez également spécifier plusieurs valeurs en les limitant avec une nouvelle ligne, comme suit :
- key1=val1
- key2=val2
Si vous avez une valeur qui contient de nouvelles lignes, utilisez l’option valueFile
. Sinon, la tâche traite la nouvelle ligne comme délimiteur. La tâche construit la commande Helm à l’aide de ces valeurs définies. Par exemple, vous pouvez définir la valeur à l’aide d’une commande comme suit : helm install --set key1=val1 ./redis
.
valueFile
-
fichier de valeur
string
. Optionnel. Utilisez quand command == install || command == upgrade
.
Spécifie des valeurs dans un fichier YAML ou une URL. Par exemple, spécifier myvalues.yaml
résultats dans helm install --values=myvals.yaml
.
destination
-
de destination
string
. Optionnel. Utilisez quand command == package
. Valeur par défaut : $(Build.ArtifactStagingDirectory)
.
Spécifie des valeurs dans un fichier YAML ou une URL.
canaryimage
-
Utiliser la version d’image canary.
boolean
. Optionnel. Utilisez quand command == init
. Valeur par défaut : false
.
Spécifie l’image canary Tiller. Utilisez la dernière version préliminaire de Tiller.
upgradetiller
-
mettre à niveau le Tiller
boolean
. Optionnel. Utilisez quand command == init
. Valeur par défaut : true
.
Si true
, cette entrée met à niveau Tiller si Tiller est déjà installé.
updatedependency
-
mettre à jour le de dépendance
boolean
. Optionnel. Utilisez quand command == install || command == package
. Valeur par défaut : false
.
Si true
, cette entrée met à jour une mise à jour de dépendance Helm avant d’installer le graphique. Met à jour les dépendances de requirements.yaml
vers le répertoire charts/
avant l’empaquetage.
save
-
Enregistrer
boolean
. Optionnel. Utilisez quand command == package
. Valeur par défaut : true
.
Enregistre le graphique empaqueté dans le référentiel de graphiques local lorsqu’il est défini sur true
.
install
-
Installer si la version n’est pas présente.
boolean
. Optionnel. Utilisez quand command == upgrade
. Valeur par défaut : true
.
Si une version de ce nom n’existe pas encore, cette entrée exécute une installation.
recreate
-
recréer des pods.
boolean
. Optionnel. Utilisez quand command == upgrade
. Valeur par défaut : false
.
Effectue le redémarrage des pods pour la ressource, le cas échéant.
resetValues
-
Réinitialiser les valeurs.
boolean
. Optionnel. Utilisez quand command == upgrade
. Valeur par défaut : false
.
Réinitialise les valeurs aux valeurs intégrées au graphique.
force
-
Force
boolean
. Optionnel. Utilisez quand command == upgrade
. Valeur par défaut : false
.
Force une mise à jour de ressource par le biais d’une action de suppression ou de recréation, si nécessaire.
waitForExecution
-
d’attente
boolean
. Optionnel. Utilisez quand command == init || command == install || command == upgrade
. Valeur par défaut : true
.
Bloque l’action jusqu’à ce que l’exécution de la commande se termine.
arguments
-
arguments
string
. Optionnel. Utilisez quand command != login && command != logout
.
Options de commande Helm.
enableTls
-
activer le TLS
boolean
. Optionnel. Utilisez quand command != login && command != logout && command != package && command != save
. Valeur par défaut : false
.
Active l’utilisation de SSL entre Helm et Tiller.
enableTls
-
activer le TLS
boolean
. Optionnel. Utilisez quand command != login && command != logout && command != package
. Valeur par défaut : false
.
Active l’utilisation de SSL entre Helm et Tiller.
caCert
-
certificat d’autorité de certification
string
. Obligatoire lorsque enableTls == true && command != login && command != logout && command != package && command != save
.
Certificat d’autorité de certification utilisé pour émettre un certificat pour le client Tiller et Helm.
caCert
-
certificat d’autorité de certification
string
. Obligatoire lorsque enableTls == true && command != login && command != logout && command != package
.
Certificat d’autorité de certification utilisé pour émettre un certificat pour le client Tiller et Helm.
certificate
-
certificat
string
. Obligatoire lorsque enableTls == true && command != login && command != logout && command != package && command != save
.
Spécifiez le certificat Tiller ou le certificat client Helm.
certificate
-
certificat
string
. Obligatoire lorsque enableTls == true && command != login && command != logout && command != package
.
Spécifiez le certificat Tiller ou le certificat client Helm.
privatekey
-
clé
string
. Obligatoire lorsque enableTls == true && command != login && command != logout && command != package && command != save
.
Spécifiez la clé Tiller ou la clé client Helm.
privatekey
-
clé
string
. Obligatoire lorsque enableTls == true && command != login && command != logout && command != package
.
Spécifiez la clé Tiller ou la clé client Helm.
tillernamespace
-
'espace de noms Tiller
string
. Optionnel. Utilisez quand command != login && command != logout && command != package && command != save
.
Spécifiez l’espace de noms Kubernetes de Tiller.
tillernamespace
-
'espace de noms Tiller
string
. Optionnel. Utilisez quand command != login && command != logout && command != package
.
Spécifiez l’espace de noms Kubernetes de Tiller.
failOnStderr
-
Échec sur les d’erreur standard
boolean
. Optionnel. Utilisez quand command != login && command != logout && command != package && command != save
. Valeur par défaut : false
.
Si cette entrée est true
, cette tâche échoue si des erreurs sont écrites dans le pipeline d’erreurs ou si des données sont écrites dans le flux d’erreur standard. Sinon, la tâche s’appuie sur le code de sortie pour déterminer l’échec.
failOnStderr
-
Échec sur les d’erreur standard
boolean
. Optionnel. Utilisez quand command != login && command != logout && command != package
. Valeur par défaut : true
.
Si cette entrée est true
, cette tâche échoue si des erreurs sont écrites dans le pipeline d’erreurs ou si des données sont écrites dans le flux d’erreur standard. Sinon, la tâche s’appuie sur le code de sortie pour déterminer l’échec.
publishPipelineMetadata
-
Publier des métadonnées de pipeline
boolean
. Optionnel. Utilisez quand command != login && command != logout && command != package && command != save
. Valeur par défaut : true
.
Si cette entrée est true
, la tâche collecte et publie les métadonnées de déploiement.
nom de graphique chartNameForACR
- pour azure Container Registry
string
. Obligatoire lorsque command == save
.
Nom du graphique dans Azure Container Registry.
chemin d’accès au graphique chartPathForACR
- d’Azure Container Registry
string
. Obligatoire lorsque command == save
.
Chemin d’accès du fichier au répertoire du graphique dans Azure Container Registry.
Options de contrôle de la tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Cette tâche définit les variables de sortie suivantes, que vous pouvez utiliser en aval, les travaux et les étapes.
helmExitCode
Code de sortie émis à partir de l’exécution de la commande Helm spécifiée.
helmOutput
La sortie émise à partir de l’exécution de la commande Helm spécifiée.
Remarques
Utilisez HelmDeploy@0 pour déployer, configurer ou mettre à jour un cluster Kubernetes dans Azure Container Service en exécutant des commandes Helm. Helm est un outil qui simplifie le déploiement et la gestion d’applications Kubernetes à l’aide d’un format d’empaquetage appelé graphiques.
Vous pouvez définir, version, partager, installer et mettre à niveau même l’application Kubernetes la plus complexe à l’aide de Helm.
- Helm vous aide à combiner plusieurs manifestes Kubernetes (yaml) tels que le service, les déploiements, les configmaps et bien plus encore dans une seule unité appelée Helm Charts. Vous n’avez pas besoin d’inventer ou d’utiliser une tokenisation ou un outil de création de modèles.
- Helm Charts vous aide à gérer les dépendances d’application et à déployer ainsi que la restauration en tant qu’unité. Ils sont également faciles à créer, version, publier et partager avec d’autres équipes partenaires.
Azure Pipelines prend en charge les graphiques Helm intégrés :
- La tâche du programme d’installation Helm Tool peut être utilisée pour installer la version correcte de Helm sur les agents.
- Le package Helm et la tâche de déploiement peuvent être utilisés pour empaqueter l’application et la déployer sur un cluster Kubernetes. Vous pouvez utiliser la tâche pour installer ou mettre à jour Tiller vers un espace de noms Kubernetes, pour vous connecter en toute sécurité à Tiller via TLS pour déployer des graphiques, ou pour exécuter n’importe quelle commande Helm telle que lint.
- La tâche Helm prend en charge la connexion à un service Azure Kubernetes à l’aide d’une connexion de service Azure. Vous pouvez vous connecter à n’importe quel cluster Kubernetes à l’aide de kubeconfig ou d’un compte de service.
- Les déploiements Helm peuvent être complétés à l’aide de la tâche Kubectl ; par exemple, créer/mettre à jour, imagepullsecret et autres.
Connexion de service
HelmDeploy@0 fonctionne avec deux types de connexion de service : Azure Resource Manager et de connexion Kubernetes Service . Consultez Exemples pour obtenir des exemples sur la configuration de ces deux types de connexion.
Remarque
Une connexion de service n’est pas nécessaire si une ressource d’environnement qui pointe vers un cluster Kubernetes a déjà été spécifiée à l’étape du pipeline.
Considérations relatives à la connexion Kubernetes Service lors de l’accès à AKS
Vous pouvez créer une connexion de service Kubernetes avec l’une des options suivantes.
- KubeConfig
- Compte de service
- Abonnement Azure
Lorsque vous sélectionnez l’option abonnement Azure, Kubernetes doit être accessible à Azure DevOps au moment de la configuration de la connexion au service. Il peut y avoir différentes raisons pour lesquelles une connexion de service ne peut pas être créée, par exemple, vous créé un cluster privé ou le cluster a comptes locaux désactivés. Dans ce cas, Azure DevOps ne peut pas se connecter à votre cluster au moment de la configuration de la connexion de service et vous verrez un bloqué charger des espaces de noms écran.
À compter de Kubernetes 1.24, les jetons de longue durée ne sont plus créés par défaut. Kubernetes recommande de ne pas utiliser de jetons de longue durée. Par conséquent, les tâches utilisant une connexion de service Kubernetes créée avec l’option abonnement Azure n’ont pas accès au jeton permanent requis pour s’authentifier et ne peuvent pas accéder à votre cluster Kubernetes. Cela entraîne également le gel boîte de dialogue Chargement des espaces de noms.
Utiliser la connexion de service Azure Resource Manager pour accéder à AKS
Pour les clients AKS, le type de connexion de service Azure Resource Manager fournit la meilleure méthode pour se connecter à un cluster privé ou un cluster dont les comptes locaux sont désactivés. Cette méthode ne dépend pas de la connectivité du cluster au moment où vous créez une connexion de service. L’accès à AKS est différé au runtime de pipeline, ce qui présente les avantages suivants :
- L’accès à un cluster AKS (privé) peut être effectué à partir d’un agent auto-hébergé ou de groupe identique en ligne de vue sur le cluster.
- Un jeton est créé pour chaque tâche qui utilise une connexion de service Azure Resource Manager. Cela garantit que vous vous connectez à Kubernetes avec un jeton de courte durée, qui est la recommandation Kubernetes.
- AKS est accessible même lorsque les comptes locaux sont désactivés.
FAQ sur la connexion de service
Je reçois le message d’erreur suivant : Impossible de trouver un secret associé au compte de service. Que se passe-t-il?
Vous utilisez la connexion de service Kubernetes avec l’option Abonnement Azure. Nous mettons à jour cette méthode pour créer des jetons de longue durée. Cela devrait être disponible mi-mai. Toutefois, il est recommandé de commencer à utiliser le type de connexion de service Azure et de ne pas utiliser de jetons de longue durée conformément aux instructions de Kubernetes .
J’utilise AKS et ne souhaite rien changer, puis-je continuer à utiliser des tâches avec la connexion du service Kubernetes ?
Nous mettons à jour cette méthode pour créer des jetons de longue durée. Cela devrait être disponible mi-mai. Toutefois, sachez que cette approche est contre conseils Kubernetes.
J’utilise les tâches Kubernetes et la connexion de service Kubernetes, mais pas AKS. Dois-je m’inquiéter ?
Vous continuerez à travailler comme avant.
Le type de connexion du service Kubernetes sera-t-il supprimé ?
Nos tâches Kubernetes fonctionnent avec n’importe quel cluster Kubernetes, quel que soit leur emplacement d’exécution. La connexion du service Kubernetes continuera d’exister.
Je suis un client AKS et tout fonctionne correctement, dois-je agir ?
Il n’est pas nécessaire de changer quoi que ce soit. Si vous utilisez la connexion de service Kubernetes et que vous avez sélectionné l’abonnement Azure lors de la création, vous devez connaître les conseils Kubernetes sur l’utilisation de jetons de longue durée.
Je crée un environnement Kubernetes et n’ai pas la possibilité d’utiliser des connexions de service
Si vous ne pouvez pas accéder à votre AKS pendant la création de l’environnement, vous pouvez utiliser un environnement vide et définir l’entrée connectionType
sur une connexion de service Azure Resource Manager.
J’ai configuré AKS avec Azure Active Directory RBAC et mon pipeline ne fonctionne pas. Ces mises à jour seront-elles résolues ?
L’accès à Kubernetes quand AAD RBAC est activé n’est pas lié à la création de jetons. Pour empêcher une invite interactive, nous allons prendre en charge kubelogin dans une prochaine mise à jour.
Valeurs de commande
L’entrée de commande accepte l’une des commandes helm suivantes: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Des exemples sont fournis dans la section Exemples.
Chaque entrée de commande est mappée à un ensemble d’entrées de tâche. Les commandes qui mappent à une entrée de tâche sont désignées dans le bloc de syntaxe YAML et dans la table des entrées de tâche
Résolution des problèmes
La tâche HelmDeploy lève l’erreur « indicateur inconnu : --wait » lors de l’exécution de « helm init --wait --client-only » sur Helm 3.0.2 version.
Il existe des changements cassants entre Helm 2 et Helm 3. L’une d’entre elles inclut la suppression du tiller, et par conséquent helm init
commande n’est plus prise en charge. Supprimer la commande : init lorsque vous utilisez les versions de Helm 3.0+.
Lorsque vous utilisez Helm 3, si System.debug a la valeur true et que la mise à niveau Helm est utilisée, le pipeline échoue même si la mise à niveau a réussi.
Il s’agit d’un problème connu avec Helm 3, car il écrit certains journaux dans stderr. La tâche Helm Deploy est marquée comme ayant échoué s’il existe des journaux d’activité pour stderr ou le code de sortie est différent de zéro. Définissez l’entrée de tâche failOnStderr : false pour ignorer les journaux imprimés sur stderr.
Exemples
Azure Resource Manager
Cet exemple YAML montre comment Azure Resource Manager est utilisé pour faire référence au cluster Kubernetes. Cela est utilisé avec l’une des commandes helm et les valeurs appropriées requises pour la commande :
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)
Connexion Kubernetes Service
Cet exemple YAML montre comment la connexion de service Kubernetes est utilisée pour faire référence au cluster Kubernetes. Cela est utilisé avec l’une des commandes helm et les valeurs appropriées requises pour la commande :
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Commandes
L’entrée de commande accepte l’une des commandes helm suivantes: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.
Cet exemple YAML illustre la commande ls :
- task: HelmDeploy@0
displayName: Helm list
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: ls
arguments: --all
commande init
Cet exemple YAML illustre la commande init :
- task: HelmDeploy@0
displayName: Helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
upgradetiller: true
waitForExecution: true
arguments: --client-only
commande d'installation
Cet exemple YAML illustre la commande installer :
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
commande package
Cet exemple YAML illustre la commande package :
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
Commande de mise à niveau
Cet exemple YAML illustre la commande de mise à niveau :
- 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
Enregistrer la commande
Cet exemple YAML illustre la commande enregistrer :
- 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)
Empaqueter et signer des graphiques Helm
Dans cette section, vous allez apprendre à empaqueter et signer des graphiques Helm dans un pipeline.
Générer une paire de clés publiques privées pour signer le graphique Helm à l’aide de GPG
Lancez l’invite de commandes en mode administrateur. Exécutez la commande suivante pour générer une paire de clés publique privée pour signer le graphique Helm à l’aide de gpg. Lors de la création de la clé, vous êtes invité à entrer le nom d’utilisateur et l’adresse e-mail. L'« adresse e-mail de nom » est utilisée ultérieurement pour nommer la paire de clés publique privée créée.
gpg --full-generate-key
de clé
Vous serez invité à entrer la phrase secrète. Donnez la valeur, puis cliquez sur OK.
Après avoir créé la clé, vous pouvez voir la liste des clés qui contiennent des clés privées et publiques à l’aide de la commande suivante.
Pour afficher la liste des clés privées
gpg --list-secret-keys
de clés privées
Pour afficher la liste des clés publiques
gpg --list-keys
Stockez les clés privées et publiques dans 2 fichiers différents avec l’extension gpg comme indiqué ci-dessous.
- Pour une clé privée
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpg
Vous verrez le fichier privatekeys.gpg exporté vers le chemin d’accès mentionné ci-dessus.
- Pour une clé publique
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpg
Vous verrez le fichier publickey.gpg exporté vers le chemin d’accès mentionné ci-dessus.
Dans Azure DevOps, enregistrez le fichier privatekey.gpg dans la bibliothèque des fichiers sécurisés section.
Exemple :
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)
Spécifications
Besoin | Description |
---|---|
Types de pipelines | YAML, Build Classique, Version Classique |
Exécutions sur | Agent, DeploymentGroup |
demandes | Aucun |
fonctionnalités de | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
restrictions de commande | N'importe quel |
variables settables | N'importe quel |
Version de l’agent | Toutes les versions de l’agent prises en charge. |
Catégorie de tâche | Déployer |