Kubernetes@1 - Tâche Kubectl v1

Déployez, configurez et mettez à jour un cluster Kubernetes dans Azure Container Service en exécutant des commandes kubectl.

Déployez, configurez et mettez à jour votre cluster Kubernetes dans Azure Container Service en exécutant des commandes kubectl.

Syntax

# Kubectl v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml' | 'none'. Output format. Default: json.
# Kubectl v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Output format. Default: json.
# Deploy to Kubernetes v1
# Deploy, configure, update a Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Kubernetes Service Connection' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Kubernetes Service Connection.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #useClusterAdmin: false # boolean. Optional. Use when connectionType = Azure Resource Manager && command != logout. Use cluster admin credentials. Default: false.
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    #command: # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Command. 
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration. Default: false.
    #configurationType: 'configuration' # 'configuration' | 'inline'. Optional. Use when useConfigurationFile = true. Configuration type. Default: configuration.
    configuration: # string. Required when configurationType = configuration. File path. 
    #inline: # string. Required when configurationType = inline. Inline configuration. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Kubectl. Default: version.
    #versionSpec: '1.13.2' # string. Optional. Use when versionOrLocation = version. Version spec. Default: 1.13.2.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Output format. Default: json.
# Deploy to Kubernetes v1
# Deploy, configure, update your Kubernetes cluster in Azure Container Service by running kubectl commands.
- task: Kubernetes@1
  inputs:
  # Kubernetes Cluster
    #connectionType: 'Azure Resource Manager' # 'Azure Resource Manager' | 'Kubernetes Service Connection' | 'None'. Required when command != logout. Service connection type. Default: Azure Resource Manager.
    #kubernetesServiceEndpoint: # string. Required when connectionType = Kubernetes Service Connection && command != logout. Kubernetes service connection. 
    #azureSubscriptionEndpoint: # string. Required when connectionType = Azure Resource Manager && command != logout. Azure subscription. 
    #azureResourceGroup: # string. Required when connectionType = Azure Resource Manager && command != logout. Resource group. 
    #kubernetesCluster: # string. Required when connectionType = Azure Resource Manager && command != logout. Kubernetes cluster. 
    #namespace: # string. Optional. Use when command != logout. Namespace. 
  # Commands
    command: 'apply' # 'apply' | 'create' | 'delete' | 'exec' | 'expose' | 'get' | 'login' | 'logout' | 'logs' | 'run' | 'set' | 'top'. Required. Command. Default: apply.
    #useConfigurationFile: false # boolean. Optional. Use when command != login && command != logout. Use configuration files. Default: false.
    #configuration: # string. Required when useConfigurationFile = true. Configuration file. 
    #arguments: # string. Optional. Use when command != login && command != logout. Arguments. 
  # Secrets
    #secretType: 'dockerRegistry' # 'dockerRegistry' | 'generic'. Required when command != login && command != logout. Type of secret. Default: dockerRegistry.
    #secretArguments: # string. Optional. Use when secretType = generic && command != login && command != logout. Arguments. 
    #containerRegistryType: 'Azure Container Registry' # 'Azure Container Registry' | 'Container Registry'. Required when secretType = dockerRegistry && command != login && command != logout. Container registry type. Default: Azure Container Registry.
    #dockerRegistryEndpoint: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout. Docker registry service connection. 
    #azureSubscriptionEndpointForSecrets: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure subscription. 
    #azureContainerRegistry: # string. Optional. Use when secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout. Azure container registry. 
    #secretName: # string. Optional. Use when command != login && command != logout. Secret name. 
    #forceUpdate: true # boolean. Optional. Use when command != login && command != logout. Force update secret. Default: true.
  # ConfigMaps
    #configMapName: # string. Optional. Use when command != login && command != logout. ConfigMap name. 
    #forceUpdateConfigMap: false # boolean. Optional. Use when command != login && command != logout. Force update configmap. Default: false.
    #useConfigMapFile: false # boolean. Optional. Use when command != login && command != logout. Use file. Default: false.
    #configMapFile: # string. Required when useConfigMapFile = true && command != login && command != logout. ConfigMap file. 
    #configMapArguments: # string. Optional. Use when useConfigMapFile = false && command != login && command != logout. Arguments. 
  # Advanced
    #versionOrLocation: 'version' # 'version' | 'location'. Optional. Use when command != login && command != logout. Kubectl. Default: version.
    #versionSpec: '1.7.0' # string. Optional. Use when versionOrLocation = version && command != login && command != logout. Version spec. Default: 1.7.0.
    #checkLatest: false # boolean. Optional. Use when versionOrLocation = version && command != login && command != logout. Check for latest version. Default: false.
    #specifyLocation: # string. Required when versionOrLocation = location && command != login && command != logout. Path to kubectl. 
    #workingDirectory: '$(System.DefaultWorkingDirectory)' # string. Alias: cwd. Optional. Use when command != login && command != logout. Working directory. Default: $(System.DefaultWorkingDirectory).
    #outputFormat: 'json' # 'json' | 'yaml'. Optional. Use when command != login && command != logout. Output format. Default: json.

