Implantando um Artefato Helm

O Helm é um gerenciador de pacotes de código-fonte aberto para Kubernetes que permite compartilhar, empacotar e implantar o software criado para o Kubernetes. O serviço DevOps do OCI (Oracle Cloud Infrastructure) suporta a implantação de gráficos Helm no cluster do Kubernetes Engine (OKE). Você também pode executar comandos Helm especificados como um artefato em linha e adicionados ao estágio Helm para implantação.

A implantação do gráfico Helm ocorre somente quando o gráfico Helm é implantado pela primeira vez ou se as atualizações forem detectadas nos parâmetros de estágio do artefato ou do Helm. Isso é validado automaticamente antes da execução da implantação. No entanto, para implantar o gráfico Helm, independentemente das atualizações do artefato ou de qualquer outro parâmetro de estágio Helm, durante a execução da implantação, defina o parâmetro ENFORCE_HELM_DEPLOYMENT como true. Esse parâmetro funciona no nível do estágio e do pipeline. Quando o parâmetro é definido para um estágio específico, ele só é aplicável para esse estágio. Se o parâmetro estiver definido para um pipeline ou argumento de implantação, ele será aplicável a todos os estágios no pipeline. No entanto, se o parâmetro estiver definido para o argumento de pipeline ou implantação e o argumento de substituição de estágio, o parâmetro de pipeline ou o argumento de implantação terão precedência sobre o argumento de substituição de estágio. O parâmetro é aplicável a todos os estágios no pipeline.

Para um estágio de implantação específico do Helm, você tem a opção de usar OCI_DEVOPS_DEPLOY_USE_CREATE_NAMESPACE_FLAG como uma substituição de parâmetro de estágio. O parâmetro pode ser definido como true ou false para controlar o flag --create-namespace ao usar o comando helm upgrade para implantar gráficos Helm. Esse parâmetro opera no nível do estágio, oferecendo granularidade aprimorada nas configurações de implantação. Para obter mais informações, consulte Configurando Parâmetros.

Antes de começar, você deve ter um pipeline de implantação e criar um cluster do Kubernetes Engine. Você pode implantar em clusters OKE públicos e privados.

Para criar grupos dinâmicos e políticas para pipelines de implantação, consulte Políticas de Pipeline de Implantação. Para obter mais detalhes, consulte Políticas do Serviço IAM do DevOps.

Os gráficos Helm devem estar localizados no repositório do OCI Container Registry para implantação. Consulte Adicionando um Gráfico Helm. Para executar comandos Helm, especifique os comandos Helm como um artefato em linha. Consulte Especificação de Comando Helm.

Os gráficos Helm contêm modelos de arquivos de manifesto YAML do Kubernetes e um arquivo values.yaml para fornecer os valores de modelo padrão. O values.yaml é um arquivo genérico localizado no OCI Artifact Registry. Você precisa criar uma referência a esse arquivo. Consulte Adicionando um Artefato do Artifact Registry.

Observação

A implantação não suporta a substituição de parâmetros no tarball do gráfico Helm. No entanto, ele é suportado no arquivo values.yaml.

