Kubernetes@1 - Tarefa do Kubectl v1
Implemente, configure, atualize um cluster do Kubernetes no Azure Container Service ao executar comandos kubectl.
Implemente, configure, atualize o cluster do Kubernetes no Azure Container Service ao executar comandos 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.
Entradas
connectionType
- Tipo de ligação de serviço
string
. Necessário quando command != logout
. Valores permitidos: Azure Resource Manager
, , Kubernetes Service Connection
None
. Valor predefinido: Kubernetes Service Connection
.
Especifica o tipo de ligação de serviço: Resource Manager do Azure ao utilizar Azure Kubernetes Service ou a Ligação de Serviço do Kubernetes para qualquer outro cluster.
Kubernetes Service Connection
- Permite-lhe fornecer um ficheiro KubeConfig, especificar uma Conta de Serviço ou importar uma instância do AKS com a opção Subscrição do Azure . Importar uma instância do AKS com a opção Subscrição do Azure requer acesso ao cluster do Kubernetes no tempo de configuração da Ligação de Serviço.Azure Resource Manager
- Permite-lhe selecionar uma instância do AKS. Não acede ao cluster do Kubernetes na hora de configuração da Ligação de Serviço.None
- Utilize uma configuração do Kubernetes pré-criada armazenada localmente.
Para obter mais informações, veja Ligação de serviço na secção Observações seguinte.
connectionType
- Tipo de ligação de serviço
string
. Necessário quando command != logout
. Valores permitidos: Azure Resource Manager
, , Kubernetes Service Connection
None
. Valor predefinido: Azure Resource Manager
.
Especifica o tipo de ligação de serviço: Resource Manager do Azure ao utilizar Azure Kubernetes Service ou a Ligação de Serviço do Kubernetes para qualquer outro cluster.
kubernetesServiceEndpoint
- Ligação do serviço Kubernetes
string
. Necessário quando connectionType = Kubernetes Service Connection && command != logout
.
Selecione uma ligação de serviço do Kubernetes.
azureSubscriptionEndpoint
- Subscrição do Azure
string
. Necessário quando connectionType = Azure Resource Manager && command != logout
.
Especifica a subscrição do Azure Resource Manager, que contém o Azure Container Registry.
Nota
Para configurar uma nova ligação de serviço, especifique a subscrição do Azure a partir da lista e clique em Authorize
. Se a sua subscrição não estiver listada ou se quiser utilizar um Principal de Serviço existente, pode configurar uma ligação de serviço do Azure com os Add
botões ou Manage
.
azureResourceGroup
- Grupo de recursos
string
. Necessário quando connectionType = Azure Resource Manager && command != logout
.
Selecione um grupo de recursos do Azure.
kubernetesCluster
- Cluster do Kubernetes
string
. Necessário quando connectionType = Azure Resource Manager && command != logout
.
Selecione um cluster gerido do Azure.
useClusterAdmin
- Utilizar credenciais de administrador de cluster
boolean
. Opcional. Utilize quando connectionType = Azure Resource Manager && command != logout
. Valor predefinido: false
.
Utilize credenciais de administrador de cluster em vez de credenciais de utilizador do cluster predefinidas.
namespace
- Espaço de nomes
string
. Opcional. Utilize quando command != logout
.
Defina o espaço de nomes para o comando kubectl com o sinalizador –namespace. Se o espaço de nomes não for fornecido, os comandos serão executados no espaço de nomes predefinido.
command
- Comando
string
. Valores permitidos: apply
, create
, delete
, exec
, expose
, get
, login
, logout
, logs
, run
, , set
. top
Selecione ou especifique um comando kubectl a executar. A lista de valores permitidos fornece algumas opções comuns para facilitar a seleção ao utilizar a tarefa assistente, mas pode especificar outros comandos kubectl, como scale
. Utilize a arguments
entrada para especificar parâmetros adicionais para o comando especificado kubectl
.
command
- Comando
string
. Obrigatório. Valores permitidos: apply
, create
, delete
, exec
, expose
, get
, login
, logout
, logs
, run
, , set
. top
Valor predefinido: apply
.
Selecione ou especifique um comando kubectl a executar.
useConfigurationFile
- Utilizar a configuração
boolean
. Opcional. Utilize quando command != login && command != logout
. Valor predefinido: false
.
Especifica a configuração do Kubernetes a utilizar com o kubectl
comando . Pode ser fornecido o script inline, nome de ficheiro, diretório ou URL para ficheiros de configuração do Kubernetes.
useConfigurationFile
- Utilizar ficheiros de configuração
boolean
. Opcional. Utilize quando command != login && command != logout
. Valor predefinido: false
.
Especifica a configuração do Kubernetes a utilizar com o kubectl
comando . Pode ser fornecido o script inline, nome de ficheiro, diretório ou URL para ficheiros de configuração do Kubernetes.
configurationType
- Tipo de configuração
string
. Opcional. Utilize quando useConfigurationFile = true
. Valores permitidos: configuration
(Caminho do ficheiro), inline
(Configuração inline). Valor predefinido: configuration
.
Especifica o tipo de configuração do Kubernetes para o kubectl
comando. Pode ser um caminho de ficheiro ou um script inline.
configuration
- Caminho do ficheiro
string
. Necessário quando configurationType = configuration
.
Especifica o nome de ficheiro, diretório ou URL para ficheiros de configuração do kubernetes que são utilizados com os comandos.
configuration
- Ficheiro de configuração
string
. Necessário quando useConfigurationFile = true
.
Especifica o nome de ficheiro, diretório ou URL para ficheiros de configuração do kubernetes que são utilizados com os comandos.
inline
- Configuração inline
string
. Necessário quando configurationType = inline
.
Especifica a configuração de implementação inline para o kubectl
comando.
arguments
- Argumentos
string
. Opcional. Utilize quando command != login && command != logout
.
Argumentos para o comando kubectl especificado.
secretType
- Tipo de segredo
string
. Necessário quando command != login && command != logout
. Valores permitidos: dockerRegistry
, generic
. Valor predefinido: dockerRegistry
.
Criar/atualizar uma imagem genérica ou dockerpullsecret. Selecione dockerRegistry para criar/atualizar o imagepullsecret do registo selecionado. Uma imagemPullSecret é uma forma de transmitir um segredo que contém uma palavra-passe de registo de contentor para o Kubelet para que possa extrair uma imagem privada em nome do seu Pod.
secretArguments
- Argumentos
string
. Opcional. Utilize quando secretType = generic && command != login && command != logout
.
Especifica as chaves e os valores literais a inserir em segredo. Por exemplo, --from-literal=key1=value1
ou --from-literal=key2="top secret"
.
containerRegistryType
- Tipo de registo de contentor
string
. Necessário quando secretType = dockerRegistry && command != login && command != logout
. Valores permitidos: Azure Container Registry
, Container Registry
. Valor predefinido: Azure Container Registry
.
Selecione um Tipo de registo de contentor. A tarefa pode utilizar os detalhes da Subscrição do Azure para trabalhar com um registo de Contentor do Azure. Também são suportados outros registos de Contentor padrão.
dockerRegistryEndpoint
- Ligação do serviço de registo do Docker
string
. Opcional. Utilize quando secretType = dockerRegistry && containerRegistryType = Container Registry && command != login && command != logout
.
Selecione uma ligação do serviço de registo do Docker. Necessário para comandos que precisam de ser autenticados com um registo.
azureSubscriptionEndpointForSecrets
- Subscrição do Azure
string
. Opcional. Utilize quando secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout
.
Especifica a subscrição do Azure Resource Manager, que contém Azure Container Registry.
Nota
Para configurar uma nova ligação de serviço, selecione a subscrição do Azure na lista e clique em Authorize
. Se a sua subscrição não estiver listada ou se quiser utilizar um Principal de Serviço existente, pode configurar uma ligação de serviço do Azure com os Add
botões ou Manage
.
azureContainerRegistry
- Registo de contentor do Azure
string
. Opcional. Utilize quando secretType = dockerRegistry && containerRegistryType = Azure Container Registry && command != login && command != logout
.
Especifica um Azure Container Registry que é utilizado para extrair imagens de contentor e implementar aplicações no cluster do Kubernetes. Necessário para comandos que precisam de ser autenticados com um registo.
secretName
- Nome do segredo
string
. Opcional. Utilize quando command != login && command != logout
.
Nome do segredo. Pode utilizar este nome de segredo no ficheiro de configuração YAML do Kubernetes.
forceUpdate
- Forçar atualização secreta
boolean
. Opcional. Utilize quando command != login && command != logout
. Valor predefinido: true
.
Elimine o segredo se existir e crie um novo com valores atualizados.
configMapName
- Nome configMap
string
. Opcional. Utilize quando command != login && command != logout
.
Os ConfigMaps permitem-lhe desassociar artefactos de configuração do conteúdo da imagem para manter as aplicações em contentores portáteis.
forceUpdateConfigMap
- Forçar atualização configmap
boolean
. Opcional. Utilize quando command != login && command != logout
. Valor predefinido: false
.
Elimine o configmap se existir e crie um novo com valores atualizados.
useConfigMapFile
- Utilizar ficheiro
boolean
. Opcional. Utilize quando command != login && command != logout
. Valor predefinido: false
.
Cria um a partir de um ConfigMap
ficheiro individual ou de vários ficheiros ao especificar um diretório.
configMapFile
- Ficheiro ConfigMap
string
. Necessário quando useConfigMapFile = true && command != login && command != logout
.
Especifique um ficheiro ou diretório que contenha configMaps.
configMapArguments
- Argumentos
string
. Opcional. Utilize quando useConfigMapFile = false && command != login && command != logout
.
Especifica as chaves e os valores literais a inserir no configMap
. Por exemplo, --from-literal=key1=value1
ou --from-literal=key2="top secret"
.
versionOrLocation
- Kubectl
string
. Valores permitidos: version
, location
(Especificar localização). Valor predefinido: version
.
kubectl é uma interface de linha de comandos para executar comandos em clusters do Kubernetes.
versionOrLocation
- Kubectl
string
. Opcional. Utilize quando command != login && command != logout
. Valores permitidos: version
, location
(Especificar localização). Valor predefinido: version
.
kubectl é uma interface de linha de comandos para executar comandos em clusters do Kubernetes.
versionSpec
- Especificação de versão
string
. Opcional. Utilize quando versionOrLocation = version
. Valor predefinido: 1.13.2
.
Especifica a especificação de versão da versão a obter. Exemplos: 1.7.0
, , 1.x.0
, 4.x.0
, >=6.10.0
6.10.0
.
versionSpec
- Especificação de versão
string
. Opcional. Utilize quando versionOrLocation = version && command != login && command != logout
. Valor predefinido: 1.7.0
.
-18-2 Especifica a especificação de versão da versão a obter. Exemplos: 1.7.0
, , 1.x.0
, 4.x.0
, >=6.10.0
6.10.0
.
checkLatest
- Procurar a versão mais recente
boolean
. Opcional. Utilize quando versionOrLocation = version
. Valor predefinido: false
.
Verifica sempre online a versão mais recente disponível (stable.txt) que satisfaça a especificação da versão. Normalmente, isto é falso, a menos que tenha um cenário específico para obter sempre a versão mais recente. Isto fará com que incorra em custos de transferência quando potencialmente não for necessário, especialmente com o conjunto de compilação alojado.
checkLatest
- Procurar a versão mais recente
boolean
. Opcional. Utilize quando versionOrLocation = version && command != login && command != logout
. Valor predefinido: false
.
Verifica sempre online a versão mais recente disponível (stable.txt) que satisfaça a especificação da versão. Normalmente, isto é falso, a menos que tenha um cenário específico para obter sempre a versão mais recente. Isto fará com que incorra em custos de transferência quando potencialmente não for necessário, especialmente com o conjunto de compilação alojado.
specifyLocation
- Caminho para kubectl
string
. Necessário quando versionOrLocation = location
.
Especifica o caminho completo para o kubectl.exe
ficheiro.
specifyLocation
- Caminho para kubectl
string
. Necessário quando versionOrLocation = location && command != login && command != logout
.
Especifica o caminho completo para o kubectl.exe
ficheiro.
workingDirectory
- Diretório de trabalho
Alias de entrada: cwd
. string
. Valor predefinido: $(System.DefaultWorkingDirectory)
.
Diretório de trabalho para o comando kubectl.
workingDirectory
- Diretório de trabalho
Alias de entrada: cwd
. string
. Opcional. Utilize quando command != login && command != logout
. Valor predefinido: $(System.DefaultWorkingDirectory)
.
Diretório de trabalho para o comando kubectl.
outputFormat
- Formato de saída
string
. Valores permitidos: json
, , yaml
none
. Valor predefinido: json
.
Formato de saída.
outputFormat
- Formato de saída
string
. Valores permitidos: json
, yaml
. Valor predefinido: json
.
Formato de saída.
outputFormat
- Formato de saída
string
. Opcional. Utilize quando command != login && command != logout
. Valores permitidos: json
, yaml
. Valor predefinido: json
.
Formato de saída.
Opções de controlo de tarefas
Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.
Variáveis de saída
Esta tarefa define as seguintes variáveis de saída, que pode consumir em passos, tarefas e fases a jusante.
KubectlOutput
Armazena a saída do kubectl
comando.
Observações
Novidades na Versão 1.0.
- Foi adicionada uma nova entrada de tipo de ligação de serviço para uma seleção fácil de clusters do Azure AKS.
- Substituiu a entrada da variável de saída por uma secção de variáveis de saída que adicionámos em todas as tarefas.
Utilize esta tarefa para implementar, configurar ou atualizar um cluster do Kubernetes ao executar comandos kubectl.
Ligação de serviço
A tarefa funciona com dois tipos de ligação de serviço: Azure Resource Manager e Ligação do Serviço Kubernetes, descritos abaixo.
Azure Resource Manager
Defina connectionType
como Azure Resource Manager
e especifique um azureSubscriptionEndpoint
para utilizar uma ligação de serviço do Azure Resource Manager.
Este exemplo de YAML mostra como o Azure Resource Manager é utilizado para fazer referência ao cluster do Kubernetes. Isto deve ser utilizado com um dos comandos kubectl e os valores adequados exigidos pelo comando .
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)
Ligação do Serviço Kubernetes
Defina connectionType
como Kubernetes Service Connection
e especifique um kubernetesServiceEndpoint
para utilizar uma ligação de serviço do Kubernetes.
Este exemplo do YAML mostra como uma Ligação do Serviço Kubernetes é utilizada para fazer referência ao cluster do Kubernetes. Isto deve ser utilizado com um dos comandos kubectl e os valores adequados exigidos pelo comando .
- task: Kubernetes@1
displayName: kubectl apply
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Considerações sobre a Ligação do Serviço Kubernetes ao aceder ao AKS
Pode criar uma ligação de serviço do Kubernetes com qualquer uma das seguintes opções.
- KubeConfig
- Conta de Serviço
- Subscrição do Azure
Ao selecionar a opção Subscrição do Azure , o Kubernetes tem de estar acessível ao Azure DevOps no momento da configuração da ligação de serviço. Podem existir vários motivos pelos quais não é possível criar uma ligação de serviço, por exemplo , criou um cluster privado ou o cluster tem contas locais desativadas. Nestes casos, o Azure DevOps não consegue ligar ao cluster no momento da configuração da ligação de serviço e verá um ecrã a carregar espaços de nomes bloqueado.
A partir do Kubernetes 1.24, os tokens de longa duração já não são criados por predefinição. O Kubernetes recomenda que não utilize tokens de longa duração. Como resultado, as tarefas que utilizam uma ligação de serviço do Kubernetes criada com a opção Subscrição do Azure não têm acesso ao token permanente necessário para autenticar e não podem aceder ao cluster do Kubernetes. Isto também resulta na caixa de diálogo Carregar espaços de nomes congelados .
Utilizar a Ligação do Serviço do Azure Resource Manager para aceder ao AKS
Para os clientes do AKS, o tipo de ligação de serviço do Azure Resource Manager fornece o melhor método para ligar a um cluster privado ou a um cluster com contas locais desativadas. Este método não depende da conectividade do cluster no momento em que criar uma ligação de serviço. O acesso ao AKS é diferido para o runtime do pipeline, que tem as seguintes vantagens:
- O acesso a um cluster do AKS (privado) pode ser efetuado a partir de um agente autoalojado ou de um conjunto de dimensionamento com linha de visão para o cluster.
- É criado um token para cada tarefa que utiliza uma ligação de serviço do Azure Resource Manager. Isto garante que está a ligar ao Kubernetes com um token de curta duração, que é a recomendação do Kubernetes.
- O AKS pode ser acedido mesmo quando as contas locais são desativadas.
FAQ da ligação de serviço
Recebo a seguinte mensagem de erro: Não foi possível localizar nenhum segredo associado à conta de serviço. O que está a acontecer?
Está a utilizar a ligação do serviço Kubernetes com a opção Subscrição do Azure. Estamos a atualizar este método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, é recomendado começar a utilizar o tipo de ligação de serviço do Azure e não utilizar tokens de longa duração de acordo com as orientações do Kubernetes.
Estou a utilizar o AKS e não quero alterar nada. Posso continuar a utilizar tarefas com a ligação do serviço Kubernetes?
Estamos a atualizar este método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, tenha em atenção que esta abordagem é contra as orientações do Kubernetes.
Estou a utilizar as tarefas do Kubernetes e a ligação do serviço Kubernetes, mas não o AKS. Devo preocupar-me?
As tarefas continuarão a funcionar como anteriormente.
O tipo de ligação do serviço Kubernetes será removido?
As nossas tarefas do Kubernetes funcionam com qualquer cluster do Kubernetes, independentemente do local onde estão a ser executadas. A ligação do serviço Kubernetes continuará a existir.
Sou um cliente do AKS e está tudo a correr bem, devo agir?
Não há necessidade de mudar nada. Se estiver a utilizar a ligação do serviço Kubernetes e tiver selecionado a Subscrição do Azure durante a criação, deve estar ciente das orientações do Kubernetes sobre a utilização de tokens de longa duração.
Estou a criar um Ambiente do Kubernetes e não tenho nenhuma opção para utilizar ligações de serviço
Caso não consiga aceder ao AKS durante o tempo de criação do ambiente, pode utilizar um ambiente vazio e definir a connectionType
entrada para uma ligação de serviço do Azure Resource Manager.
Tenho o AKS configurado com o RBAC do Azure Active Directory e o meu pipeline não funciona. Estas atualizações irão resolver este problema?
O acesso ao Kubernetes quando o RBAC do AAD está ativado não está relacionado com a criação de tokens. Para impedir um pedido interativo, iremos suportar o kubelogin numa atualização futura.
Comandos
A entrada do comando aceita comandos kubectl.
Este exemplo do YAML demonstra o comando 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
Este exemplo do YAML demonstra a utilização de um ficheiro de configuração com o comando 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
Este exemplo de YAML mostra a utilização de como utilizar o comando de dimensionamento para diminuir o número de réplicas numa implementação para 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)
Segredos
Os objetos kubernetes do tipo segredo destinam-se a conter informações confidenciais, como palavras-passe, tokens OAuth e chaves ssh. Colocar estas informações em segredo é mais seguro e flexível do que colocá-la no texto literal numa definição de pod ou numa imagem do Docker. O Azure Pipelines simplifica a adição de a uma conta de ImagePullSecrets
serviço ou a configuração de qualquer segredo genérico, conforme descrito abaixo.
ImagePullSecret
Este exemplo de YAML demonstra a configuração de 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
Segredos Genéricos
Este exemplo YAML cria segredos genéricos a partir de valores literais especificados para a entrada 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
As variáveis de pipeline podem ser utilizadas para transmitir argumentos para especificar valores literais, conforme mostrado aqui:
- 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 permite-lhe desassociar artefactos de configuração do conteúdo da imagem para manter a portabilidade para aplicações em contentores.
Este exemplo YAML cria um ConfigMap ao apontar para um ficheiro ConfigMap:
- task: Kubernetes@1
displayName: kubectl apply
inputs:
configMapName: myconfig
useConfigMapFile: true
configMapFile: src/configmap
Este exemplo YAML cria um ConfigMap ao especificar os valores literais diretamente como a entrada configMapArguments e a definição forceUpdate como verdadeiro:
- 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
Pode utilizar variáveis de pipeline para transmitir valores literais ao criar o ConfigMap, conforme mostrado aqui:
- 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)
Resolução de problemas
O cluster My Kubernetes está protegido por uma firewall e eu estou a utilizar agentes alojados. Como posso implementar neste cluster?
Pode conceder acesso a agentes alojados através da firewall, ao permitir os endereços IP para os agentes alojados. Para obter mais detalhes, veja Intervalos de IP do agente
Requisitos
Requisito | Description |
---|---|
Tipos de pipeline | YAML, Compilação clássica, Versão clássica |
É executado em | Agente, DeploymentGroup |
Exigências | Nenhuma |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa. |
Restrições de comandos | Qualquer |
Variáveis de tabelas definidas | Qualquer |
Versão do agente | Todas as versões de agente suportadas. |
Categoria da tarefa | Implementação |