Entrées

connectionType - Type de connexion de service
string. Nécessaire lorsque command != logout. Valeurs autorisées : Azure Resource Manager, Kubernetes Service Connection, None. Valeur par défaut : Kubernetes Service Connection.

Spécifie le type de connexion de service : Azure Resource Manager lors de l’utilisation de Azure Kubernetes Service ou d’une connexion Kubernetes Service pour tout autre cluster.

  • Kubernetes Service Connection- Vous permet de fournir un fichier KubeConfig, de spécifier un compte de service ou d’importer un instance AKS avec l’option Abonnement Azure. L’importation d’un instance AKS avec l’option Abonnement Azure nécessite un accès au cluster Kubernetes au moment de la configuration de la connexion de service.
  • Azure Resource Manager- Vous permet de sélectionner un instance AKS. 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 Connexion au service dans la section Remarques suivante.


connectionType - Type de connexion de service
string. Nécessaire lorsque command != logout. Valeurs autorisées : Azure Resource Manager, Kubernetes Service Connection, None. Valeur par défaut : Azure Resource Manager.

Spécifie le type de connexion de service : Azure Resource Manager lors de l’utilisation de Azure Kubernetes Service ou d’une connexion Kubernetes Service pour tout autre cluster.


kubernetesServiceEndpoint - Connexion au service Kubernetes
string. Nécessaire lorsque connectionType = Kubernetes Service Connection && command != logout.

Sélectionnez une connexion de service Kubernetes.


azureSubscriptionEndpoint - Abonnement Azure
string. Nécessaire lorsque connectionType = Azure Resource Manager && command != logout.

Spécifie l’abonnement Azure Resource Manager, qui contient le Azure Container Registry.

Notes

Pour configurer une nouvelle connexion de service, spécifiez l’abonnement Azure dans la liste, puis cliquez sur Authorize. Si votre abonnement n’est pas répertorié ou si vous souhaitez utiliser un principal de service existant, vous pouvez configurer une connexion de service Azure à l’aide des Add boutons ou Manage .


azureResourceGroup - Groupe de ressources
string. Nécessaire lorsque connectionType = Azure Resource Manager && command != logout.

Sélectionnez un groupe de ressources Azure.


kubernetesCluster - Cluster Kubernetes
string. Nécessaire lorsque connectionType = Azure Resource Manager && command != logout.

Sélectionnez un cluster managé Azure.


useClusterAdmin - Utiliser les informations d’identification de l’administrateur de cluster
boolean. facultatif. Utilisez quand connectionType = Azure Resource Manager && command != logout. Valeur par défaut : false.

Utilisez les informations d’identification de l’administrateur de cluster au lieu des informations d’identification utilisateur du cluster par défaut.


namespace - Noms
string. facultatif. Utilisez quand command != logout.

Définissez l’espace de noms pour la commande kubectl à l’aide de l’indicateur –namespace. Si l’espace de noms n’est pas fourni, les commandes s’exécutent dans l’espace de noms par défaut.


command - Commande
string. Valeurs autorisées : apply, create, execdelete, expose, get, login, logout, logs, run, settop.

Sélectionnez ou spécifiez une commande kubectl à exécuter. La liste des valeurs autorisées fournit des choix courants pour faciliter la sélection lors de l’utilisation de la tâche assistant, mais vous pouvez spécifier d’autres commandes kubectl telles que scale. Utilisez l’entrée arguments pour spécifier des paramètres supplémentaires à la commande spécifiée kubectl .


command - Commande
string. Obligatoire. Valeurs autorisées : apply, create, execdelete, expose, get, login, logout, logs, run, settop. Valeur par défaut : apply.

Sélectionnez ou spécifiez une commande kubectl à exécuter.


useConfigurationFile - Utiliser la configuration
boolean. facultatif. Utilisez quand command != login && command != logout. Valeur par défaut : false.

