Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Use esta tarefa para implantar, configurar ou atualizar um cluster Kubernetes no Serviço de Contêiner do Azure executando comandos helm.
Sintaxe
# 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.
Insumos
connectionType
-
Tipo de conexão
string. Necessário quando command != logout && command != package && command != save. Valores permitidos: Azure Resource Manager, Kubernetes Service Connection, None. Valor padrão: Azure Resource Manager.
Especifica o tipo de conexão.
-
Kubernetes Service Connection- EspecifiqueKubernetes Service Connectionse conectar a qualquer cluster Kubernetes usando okubeconfigou a Conta de Serviço do Azure. Permite que você forneça um arquivo KubeConfig, especifique uma Conta de Serviço ou importe uma instância do AKS com a opção Assinatura do Azure. A importação de uma instância do AKS com a opção de Assinatura do Azure requer acesso ao cluster do Kubernetes no momento da configuração da Conexão de Serviço. -
Azure Resource Manager- EspecifiqueAzure Resource Managerse conectar a um Serviço Kubernetes do Azure usando o Azure Service Connection. Não acessa o cluster Kubernetes no momento da configuração da Conexão de Serviço. -
None- Use uma configuração pré-criada do Kubernetes armazenada localmente.
Para obter mais informações, consulte de conexão de serviço na seção Comentários a seguir.
azureSubscription
-
de assinatura do Azure
Alias de entrada: azureSubscriptionEndpoint.
string. Necessário quando connectionType = Azure Resource Manager && command != logout && command != package && command != save.
O nome da Conexão de Serviço do Azure. Especifique uma assinatura do Azure que tenha seu registro de contêiner.
azureResourceGroup
-
Grupo de recursos
string. Necessário quando connectionType = Azure Resource Manager && command != logout && command != package && command != save.
O nome do grupo de recursos dentro da assinatura. Especifique um Grupo de Recursos do Azure.
kubernetesCluster
-
de cluster do Kubernetes
string. Necessário quando connectionType = Azure Resource Manager && command != logout && command != package && command != save.
O nome do cluster AKS. Especifique um cluster gerenciado do Azure.
useClusterAdmin
-
Usar credenciais de administrador de cluster
boolean. Opcional. Use quando connectionType = Azure Resource Manager && command != logout && command != package && command != save. Valor padrão: false.
Usa credenciais de administrador de cluster em vez de credenciais de usuário de cluster padrão.
kubernetesServiceConnection
-
de conexão de serviço Kubernetes
Alias de entrada: kubernetesServiceEndpoint.
string. Necessário quando connectionType = Kubernetes Service Connection && command != logout && command != package && command != save.
Especifica uma conexão de serviço Kubernetes.
namespace
-
Espaço de nomes
string. Opcional. Use quando command != logout && command != package && command != save.
O namespace no qual você executa os comandos kubectl. Se não for especificado, a tarefa usará o namespace padrão. Especifique o namespace do Kubernetes a ser usado. Você pode especificar o namespace Tiller na seção avançada da tarefa ou passando a opção --tiller-namespace como um argumento.
azureSubscriptionForACR
-
assinatura do Azure para o Registro de Contêiner
Alias de entrada: azureSubscriptionEndpointForACR.
string. Necessário quando command == save.
Especifica uma assinatura do Azure que tem seu Registro de Contêiner do Azure.
azureResourceGroupForACR
-
Grupo de recursos
string. Necessário quando command == save.
Especifica um Grupo de Recursos do Azure que tem seu Registro de Contêiner.
azureContainerRegistry
-
Registro de Contêiner do Azure
string. Necessário quando command == save.
Especifica um Registro de Contêiner do Azure a ser usado para enviar gráficos de leme.
command
-
de comando
string. Obrigatório. Valores permitidos: create, delete, expose, get, init, install, login, logout, ls, package, rollback, save, upgrade, uninstall. Valor padrão: ls.
Especifica um comando Helm.
chartType
-
Tipo de gráfico
string. Necessário quando command == install || command == upgrade. Valores permitidos: Name, FilePath (Caminho do arquivo). Valor padrão: Name.
Especifica como você deseja inserir informações do gráfico. Você pode fornecer o nome do gráfico ou o caminho da pasta/arquivo para o gráfico.
chartName
-
Nome do gráfico
string. Necessário quando chartType == Name.
O nome da referência do gráfico a ser instalado. Pode ser um url ou um nome de gráfico. Por exemplo, se o nome do gráfico for stable/mysql, a tarefa será executada helm install stable/mysql.
chartPath
-
do caminho do gráfico
string. Necessário quando chartType == FilePath || command == package.
O caminho para o gráfico a ser instalado. Isso pode ser um caminho para um gráfico empacotado ou um caminho para um diretório de gráfico descompactado. Por exemplo, se você especificar ./redis, a tarefa será executada helm install ./redis. Se você estiver consumindo um gráfico publicado como um artefato, o caminho será $(System.DefaultWorkingDirectory)/ARTIFACT-NAME/Charts/CHART-NAME.
chartVersion
-
Versão
Alias de entrada: version.
string. Opcional. Use quando command == package || command == install || command == upgrade.
Especifica a versão exata do gráfico a ser instalada. Se você não especificar a versão do gráfico, a tarefa instalará a versão mais recente. Defina a versão no gráfico para esta versão semver.
releaseName
-
Nome da versão
string. Opcional. Use quando command == install || command == upgrade.
O nome da versão. Se você não especificar o nome da versão, a tarefa gerará automaticamente um para você. A entrada releaseName só é válida para install e upgrade comandos.
overrideValues
-
Definir valores
string. Opcional. Use quando command == install || command == upgrade.
Especifica valores na linha de comando. Esta entrada pode especificar valores múltiplos ou separados com vírgulas: key1=val1,key2=val2.
Você também pode especificar vários valores delimitando-os com uma nova linha, da seguinte maneira:
- chave1=val1
- chave2=val2
Se você tiver um valor que contenha novas linhas, use a opção valueFile. Caso contrário, a tarefa trata a nova linha como um delimitador. A tarefa constrói o comando Helm usando esses valores definidos. Por exemplo, você pode definir o valor usando um comando como o seguinte: helm install --set key1=val1 ./redis.
valueFile
-
arquivo de valor
string. Opcional. Use quando command == install || command == upgrade.
Especifica valores em um arquivo YAML ou uma URL. Por exemplo, especificar myvalues.yaml resulta em helm install --values=myvals.yaml.
destination
-
Destino
string. Opcional. Use quando command == package. Valor padrão: $(Build.ArtifactStagingDirectory).
Especifica valores em um arquivo YAML ou uma URL.
canaryimage
-
Use a versão de imagem canária.
boolean. Opcional. Use quando command == init. Valor padrão: false.
Especifica a imagem canary Tiller. Use a versão de pré-lançamento mais recente do Tiller.
upgradetiller
-
Atualizar Tiller
boolean. Opcional. Use quando command == init. Valor padrão: true.
Se true, esta entrada atualiza o Tiller se o Tiller já estiver instalado.
updatedependency
-
de dependência de atualização
boolean. Opcional. Use quando command == install || command == package. Valor padrão: false.
Se true, essa entrada atualiza uma atualização de dependência do Helm antes de instalar o gráfico. Atualiza as dependências do requirements.yaml para o diretório charts/ antes do empacotamento.
save
-
Poupe
boolean. Opcional. Use quando command == package. Valor padrão: true.
Salva o gráfico empacotado no repositório de gráficos local quando definido como true.
install
-
Instalar se a versão não estiver presente.
boolean. Opcional. Use quando command == upgrade. Valor padrão: true.
Se ainda não existir uma versão com este nome, esta entrada executa uma instalação.
recreate
-
Recriar pods.
boolean. Opcional. Use quando command == upgrade. Valor padrão: false.
Executa a reinicialização de pods para o recurso, se aplicável.
resetValues
-
Redefinir valores.
boolean. Opcional. Use quando command == upgrade. Valor padrão: false.
Redefine os valores para os valores incorporados no gráfico.
force
-
Força
boolean. Opcional. Use quando command == upgrade. Valor padrão: false.
Força uma atualização de recursos por meio de uma ação de exclusão ou recriação, se necessário.
waitForExecution
-
Aguarde
boolean. Opcional. Use quando command == init || command == install || command == upgrade. Valor padrão: true.
Bloqueia a ação até que a execução do comando seja concluída.
arguments
-
Argumentos
string. Opcional. Use quando command != login && command != logout.
As opções de comando Helm.
enableTls
-
Ativar TLS
boolean. Opcional. Use quando command != login && command != logout && command != package && command != save. Valor padrão: false.
Permite o uso de SSL entre Helm e Tiller.
caCert
-
certificado de autoridade de certificação
string. Necessário quando enableTls == true && command != login && command != logout && command != package && command != save.
O certificado CA usado para emitir um certificado para o cliente Tiller e Helm.
certificate
-
Certificado
string. Necessário quando enableTls == true && command != login && command != logout && command != package && command != save.
Especifique o certificado Tiller ou o certificado do cliente Helm.
privatekey
-
Chave
string. Necessário quando enableTls == true && command != login && command != logout && command != package && command != save.
Especifique a chave Tiller ou a chave do cliente Helm.
tillernamespace
-
namespace Tiller
string. Opcional. Use quando command != login && command != logout && command != package && command != save.
Especifique o namespace Kubernetes do Tiller.
failOnStderr
-
falha no erro padrão
boolean. Opcional. Use quando command != login && command != logout && command != package && command != save. Valor padrão: false.
Se essa entrada for true, essa tarefa falhará se algum erro for gravado no pipeline de erros ou se algum dado for gravado no fluxo de erro padrão. Caso contrário, a tarefa depende do código de saída para determinar a falha.
publishPipelineMetadata
-
Publicar metadados de pipeline
boolean. Opcional. Use quando command != login && command != logout && command != package && command != save. Valor padrão: true.
Se essa entrada for true, a tarefa coletará e publicará metadados de implantação.
Nome do gráfico chartNameForACR - para o Registro de Contêiner do Azure
string. Necessário quando command == save.
O nome do gráfico no Registro de Contêiner do Azure.
chartPathForACR
-
caminho do gráfico para o Registro de Contêiner do Azure
string. Necessário quando command == save.
O caminho do arquivo para o diretório do gráfico no Registro de Contêiner do Azure.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Esta tarefa define as seguintes variáveis de saída , que você pode consumir em etapas, trabalhos e estágios downstream.
helmExitCode
O código de saída emitido a partir da execução do comando Helm especificado.
helmOutput
A saída emitida pela execução do comando Helm especificado.
Observações
Use HelmDeploy@0 para implantar, configurar ou atualizar um cluster Kubernetes no Serviço de Contêiner do Azure executando comandos Helm. O Helm é uma ferramenta que simplifica a implantação e o gerenciamento de aplicativos Kubernetes usando um formato de empacotamento chamado gráficos.
Você pode definir, versionar, compartilhar, instalar e atualizar até mesmo o aplicativo Kubernetes mais complexo usando o Helm.
- O Helm ajuda você a combinar vários manifestos do Kubernetes (yaml), como serviço, implantações, configmaps e muito mais, em uma única unidade chamada Helm Charts. Você não precisa inventar ou usar uma tokenização ou uma ferramenta de modelagem.
- Os gráficos de leme ajudam você a gerenciar as dependências do aplicativo e a implantá-lo, bem como a reversão como uma unidade. Eles também são fáceis de criar, versionar, publicar e compartilhar com outras equipes parceiras.
O Azure Pipelines tem suporte interno para gráficos Helm:
- O de tarefas do instalador do Helm Tool pode ser usado para instalar a versão correta do Helm nos agentes.
- O pacote Helm e a tarefa de implantação podem ser usados para empacotar o aplicativo e implantá-lo em um cluster do Kubernetes. Você pode usar a tarefa para instalar ou atualizar o Tiller para um namespace Kubernetes, para se conectar com segurança ao Tiller sobre TLS para implantar gráficos ou para executar qualquer comando Helm, como lint.
- A tarefa Helm dá suporte à conexão a um Serviço Kubernetes do Azure usando uma conexão de serviço do Azure. Você pode se conectar a qualquer cluster Kubernetes usando kubeconfig ou uma conta de serviço.
- As implantações de leme podem ser complementadas usando a tarefa Kubectl; por exemplo, create/update, imagepullsecret e outros.
Conexão de serviço
HelmDeploy@0 funciona com dois tipos de conexão de serviço: Azure Resource Manager e Kubernetes Service Connection. Consulte Exemplos para obter exemplos sobre como configurar esses dois tipos de conexão.
Observação
Uma conexão de serviço não será necessária se um recurso de ambiente que aponta para um cluster do Kubernetes já tiver sido especificado no estágio do pipeline.
Considerações sobre a conexão de serviço do Kubernetes ao acessar o AKS
Você pode criar uma conexão de serviço Kubernetes com qualquer uma das seguintes opções.
- KubeConfig
- Conta de Serviço
- Subscrição do Azure
Ao selecionar a opção de Assinatura do Azure, o Kubernetes precisa estar acessível ao Azure DevOps no momento da configuração da conexão de serviço. Pode haver vários motivos pelos quais uma conexão de serviço não pode ser criada, por exemplo, você criou um de cluster privado ou o cluster tem contas locais desabilitadas. Nesses casos, o Azure DevOps não pode se conectar ao cluster no momento da configuração da conexão de serviço e você verá uma tela Carregando namespaces presa.
A partir do Kubernetes 1.24, os tokens de vida longa não são mais criados por padrão. O Kubernetes recomenda não usar tokens de longa duração. Como resultado, as tarefas que usam uma conexão de serviço do Kubernetes criada com a opção de Assinatura do Azure não têm acesso ao token permanente necessário para autenticar e não podem acessar seu cluster do Kubernetes. Isso também resulta na caixa de diálogo congelada Carregando namespaces.
Usar a Conexão de Serviço do Azure Resource Manager para acessar o AKS
Para clientes AKS, o tipo de conexão de serviço do Azure Resource Manager fornece o melhor método para se conectar a um cluster privado ou a um cluster que tenha contas locais desabilitadas. Esse método não depende da conectividade de cluster no momento em que você cria uma conexão de serviço. O acesso ao AKS é adiado para o tempo de execução do pipeline, que tem as seguintes vantagens:
- O acesso a um cluster AKS (privado) pode ser realizado a partir de um agente auto-hospedado ou de conjunto de escala com linha de visão para o cluster.
- Um token é criado para cada tarefa que usa uma conexão de serviço do Azure Resource Manager. Isso garante que você esteja se conectando ao Kubernetes com um token de curta duração, que é o recomendação do Kubernetes.
- O AKS pode ser acessado mesmo quando as contas locais estão desativadas.
Perguntas frequentes sobre conexão de serviço
Recebo a seguinte mensagem de erro: Não foi possível encontrar nenhum segredo associado à conta de serviço. O que é que está a acontecer?
Você está usando a conexão de serviço do Kubernetes com a opção Assinatura do Azure. Estamos atualizando esse método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, é recomendável começar a usar o tipo de conexão de serviço do Azure e não usar tokens de longa duração, conforme de orientação do Kubernetes.
Estou usando o AKS e não quero alterar nada, posso continuar a usar tarefas com a conexão de serviço do Kubernetes?
Estamos atualizando esse método para criar tokens de longa duração. Espera-se que esteja disponível em meados de maio. No entanto, esteja ciente de que essa abordagem é contrária orientação do Kubernetes.
Estou usando as tarefas do Kubernetes e a conexão de serviço do Kubernetes, mas não o AKS. Devo preocupar-me?
As suas tarefas continuarão a funcionar como antes.
O tipo de conexão do serviço Kubernetes será removido?
Nossas tarefas do Kubernetes funcionam com qualquer cluster do Kubernetes, independentemente de onde estejam sendo executadas. A conexão de serviço do Kubernetes continuará a existir.
Sou um cliente AKS e está tudo a correr bem, devo agir?
Não há necessidade de mudar nada. Se você estiver usando a conexão de serviço do Kubernetes e selecionou a Assinatura do Azure durante a criação, deve estar ciente das orientações do Kubernetes sobre o uso de tokens de longa duração.
Estou criando um ambiente Kubernetes e não tenho opção de usar conexões de serviço
Caso não consiga acessar seu AKS durante o tempo de criação do ambiente, você pode usar um ambiente vazio e definir a entrada connectionType para uma conexão de serviço do Azure Resource Manager.
Tenho o AKS configurado com o Azure Ative Directory RBAC e meu pipeline não funciona. Essas atualizações resolverão isso?
O acesso ao Kubernetes quando o RBAC do AAD está habilitado não está relacionado à criação de tokens. Para evitar um prompt interativo, suportaremos kubelogin em uma atualização futura.
Valores de comando
A entrada de comando aceita um dos seguintes comandos helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade. Exemplos são fornecidos na seção Exemplos.
Cada entrada de comando é mapeada para um conjunto de entradas de tarefas. Os comandos mapeados para uma entrada de tarefa são designados no bloco de sintaxe YAML e na tabela de entradas de tarefa
Solução de problemas
A tarefa HelmDeploy lança o erro 'unknown flag: --wait' ao executar 'helm init --wait --client-only' na versão Helm 3.0.2.
Há algumas mudanças de rutura entre o Leme 2 e o Leme 3. Um deles inclui a remoção do rebento e, portanto, helm init comando não é mais suportado. Remover comando: init quando você usa versões Helm 3.0+.
Ao usar o Helm 3, se System.debug estiver definido como true e Helm upgrade for o comando que está sendo usado, o pipeline falhará mesmo que a atualização tenha sido bem-sucedida.
Este é um problema conhecido com o Helm 3, pois ele grava alguns logs no stderr. A Tarefa de Implantação de Leme será marcada como falha se houver logs para stderr ou se o código de saída for diferente de zero. Defina a entrada da tarefa failOnStderr: false para ignorar os logs impressos no stderr.
Exemplos
Azure Resource Manager
Este exemplo de YAML mostra como o Azure Resource Manager é usado para se referir ao cluster do Kubernetes. Isso é usado com um dos comandos helm e os valores apropriados necessários para o comando:
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)
Conexão de serviço Kubernetes
Este exemplo de YAML mostra como a conexão de serviço do Kubernetes é usada para se referir ao cluster do Kubernetes. Isso é usado com um dos comandos helm e os valores apropriados necessários para o comando:
- task: HelmDeploy@0
displayName: Helm deploy
inputs:
connectionType: Kubernetes Service Connection
kubernetesServiceEndpoint: Contoso
Comandos
A entrada de comando aceita um dos seguintes comandos helm: create/delete/expose/get/init/install/login/logout/ls/package/rollback/upgrade.
Este exemplo de YAML demonstra o comando ls:
- task: HelmDeploy@0
displayName: Helm list
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: ls
arguments: --all
comando init
Este exemplo de YAML demonstra o comando init:
- task: HelmDeploy@0
displayName: Helm init
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: init
upgradetiller: true
waitForExecution: true
arguments: --client-only
comando de instalação
Este exemplo de YAML demonstra o comando install:
- task: HelmDeploy@0
displayName: Helm install
inputs:
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: install
chartType: FilePath
chartPath: Application/charts/sampleapp
comando pacote
Este exemplo de YAML demonstra o comando package:
- task: HelmDeploy@0
displayName: Helm package
inputs:
command: package
chartPath: Application/charts/sampleapp
destination: $(Build.ArtifactStagingDirectory)
comando de atualização
Este exemplo de YAML demonstra o comando upgrade:
- 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
comando guardar
Este exemplo de YAML demonstra o comando salvar:
- 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)
Empacotar e assinar gráficos Helm
Nesta seção, você aprenderá como empacotar e assinar gráficos Helm em um pipeline.
Gere um par de chaves público-privado para assinar o gráfico de leme usando GPG
Baixar GPG.
Inicie o prompt de comando em um modo de administrador. Execute o seguinte comando para gerar um par de chaves público-privado para assinar o gráfico de leme usando gpg. Ao criar a chave, ser-lhe-á pedido o nome de utilizador e o endereço de e-mail. O "endereço de e-mail do nome" é usado posteriormente para nomear o par de chaves público-privado que é criado.
gpg --full-generate-key
chaveSer-lhe-á solicitada a frase secreta. Dê o valor e clique em ok.
Depois de criar a chave, você pode ver a lista de chaves que contém privado e público usando o seguinte comando.
Para ver a lista de chaves privadas
gpg --list-secret-keys
Para ver a lista de chaves públicas
gpg --list-keys
Armazene as chaves privada e pública em 2 arquivos diferentes com a extensão gpg como mostrado abaixo.
- Para uma chave privada
gpg --export-secret-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/privatekeys.gpgVocê verá o arquivo de privatekeys.gpg exportado para o caminho mencionado acima.
- Para uma chave pública
gpg --export-key AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 contoso@microsoft.com > C:/somepath/publickey.gpgVocê verá o arquivo de publickey.gpg exportado para o caminho mencionado acima.
No Azure DevOps, salve o arquivo de privatekey.gpg na seção arquivos segurança.
Exemplo
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)
Requerimentos
| Requisito | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Exigências | Nenhum |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
| Restrições de comando | Qualquer |
| Variáveis configuráveis | Qualquer |
| Versão do agente | Todas as versões de agente suportadas. |
| Categoria de tarefa | Desplegar |