Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
GitHub Actions vous donne la possibilité de créer un flux de travail de cycle de vie de développement logiciel automatisé. Vous pouvez utiliser plusieurs actions Kubernetes pour déployer des conteneurs d’Azure Container Registry (ACR) sur Azure Kubernetes Service (AKS) avec GitHub Actions.
Prérequis
- Compte Azure avec un abonnement actif. Si vous n’en avez pas un, créez un compte gratuitement.
- Un compte GitHub. Le cas échéant, inscrivez-vous gratuitement.
- Lorsque vous utilisez GitHub Actions, vous devez configurer l’intégration entre Azure et votre référentiel GitHub. Pour configurer l’intégration, veuillez consulter la rubrique Utiliser GitHub Actions pour se connecter à Azure.
- Un cluster AKS existant avec un registre ACR attaché. Le cas échéant, veuillez consulter la rubrique S’authentifier auprès d’ACR à partir d’AKS.
GitHub Actions pour AKS
Grâce à GitHub Actions, vous pouvez automatiser vos workflows de développement de logiciel à partir de GitHub. Pour plus d’informations, veuillez consulter la rubrique GitHub Actions pour Azure.
Le tableau ci-dessous répertorie les actions disponibles pour AKS :
| Nom | Description | Détails supplémentaires |
|---|---|---|
azure/aks-set-context |
Définissez le contexte de cluster AKS cible pour les autres actions à utiliser ou pour exécuter des commandes kubectl. | azure/aks-set-context |
azure/k8s-set-context |
Définissez le contexte de cluster Kubernetes cible pour les autres actions à utiliser ou pour exécuter des commandes kubectl. | azure/k8s-set-context |
azure/k8s-bake |
Effectuez un bake du fichier manifeste à utiliser pour les déploiements à l’aide de Helm, kustomize ou kompose. | azure/k8s-bake |
azure/k8s-create-secret |
Créez un secret générique ou un secret docker-registre dans le cluster Kubernetes. | azure/k8s-create-secret |
azure/k8s-deploy |
Effectuez un bake et déployez des manifestes sur des clusters Kubernetes. | azure/k8s-deploy |
azure/k8s-lint |
Validez/lint vos fichiers manifestes. | azure/k8s-lint |
azure/setup-helm |
Installez une version spécifique du fichier binaire Helm sur l’exécuteur. | azure/setup-helm |
azure/setup-kubectl |
Installez une version spécifique de kubectl sur l’exécuteur. | azure/setup-kubectl |
azure/k8s-artifact-substitute |
Mettez à jour la balise ou la synthèse pour les images conteneur. | azure/k8s-artifact-substitute |
azure/aks-create-action |
Créez un cluster AKS à l’aide de Terraform. | azure/aks-create-action |
azure/aks-github-runner |
Configurez des agents auto-hébergés pour GitHub Actions. | azure/aks-github-runner |
azure/acr-build |
Générez des conteneurs à l’aide d’ACR. | azure/acr-build |
Utiliser GitHub Actions avec AKS
Par exemple, vous pouvez utiliser GitHub Actions pour déployer une application sur votre cluster AKS chaque fois qu’une modification est envoyée (push) à votre référentiel GitHub. Cet exemple utilise l’application Azure Vote.
Remarque
Cet exemple utilise un principal de service pour l’authentification avec votre instance ACR et votre cluster AKS. Vous pouvez également configurer Open ID Connect (OIDC) et mettre à jour l’action azure/login pour utiliser OIDC. Pour plus d’informations, veuillez consulter la rubrique Configurer la connexion Azure avec l’authentification OpenID Connect.
Dupliquer (fork) et mettre à jour le référentiel
Accédez au référentiel Azure Vote, puis sélectionnez Dupliquer (fork).
Mettez à jour le fichier
azure-vote-all-in-one-redis.yamlpour utiliser votre registre ACR pour l’imageazure-vote-front. Remplacez<registryName>par le nom de votre registre.... containers: - name: azure-vote-front image: <registryName>.azurecr.io/azuredocs/azure-vote-front:v1 ...Validez le fichier
azure-vote-all-in-one-redis.yamlmis à jour dans votre référentiel.
Créer des secrets
Créez un principal de service pour accéder à votre groupe de ressources avec le rôle
Contributorà l’aide de la commandeaz ad sp create-for-rbac. Remplacez<SUBSCRIPTION_ID>par l’ID d’abonnement de votre compte Azure et<RESOURCE_GROUP>par le nom du groupe de ressources contenant votre registre ACR.az ad sp create-for-rbac \ --name "ghActionAzureVote" \ --scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP> \ --role Contributor \ --json-authVous devez obtenir un résultat semblable à l’exemple de sortie qui suit :
{ "clientId": <clientId>, "clientSecret": <clientSecret>, "subscriptionId": <subscriptionId>, "tenantId": <tenantId>, ... }Accédez aux paramètres de votre référentiel GitHub, puis sélectionnez Sécurité>Secrets et variables>Actions.
Pour chaque secret, sélectionnez Nouveau secret de référentiel, puis entrez le nom et la valeur du secret.
Nom du secret Valeur du secret AZURE_CREDENTIALS Sortie JSON entière de la commande az ad sp create-for-rbac.service_principal Valeur de <clientId>.service_principal_password Valeur de <clientSecret>.subscription Valeur de <subscriptionId>.tenant Valeur de <tenantId>.Registre Nom de votre registre. repository azuredocs resource_group Nom de votre groupe de ressources. nom_cluster Nom de votre cluster.
Pour plus d’informations sur la création de secrets, veuillez consulter la rubrique Secrets chiffrés.
Créer un fichier d’actions
Dans votre référentiel, créez un fichier
.github/workflows/main.ymlet collez le contenu suivant :name: build_deploy_aks on: push: paths: - "azure-vote/**" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source code uses: actions/checkout@v3 - name: ACR build id: build-push-acr uses: azure/acr-build@v1 with: service_principal: ${{ secrets.service_principal }} service_principal_password: ${{ secrets.service_principal_password }} tenant: ${{ secrets.tenant }} registry: ${{ secrets.registry }} repository: ${{ secrets.repository }} image: azure-vote-front folder: azure-vote branch: master tag: ${{ github.sha }} - name: Azure login id: login uses: azure/login@v1.4.3 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Set AKS context id: set-context uses: azure/aks-set-context@v3 with: resource-group: '${{ secrets.resource_group }}' cluster-name: '${{ secrets.cluster_name }}' - name: Setup kubectl id: install-kubectl uses: azure/setup-kubectl@v3 - name: Deploy to AKS id: deploy-aks uses: Azure/k8s-deploy@v4 with: namespace: 'default' manifests: | azure-vote-all-in-one-redis.yaml images: '${{ secrets.registry }}.azurecr.io/${{ secrets.repository }}/azure-vote-front:${{ github.sha }}' pull-images: falseLa section
oncontient l’événement qui déclenche l’action. Dans l’exemple de fichier, l’action est déclenchée quand une modification est envoyée (push) au répertoireazure-vote.La section
stepscontient chaque action distincte :- Valider le code source utilise l’action de validation de GitHub Actions pour cloner le référentiel.
- La build ACR utilise l’action de génération d’Azure Container Registry pour générer l’image et la charger dans votre registre.
- La connexion Azure utilise l’action de connexion Azure pour vous connecter à votre compte Azure.
- Définir le contexte AKS utilise l’action de définition du contexte d’Azure AKS pour définir le contexte de votre cluster AKS.
- Configurer kubectl utilise l’action de configuration de Kubectl d’Azure AKS pour installer kubectl sur votre exécuteur.
- La fonction Déployer sur AKS utilise l’action de déploiement d’Azure Kubernetes pour déployer l’application sur votre cluster Kubernetes.
Validez le fichier
.github/workflows/main.ymldans votre référentiel.Pour confirmer que l’action fonctionne, mettez à jour le fichier
azure-vote/azure-vote/config_file.cfgavec le contenu suivant :# UI Configurations TITLE = 'Azure Voting App' VOTE1VALUE = 'Fish' VOTE2VALUE = 'Dogs' SHOWHOST = 'false'Validez le fichier
azure-vote/azure-vote/config_file.cfgmis à jour dans votre référentiel.Dans votre référentiel, sélectionnez Actions, puis vérifiez qu’un workflow est en cours d’exécution. Ensuite, vérifiez que le workflow est associé à une coche verte et que l’application mise à jour est déployée sur votre cluster.
Étapes suivantes
Passez en revue les workflows de démarrage suivants pour AKS. Pour plus d’informations, veuillez consulter la rubrique Utilisation de workflows de démarrage.