Spécifie la configuration Kubernetes à utiliser avec la kubectl commande . Le script inline, le nom de fichier, le répertoire ou l’URL des fichiers de configuration Kubernetes peuvent être fournis.


useConfigurationFile - Utiliser des fichiers de configuration
boolean. facultatif. Utilisez quand command != login && command != logout. Valeur par défaut : false.

Spécifie la configuration Kubernetes à utiliser avec la kubectl commande . Le script inline, le nom de fichier, le répertoire ou l’URL des fichiers de configuration Kubernetes peuvent être fournis.


configurationType - Type de configuration
string. facultatif. Utilisez quand useConfigurationFile = true. Valeurs autorisées : configuration (chemin d’accès au fichier), inline (configuration inline). Valeur par défaut : configuration.

Spécifie le type de configuration Kubernetes pour la kubectl commande . Il peut s’agir d’un chemin d’accès de fichier ou d’un script inline.


configuration - Chemin d’accès au fichier
string. Nécessaire lorsque configurationType = configuration.

Spécifie le nom de fichier, le répertoire ou l’URL des fichiers de configuration Kubernetes utilisés avec les commandes.


configuration - Fichier de configuration
string. Nécessaire lorsque useConfigurationFile = true.

Spécifie le nom de fichier, le répertoire ou l’URL des fichiers de configuration Kubernetes utilisés avec les commandes.


inline - Configuration inline
string. Nécessaire lorsque configurationType = inline.

Spécifie la configuration de déploiement inline pour la kubectl commande .


arguments - Arguments
string. facultatif. Utilisez quand command != login && command != logout.

Arguments de la commande kubectl spécifiée.


secretType - Type de secret
string. Nécessaire lorsque command != login && command != logout. Valeurs autorisées : dockerRegistry, generic. Valeur par défaut : dockerRegistry.

Créer/mettre à jour une image générique ou dockerpullsecret. Sélectionnez dockerRegistry pour créer/mettre à jour l’imagepullsecret du registre sélectionné. Une imagePullSecret est un moyen de passer un secret qui contient un mot de passe de registre de conteneurs au Kubelet afin qu’il puisse extraire une image privée pour le compte de votre pod.


secretArguments - Arguments
string. facultatif. Utilisez quand secretType = generic && command != login && command != logout.

Spécifie les clés et les valeurs littérales à insérer dans le secret. Par exemple, --from-literal=key1=value1ou --from-literal=key2="top secret".


containerRegistryType - Type de registre de conteneurs
string. Nécessaire lorsque secretType = dockerRegistry && command != login && command != logout. Valeurs autorisées : Azure Container Registry, Container Registry. Valeur par défaut : Azure Container Registry.

Sélectionnez un type de Registre de conteneurs. La tâche peut utiliser les détails de l’abonnement Azure pour utiliser un registre de conteneurs Azure. D’autres registres de conteneurs standard sont également pris en charge.


dockerRegistryEndpoint - Connexion au service du Registre Docker
string. facultatif. Utilisez quand secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout.

Sélectionnez une connexion au service du Registre Docker. Obligatoire pour les commandes qui doivent s’authentifier sur un registre.


azureSubscriptionEndpointForSecrets - Abonnement Azure
string. facultatif. Utilisez quand secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Spécifie l’abonnement Azure Resource Manager, qui contient Azure Container Registry.

Notes

Pour configurer une nouvelle connexion de service, sélectionnez l’abonnement Azure dans la liste, puis cliquez sur Authorize. Si votre abonnement n’est pas répertorié ou si vous souhaitez utiliser un principal de service existant, vous pouvez configurer une connexion de service Azure à l’aide des Add boutons ou Manage .


azureContainerRegistry - Registre de conteneurs Azure
string. facultatif. Utilisez quand secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout.

Spécifie un Azure Container Registry qui est utilisé pour extraire des images conteneur et déployer des applications sur le cluster Kubernetes. Obligatoire pour les commandes qui doivent s’authentifier sur un registre.


secretName - Nom du secret
string. facultatif. Utilisez quand command != login && command != logout.

Nom du secret. Vous pouvez utiliser ce nom secret dans le fichier de configuration Kubernetes YAML.


forceUpdate - Forcer la mise à jour secrète
boolean. facultatif. Utilisez quand command != login && command != logout. Valeur par défaut : true.

Supprimez le secret s’il existe et créez-en un avec des valeurs mises à jour.


configMapName - Nom configMap
string. facultatif. Utilisez quand command != login && command != logout.

