注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
はじめに
このガイドでは、GitHub Actions を使用して、プロジェクトを作成し、Azure Kubernetes Service にデプロイする方法について説明します。
前提条件
GitHub Actionsワークフローを作成する前に、まず以下のセットアップのステップを完了しておかなければなりません。
-
ターゲット AKS クラスターと Azure Container Registry (ACR) を作成します。 詳細については、Azure ドキュメントの「クイック スタート:Azure portal を使用して AKS クラスターをデプロイする - Azure Kubernetes Service」、およびポータルでのレジストリの作成に関するクイックスタート (Azure Container Registry) を参照してく� さい。
-
Azure 資� �情� �を� �納するための
AZURE_CREDENTIALS
という名前のシークレットを作成します。 この情� �の検索方法とシークレットの構成方法に関する詳細については、Azure/login
アクションのドキュメントを参照してく� さい。
ワークフローの作成
必要な環境を整えたら、ワークフローの作成に進むことができます。
次のワークフローの例では、コードがリポジトリにプッシュされる� �合に、プロジェクトを作成し、Azure Kubernetes Service にデプロイする方法のデモを行います。
ワークフロー env
キーで、次の値を変更します。
AZURE_CONTAINER_REGISTRY
をコンテナー レジストリの名前にPROJECT_NAME
をプロジェクトの名前にRESOURCE_GROUP
を AKS クラスターを含むリソース グループにCLUSTER_NAME
を AKS クラスターの名前に
このワークフローでは、azure/k8s-bake
アクションに、helm
レンダリング エンジンを使用します。 helm
レンダリング エンジンを使用する� �合は、CHART_PATH
の値を helm ファイルへのパスに変更します。 CHART_OVERRIDE_PATH
をオーバーライド ファイル パスの配列に変更します。 別のレンダリング エンジンを使用する� �合は、azure/k8s-bake
アクションに送信される入力パラメーターを更新します。
# このワークフローはGitHubによって認定されていないアクションを使用します。
# それらはサードパーティによって提供され、
# 別個の利用規約、プライバシーポリシー、
# ドキュメントを参照してく� さい。
# GitHub では、コミット SHA にアクションをピン留めすることが推奨されます。
# 新しいバージョンを取得するには、SHA を更新する必要があります。
# タグまたはブランチを参照することもできますが、アクションは警告なしに変更される可能性があります。
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@v2
- 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 }}
その他のリソース
以下のリソースも役に立つでしょう。
- 元のスターター ワークフローについては、GitHub Actions
starter-workflows
リポジトリのazure-kubernetes-service.yml
を参照してく� さい。 - このワークフローで使用されるアクションは、Azure の公式な
Azure/login
、Azure/aks-set-context
、Azure/CLI
、Azure/k8s-bake
、およびAzure/k8s-deploy
アクションです。 - Azure にデプロイする GitHub アクション ワークフローの例が他にも必要であれば、actions-workflow-samples リポジトリを参照してく� さい。