Para acessar DevOps usando a Console, a API REST e a CLI do Oracle Cloud, consulte Acessando DevOps.

    1. Abra o menu de navegação e clique em Serviços do Desenvolvedor. Em DevOps, clique em Projetos.
    2. Selecione um projeto e um pipeline de implantação.
    3. Para adicionar um estágio ao pipeline, clique no ícone + e selecione Adicionar estágio.
    4. Para o tipo de estágio, selecione Install Helm chart to Kubernetes cluster ou execute comandos Helm no Kubernetes cluster e clique em Next.
    5. Digite um nome e uma descrição para o estágio. A adição de uma descrição é opcional.
    6. Para Ambiente, selecione um ambiente de cluster existente.
    7. Selecione a Finalidade da criação do estágio Helm. As opções são:

      • Instalar ou fazer upgrade do gráfico de Helm no cluster do Kubernetes
      • Executar comandos Helm no cluster do Kubernetes
    8. Se você selecionar a opção para executar comandos Helm, selecione o artefato de especificação de comando Helm e adicione o estágio. Para obter mais informações, consulte Especificação de Comando Helm.
    9. Se você selecionar a opção de instalar ou atualizar o gráfico Helm, informe um Nome da versão. Exemplo: helm-release.

      Uma release refere-se à instância em execução do gráfico Helm com configuração específica. Um único gráfico pode ser instalado muitas vezes no mesmo cluster e criar versões distintas. O nome da release pode ser parametrizado, por exemplo, helm-release-${version}.

      Os nomes de versão devem seguir o padrão RFC 1123. Eles só podem conter caracteres alfanuméricos minúsculos ou '-', devem começar e terminar com um caractere alfanumérico.

    10. Para desinstalar a release do Helm do cluster do OKE quando esse estágio for excluído do pipeline, marque a caixa de seleção Desinstalar a release do Helm na exclusão do estágio.
    11. Clique em Selecionar Artefato para selecionar o gráfico Helm para implantação.
    12. (Opcional) Clique em Selecionar Artefato para selecionar o arquivo values.yaml que contém os valores transmitidos ao gráfico helm. O arquivo contém parâmetros padrão que podem ser substituídos.
    13. (Opcional) Para substituir o namespace de ambiente padrão, digite um valor para Substituir namespace do Kubernetes. O valor pode ser parametrizado, por exemplo, helm-${namespace}.

      Os valores de namespace devem seguir o padrão RFC 1123. Eles só podem conter caracteres alfanuméricos minúsculos ou '-', devem começar e terminar com um caractere alfanumérico.

    14. (Opcional) Digite um valor de timeout, em segundos, para implantação.
    15. (Opcional) Especifique as opções de upgrade do Helm para atualizar a versão do gráfico Helm ou altere a configuração da sua versão do Helm. Consulte Atualização do Helm.

      Você pode definir valores e valores de string para o comando Helm durante a implantação do gráfico Helm.

      Especifique o número máximo de atualizações por implantação. Por padrão, o valor é definido como 10. Insira zero se não quiser definir nenhum limite para as atualizações.

    16. Para fazer rollback automaticamente para a última versão de release bem-sucedida se a validação falhar, selecione Sim. Para obter mais informações, consulte Fazendo Rollback de uma Implantação.
    17. (Opcional) Para adicionar tags ao pipeline, clique em Mostrar opções de tag. Tag é um sistema de metadados que permite organizar e rastrear os recursos da tenancy.

      Se você tiver permissões para criar um recurso, também terá permissões para adicionar a ele tags de formato livre.

      Para adicionar uma tag definida, você deverá ter permissões para usar o namespace de tag.

      Para obter mais informações, consulte Tags de Recursos

    18. Para adicionar o estágio ao pipeline, clique em Adicionar.

      Se você tiver marcado a caixa de seleção para desinstalar a release helm durante a exclusão do estágio, clique em Confirmar na caixa de diálogo Aviso de Desinstalação da Release do Helm. Quando a release do Helm é desinstalada, uma solicitação de serviço é criada para desinstalar a release, cujo status é rastreado na seção Implantação da página Pipelines de Implantação.

      Uma visualização do estágio fornece um snapshot da configuração.

    Adicione mais estágios de forma sequencial ou paralela ao pipeline, conforme necessário. Para implantar a saída de build no ambiente de destino, execute o pipeline de implantação.

    Durante a implantação, você pode cancelar a implantação desse estágio que resulta em rollback para o estado anterior. Se você cancelar a implantação quando um upgrade de release do Helm estiver em andamento, o upgrade será cancelado e a release será submetida a rollback para o estado anterior.

    Para acionar automaticamente uma implantação no pipeline de build, você pode adicionar um estágio Acionar Implantação ao pipeline de build.

  • Para criar um estágio do OKE Helm para o pipeline, execute o comando create-oke-helm-chart-stage:

    oci devops deploy-stage create-oke-helm-chart-stage

    Parâmetros obrigatórios:

    • --helm-chart-artifact-id
    • --oke-cluster-environment-id
    • --pipeline-id
    • --stage-predecessor-collection
    • --release-name

    Para adicionar o campo Finalidade ao estágio Helm, execute o comando update-oke-helm-chart-stage:

    oci devops deploy-stage update-oke-helm-chart-stage --helm-command-artifact-ids --purpose

    Para desinstalar o estágio do Helm, execute o comando create-oke-helm-chart-stage:

    oci devops deploy-stage create-oke-helm-chart-stage --is-uninstall-on-stage-delete

    Para obter todos os comandos para deploy-stage:

    oci devops deploy-stage -h

    Para obter ajuda para o comando create-oke-helm-chart-stage:

    oci devops deploy-stage create-oke-helm-chart-stage -h
  • Para criar um estágio do cluster do Kubernetes para o pipeline, use a operação CreateDeployStage. Para o atributo deployStageType, especifique o valor como OKE_HELM_CHART_DEPLOYMENT.