Implantar e testar o GitHub Actions altamente disponível no Serviço de Kubernetes do Azure (AKS)

Neste artigo, você aprenderá a implantar e testar o GitHub Actions altamente disponível com arquivos do Azure no AKS (Serviço de Kubernetes do Azure).

Fluxos de trabalho de exemplo do GitHub Actions

O repositório tem três cargas de trabalho de exemplo na pasta de fluxo de trabalho padrão do GitHub para testar os executores do ARC auto-hospedados:

  • dotnet-using-container.yml: o Build do .NET usando contêineres instala o SDK do .NET e que restaura/compila/publica o aplicativo no próprio executor.
  • dotnet-without-container.yml: o Build do .NET sem contêineres usa o recurso de contêiner de fluxo de trabalho para executar um contêiner do SDK do .NET e que compila dentro do aplicativo dentro do contêiner. O cache do NuGet é montado por padrão neste contêiner.
  • container-service-test.yml: Os fluxos de trabalho de teste de contêiner e serviço também utilizam o recurso de contêineres para criar um contêiner Ubuntu e um serviço Redis. Ambos os contêineres são executados no mesmo Pod do AKS. O cache do NuGet também é montado por padrão neste contêiner.

Todos os três fluxos de trabalho têm um parâmetro de entrada para o nome do executor ARC a ser usado no campo runs-on: do fluxo de trabalho. Essa é a ARC_RUNNER_SCALESET_NAME="arc-runner-set" variável que definimos anteriormente. Para facilitar o teste, usamos a opção workflow_dispatch: nos três fluxos de trabalho para executar apenas esses fluxos de trabalho quando ele é solicitado manualmente. Na guia GitHub Actions do repositório, selecione um dos fluxos de trabalho e execute a carga de trabalho.

Depois que o fluxo de trabalho estiver em execução, ele solicitará um executor para ARC em execução no cluster do AKS. Depois que esse executor, um pod no Kubernetes, é alocado para o trabalho, o fluxo de trabalho é executado lá até a conclusão. Usamos a abordagem do executor efêmero para que o pod que executa o fluxo de trabalho seja destruído no final e um novo seja criado para a próxima execução do fluxo de trabalho.

Excluir os recursos

Quando estiver pronto, você poderá excluir todos os recursos criados neste guia usando os seguintes comandos:

# Delete ARC runners scale sets 

helm delete "${ARC_RUNNER_SCALESET_NAME}" -n "${NAMESPACE_ARC_RUNNERS}" --wait 

# Delete ARC runners scale set controller 

helm delete "${ARC_CONTROLLER_NAME}" -n "${NAMESPACE_ARC_CONTROLLER}" --wait 

# Delete Azure File share configurations 

kubectl delete -f ./install/arc-runners-set-pv-pvc.yaml --wait 
kubectl delete -f ./install/arc-runners-storage-class-files.yaml --wait 

# Delete secrets 

kubectl delete secret azure-storage-secret -n arc-runners --wait 
kubectl delete secret ${ARC_RUNNER_GITHUB_SECRET_NAME} -n arc-runners --wait 

# Delete container runner configmap pod spec 

kubectl delete -f ./install/arc-runners-set-container-pod-spec.yaml --wait 

# Delete namespaces 

kubectl delete namespace ${NAMESPACE_ARC_RUNNERS} 
kubectl delete namespace ${NAMESPACE_ARC_CONTROLLER} 

Próximas etapas

Para saber mais sobre como implantar software de software livre no AKS (Serviço de Kubernetes do Azure), consulte o seguinte artigo:

Contribuidores

A Microsoft mantém este artigo. Os seguintes colaboradores o escreveram originalmente:

  • Jorge Arterio | Consultor sênior de nuvem
  • Jeff Patterson | Gerente de Produto Principal
  • Rena Shah | Gerente de Produto Sênior
  • Shekhar Singh Sorot | Gerente de Produto 2
  • Erin Schaffer | Desenvolvedora de Conteúdo 2