Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.
Introdução
Este guia explica como usar GitHub Actions para criar e publicar um projeto no Azure Kubernetes Service.
Pré-requisitos
Antes de criar seu fluxo de trabalho de GitHub Actions, primeiro você precisa concluir as etapas de configuração a seguir:
-
Crie um cluster-alvo do AKS e um Azure Container Registry (ACR). Para obter mais informações, consulte "Início rápido: Implantar um cluster do AKS usando o portal do Azure - Azure Kubernetes Service" e "Início rápido - Criar registro no portal - Azure Container Registry" na documentação do Azure.
-
Crie um segredo chamado
AZURE_CREDENTIALS
para armazenar suas credenciais do Azure. Para obter mais informações sobre como encontrar essa informação e estruturar o segredo, consulte a documentação da ação aaçure/login
.
Criar o fluxo de trabalho
Depois de preencher os pré-requisitos, você pode prosseguir com a criação do fluxo de trabalho.
O exemplo de fluxo de trabalho a seguir demonstra como criar e implantar um projeto no Azure Kubernetes Services quando o código for enviado por push para o seu repositório.
Na chave do fluxo de trabalho env
, altere os seguintes valores:
AZURE_CONTAINER_REGISTRY
para o nome do seu registro de contêinerPROJECT_NAME
para o nome do seu projetoRESOURCE_GROUP
para o grupo de recursos que contém seu cluster do AKSCLUSTER_NAME
para o nome do seu cluster do AKS
Este fluxo de trabalho usa o mecanismo de interpretação helm
para a ação azure/k8s-bake
. Se você usar o motor de interpretação helm
de renderização, altere o valor de CHART_PATH
para o caminho do seu arquivo de helm. Altere CHART_OVERRIDE_PATH
para uma matriz de caminhos de arquivos sobrescritos. Se você usar um mecanismo de interpretação diferente, atualize os parâmetros de entrada enviados para a ação azure/k8s-bake
.
# This workflow uses actions that are not certified by GitHub.
# São fornecidas por terceiros e regidas por
# termos de serviço, política de privacidade e suporte separados
# documentação.
name: Build and deploy to Azure Kubernetes Service
env:
AZURE_CONTAINER_REGISTRY: MY_REGISTRY_NAME # set this to the name of your container registry
PROJECT_NAME: MY_PROJECT_NAME # set this to your project's name
RESOURCE_GROUP: MY_RESOURCE_GROUP # set this to the resource group containing your AKS cluster
CLUSTER_NAME: MY_CLUSTER_NAME # set this to the name of your AKS cluster
REGISTRY_URL: MY_REGISTRY_URL # set this to the URL of your registry
# If you bake using helm:
CHART_PATH: MY_HELM_FILE # set this to the path to your helm file
CHART_OVERRIDE_PATH: MY_OVERRIDE_FILES # set this to an array of override file paths
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Azure Login
uses: azure/login@89d153571fe9a34ed70fcf9f1d95ab8debea7a73
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Build image on ACR
uses: azure/CLI@7378ce2ca3c38b4b063feb7a4cbe384fef978055
with:
azcliversion: 2.29.1
inlineScript: |
az configure --defaults acr=${{ env.AZURE_CONTAINER_REGISTRY }}
az acr build -t -t ${{ env.REGISTRY_URL }}/${{ env.PROJECT_NAME }}:${{ github.sha }}
- name: Gets K8s context
uses: azure/aks-set-context@4e5aec273183a197b181314721843e047123d9fa
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
resource-group: ${{ env.RESOURCE_GROUP }}
cluster-name: ${{ env.CLUSTER_NAME }}
id: login
- name: Configure deployment
uses: azure/k8s-bake@773b6144a3732e3bf4c78b146a0bb9617b2e016b
with:
renderEngine: 'helm'
helmChart: ${{ env.CHART_PATH }}
overrideFiles: ${{ env.CHART_OVERRIDE_PATH }}
overrides: |
replicas:2
helm-version: 'latest'
id: bake
- name: Deploys application
- uses: Azure/k8s-deploy@c8fbd76ededaad2799c054a9fd5d0fa5d4e9aee4
with:
manifests: ${{ steps.bake.outputs.manifestsBundle }}
images: |
${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.PROJECT_NAME }}:${{ github.sha }}
imagepullsecrets: |
${{ env.PROJECT_NAME }}
Recursos adicionais
Os seguintes recursos também podem ser úteis:
- Para o fluxo de trabalho inicial original, consulte
azure-kubernetes-service.yml
no repositóriostarter-workflows
de GitHub Actions. - As ações usadas nesse fluxo de trabalho são as ações oficiais do Azure
Azure/login
,Azure/aks-set-context
,Azure/CLI
,Azure/k8s-bake
eAzure/k8s-deploy
. - Para obter mais exemplos de fluxos de trabalho do GitHub Action que fazem a implantação no Azure, consulte o repositório actions-workflow-samples.