ConfigMaps vous permet de dissocier les artefacts de configuration du contenu de l’image pour garder les applications conteneurisées portables.


forceUpdateConfigMap - Forcer la mise à jour du configmap
boolean. facultatif. Utilisez quand command != login && command != logout. Valeur par défaut : false.

Supprimez le configmap s’il existe et créez-en un avec des valeurs mises à jour.


useConfigMapFile - Utiliser le fichier
boolean. facultatif. Utilisez quand command != login && command != logout. Valeur par défaut : false.

Crée un ConfigMap à partir d’un fichier individuel ou de plusieurs fichiers en spécifiant un répertoire.


configMapFile - Fichier ConfigMap
string. Nécessaire lorsque useConfigMapFile = true && command != login && command != logout.

Spécifiez un fichier ou un répertoire qui contient les configMaps.


configMapArguments - Arguments
string. facultatif. Utilisez quand useConfigMapFile = false && command != login && command != logout.

Spécifie les clés et les valeurs littérales à insérer dans configMap. Par exemple, --from-literal=key1=value1 ou --from-literal=key2="top secret".


versionOrLocation - Kubectl
string. Valeurs autorisées : version, location (Spécifier l’emplacement). Valeur par défaut : version.

kubectl est une interface de ligne de commande permettant d’exécuter des commandes sur des clusters Kubernetes.


versionOrLocation - Kubectl
string. facultatif. Utilisez quand command != login && command != logout. Valeurs autorisées : version, location (Spécifier l’emplacement). Valeur par défaut : version.

kubectl est une interface de ligne de commande permettant d’exécuter des commandes sur des clusters Kubernetes.


versionSpec - Spécification de version
string. facultatif. Utilisez quand versionOrLocation = version. Valeur par défaut : 1.13.2.

Spécifie la spec de version de la version à obtenir. Exemples : 1.7.0, 1.x.0, 4.x.0, 6.10.0, >=6.10.0.


versionSpec - Spécification de version
string. facultatif. Utilisez quand versionOrLocation = version && command != login && command != logout. Valeur par défaut : 1.7.0.

-18-2 Spécifie la spécification de version de la version à obtenir. Exemples : 1.7.0, 1.x.0, 4.x.0, 6.10.0, >=6.10.0.


checkLatest - Rechercher la dernière version
boolean. facultatif. Utilisez quand versionOrLocation = version. Valeur par défaut : false.

Vérifie toujours en ligne la dernière version disponible (stable.txt) qui satisfait à la spécification de version. Ceci est généralement faux, sauf si vous avez un scénario spécifique pour toujours obtenir la dernière version. Cela entraîne des coûts de téléchargement lorsqu’il n’est potentiellement pas nécessaire, en particulier avec le pool de build hébergé.


checkLatest - Rechercher la dernière version
boolean. facultatif. Utilisez quand versionOrLocation = version && command != login && command != logout. Valeur par défaut : false.

Vérifie toujours en ligne la dernière version disponible (stable.txt) qui satisfait à la spécification de version. Ceci est généralement faux, sauf si vous avez un scénario spécifique pour toujours obtenir la dernière version. Cela entraîne des coûts de téléchargement lorsqu’il n’est potentiellement pas nécessaire, en particulier avec le pool de build hébergé.


specifyLocation - Chemin d’accès à kubectl
string. Nécessaire lorsque versionOrLocation = location.

Spécifie le chemin d’accès complet au kubectl.exe fichier.


specifyLocation - Chemin d’accès à kubectl
string. Nécessaire lorsque versionOrLocation = location && command != login && command != logout.

Spécifie le chemin d’accès complet au kubectl.exe fichier.


workingDirectory - Répertoire de travail
Alias d’entrée : cwd. string. Valeur par défaut : $(System.DefaultWorkingDirectory).

Répertoire de travail pour la commande Kubectl.


workingDirectory - Répertoire de travail
Alias d’entrée : cwd. string. facultatif. Utilisez quand command != login && command != logout. Valeur par défaut : $(System.DefaultWorkingDirectory).

Répertoire de travail pour la commande Kubectl.


outputFormat - Format de sortie
string. Valeurs autorisées : json, yaml, none. Valeur par défaut : json.

Format de sortie.


outputFormat - Format de sortie
string. Valeurs autorisées : json, yaml. Valeur par défaut : json.

Format de sortie.


outputFormat - Format de sortie
string. facultatif. Utilisez quand command != login && command != logout. Valeurs autorisées : json, yaml. Valeur par défaut : json.

Format de sortie.


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 dans les étapes, les travaux et les étapes en aval.

KubectlOutput
Stocke la sortie de la kubectl commande.

Remarques

Nouveautés de la version 1.0.

  • Ajout d’une nouvelle entrée de type de connexion de service pour faciliter la sélection des clusters Azure AKS.
  • Remplacez l’entrée de variable de sortie par une section de variables de sortie que nous avons ajoutée dans toutes les tâches.

Utilisez cette tâche pour déployer, configurer ou mettre à jour un cluster Kubernetes en exécutant des commandes kubectl.

Connexion du service

La tâche fonctionne avec deux types de connexion de service : Azure Resource Manager et Kubernetes Service Connection, décrits ci-dessous.

Azure Resource Manager

Azure Resource Manager Définissez connectionType sur et spécifiez un azureSubscriptionEndpoint pour utiliser une connexion de service Azure Resource Manager.

Cet exemple YAML montre comment Azure Resource Manager est utilisé pour faire référence au cluster Kubernetes. Il s’agit d’utiliser l’une des commandes kubectl et les valeurs appropriées requises par la commande.

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

steps:
- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    useClusterAdmin: $(useClusterAdmin)

Connexion de service Kubernetes

Kubernetes Service Connection Définissez connectionType sur et spécifiez un kubernetesServiceEndpoint pour utiliser une connexion de service Kubernetes.

Cet exemple YAML montre comment une connexion Kubernetes Service est utilisée pour faire référence au cluster Kubernetes. Il s’agit d’utiliser l’une des commandes kubectl et les valeurs appropriées requises par la commande.

- task: Kubernetes@1
  displayName: kubectl apply
  inputs:
    connectionType: Kubernetes Service Connection
    kubernetesServiceEndpoint: Contoso

Considérations relatives à la connexion au service Kubernetes lors de l’accès à AKS

Vous pouvez créer une connexion de service Kubernetes avec l’une des options suivantes.

  • KubeConfig
  • Compte Service Account
  • Abonnement Azure

Capture d’écran du choix d’une méthode d’authentification de connexion de service Kubernetes.

Lorsque vous sélectionnez l’option Abonnement Azure , Kubernetes doit être accessible à Azure DevOps au moment de la configuration de la connexion de service. Il peut y avoir différentes raisons pour lesquelles une connexion de service ne peut pas être créée, par exemple vous avez créé un cluster privé ou si les comptes locaux du cluster sont 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 écran Chargement des espaces de noms bloqué.

Capture d’écran de la sélection d’une boîte de dialogue d’authentification de connexion de service Kubernetes bloquée lors du chargement des espaces de noms.

À compter de Kubernetes 1.24, les jetons à longue durée de vie 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 l’authentification et ne peuvent pas accéder à votre cluster Kubernetes. Cela entraîne également la boîte de dialogue Chargement des espaces de noms figé.

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 identique avec une visibilité directe vers 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. Ce qui se passe

Vous utilisez la connexion au service Kubernetes avec l’option Abonnement Azure. Nous mettons à jour cette méthode pour créer des jetons de longue durée. Cette option devrait être disponible à la 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 Kubernetes.

J’utilise AKS et ne souhaite rien changer. Puis-je continuer à utiliser des tâches avec la connexion au service Kubernetes ?

Nous mettons à jour cette méthode pour créer des jetons de longue durée. Cette option devrait être disponible à la mi-mai. Toutefois, n’oubliez pas que cette approche va à l’encontre des conseils de Kubernetes.

J’utilise les tâches Kubernetes et la connexion au service Kubernetes, mais pas AKS. Dois-je être inquiet ?

Vos tâches continueront à fonctionner comme avant.

Le type de connexion de service Kubernetes sera-t-il supprimé ?

Nos tâches Kubernetes fonctionnent avec n’importe quel cluster Kubernetes, quel que soit l’endroit où elles s’exécutent. La connexion au service Kubernetes continue d’exister.

Je suis un client AKS et tout va bien, dois-je agir ?

Il n’est pas nécessaire de changer quoi que ce soit. Si vous utilisez la connexion au 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 au moment de 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.

AKS est configuré avec le RBAC Azure Active Directory et mon pipeline ne fonctionne pas. Ces mises à jour permettront-elles de résoudre ce problème ?

L’accès à Kubernetes lorsque le RBAC AAD est activé n’est pas lié à la création de jetons. Pour éviter une invite interactive, nous allons prendre en charge kubelogin dans une prochaine mise à jour.

Commandes

L’entrée de commande accepte les commandes kubectl.

Cet exemple YAML illustre la commande apply :

- task: Kubernetes@1
  displayName: kubectl apply using arguments
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    arguments: -f mhc-aks.yaml

Cet exemple YAML illustre l’utilisation d’un fichier de configuration avec la commande apply :

- task: Kubernetes@1
  displayName: kubectl apply using configFile
  inputs:
    connectionType: Azure Resource Manager
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureResourceGroup: $(azureResourceGroup)
    kubernetesCluster: $(kubernetesCluster)
    command: apply
    useConfigurationFile: true
    configuration: mhc-aks.yaml

Cet exemple YAML montre comment utiliser la commande de mise à l’échelle pour réduire le nombre de réplicas dans un déploiement à 0.

- task: Kubernetes@1
      displayName: 'Scale down deployment $(k8sDeployment) to 0'
      inputs:
        connectionType: 'Kubernetes Service Connection'
        kubernetesServiceEndpoint: $(kubernetesServiceConnection)
        command: 'scale'
        arguments: 'deployment/$(k8sDeployment) --replicas=0'
        namespace: $(namespace)

Secrets

Les objets Kubernetes de type secret sont destinés à contenir des informations sensibles telles que des mots de passe, des jetons OAuth et des clés ssh. Placer ces informations dans un secret est plus sûr et plus flexible que de les placer textuellement dans une définition de pod ou dans une image Docker. Azure Pipelines simplifie l’ajout à un compte de ImagePullSecrets service ou la configuration d’un secret générique, comme décrit ci-dessous.

ImagePullSecret

Cet exemple YAML illustre la configuration d’ImagePullSecrets :

    - task: Kubernetes@1
      displayName: kubectl apply for secretType dockerRegistry
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: dockerRegistry
        containerRegistryType: Azure Container Registry
        azureSubscriptionEndpointForSecrets: $(azureSubscriptionEndpoint)
        azureContainerRegistry: $(azureContainerRegistry)
        secretName: mysecretkey2
        forceUpdate: true

Secrets génériques

Cet exemple YAML crée des secrets génériques à partir de valeurs littérales spécifiées pour l’entrée secretArguments :

    - task: Kubernetes@1
      displayName: secretType generic with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=5678
        secretName: mysecretkey

Les variables de pipeline peuvent être utilisées pour passer des arguments permettant de spécifier des valeurs littérales, comme illustré ici :

    - task: Kubernetes@1
      displayName: secretType generic with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey

ConfigMap

ConfigMaps vous permet de dissocier les artefacts de configuration du contenu de l’image afin de maintenir la portabilité des applications conteneurisées.

Cet exemple YAML crée un ConfigMap en pointant vers un fichier ConfigMap :

    - task: Kubernetes@1
      displayName: kubectl apply
      inputs:
        configMapName: myconfig
        useConfigMapFile: true
        configMapFile: src/configmap

Cet exemple YAML crée un ConfigMap en spécifiant les valeurs littérales directement comme entrée configMapArguments et en définissant forceUpdate sur true :

    - task: Kubernetes@1
      displayName: configMap with literal values
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=contoso

Vous pouvez utiliser des variables de pipeline pour passer des valeurs littérales lors de la création de ConfigMap, comme illustré ici :

    - task: Kubernetes@1
      displayName: configMap with pipeline variables
      inputs:
        azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
        azureResourceGroup: $(azureResourceGroup)
        kubernetesCluster: $(kubernetesCluster)
        command: apply
        arguments: -f mhc-aks.yaml
        secretType: generic
        secretArguments: --from-literal=contoso=$(contosovalue)
        secretName: mysecretkey4
        configMapName: myconfig
        forceUpdateConfigMap: true
        configMapArguments: --from-literal=myname=$(contosovalue)

Dépannage

Mon cluster Kubernetes se trouve derrière un pare-feu et j’utilise des agents hébergés. Comment puis-je effectuer un déploiement sur ce cluster ?

Vous pouvez accorder l’accès à travers votre pare-feu aux agents hébergés en autorisant leurs adresses IP. Pour plus d’informations, consultez Plages d’adresses IP des agents.

Configuration requise

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Agent, DeploymentGroup
Demandes None
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commande Quelconque
Variables paramétrables Quelconque
Version de l’agent Toutes les versions d’agent prises en charge.
Catégorie de la tâche Déployer