Added deploy.yml
This commit is contained in:
parent
e8345bb6be
commit
353fde01dd
86
.github/workflows/deploy.yml
vendored
Normal file
86
.github/workflows/deploy.yml
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
# This workflow will build a docker container, publish it to Azure Container Registry, and deploy it to Azure Kubernetes Service using a helm chart.
|
||||
#
|
||||
# To configure this workflow:
|
||||
#
|
||||
# 1. Set up the following secrets in your workspace:
|
||||
# a. REGISTRY_USERNAME with ACR username
|
||||
# b. REGISTRY_PASSWORD with ACR Password
|
||||
# c. AZURE_CREDENTIALS with the output of `az ad sp create-for-rbac --sdk-auth`
|
||||
#
|
||||
# 2. Change the values for the REGISTRY_NAME, CLUSTER_NAME, CLUSTER_RESOURCE_GROUP and NAMESPACE environment variables (below).
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# Inputs the workflow accepts.
|
||||
inputs:
|
||||
name:
|
||||
# Friendly description to be shown in the UI instead of 'name'
|
||||
description: 'exec name'
|
||||
# Default value if no value is explicitly provided
|
||||
default: 'default execution'
|
||||
# Input has to be provided for the workflow to run
|
||||
required: false
|
||||
|
||||
# Environment variables available to all jobs and steps in this workflow
|
||||
env:
|
||||
REGISTRY_NAME: ${{ secrets.REGISTRY_NAME }}
|
||||
CLUSTER_NAME: ${{ secrets.CLUSTER_NAME}}
|
||||
CLUSTER_RESOURCE_GROUP: ${{ secrets.CLUSER_RG}}
|
||||
REGISTRY_ENDPOINT: ${{ secrets.REGISTRY_ENDPOINT }}
|
||||
NAMESPACE: default
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
|
||||
# Connect to Azure Container registry (ACR)
|
||||
- uses: azure/docker-login@v1
|
||||
with:
|
||||
login-server: ${{ env.REGISTRY_NAME }}.azurecr.io
|
||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
|
||||
# Container build and push to a Azure Container registry (ACR)
|
||||
- run: |
|
||||
docker-compose build . -t ${{ secrets.REGISTRY_ENDPOINT }}:linux-dev
|
||||
docker-compose push ${{ secrets.REGISTRY_ENDPOINT }}:linux-dev
|
||||
|
||||
# Set the target Azure Kubernetes Service (AKS) cluster.
|
||||
- uses: azure/aks-set-context@v1
|
||||
with:
|
||||
creds: '${{ secrets.AZURE_CREDENTIALS }}'
|
||||
cluster-name: ${{ env.CLUSTER_NAME }}
|
||||
resource-group: ${{ env.CLUSTER_RESOURCE_GROUP }}
|
||||
|
||||
# Create namespace if doesn't exist
|
||||
- run: |
|
||||
kubectl create namespace ${{ env.NAMESPACE }} --dry-run -o json | kubectl apply -f -
|
||||
|
||||
# Create imagepullsecret for Azure Container registry (ACR)
|
||||
- uses: azure/k8s-create-secret@v1
|
||||
with:
|
||||
container-registry-url: ${{ env.REGISTRY_NAME }}.azurecr.io
|
||||
container-registry-username: ${{ secrets.REGISTRY_USERNAME }}
|
||||
container-registry-password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
secret-name: ${{ env.REGISTRY_NAME }}-registry-connection
|
||||
namespace: ${{ env.NAMESPACE }}
|
||||
|
||||
# Baking the helm chart to generate the manifests to deploy
|
||||
- uses: azure/k8s-bake@v1
|
||||
with:
|
||||
renderEngine: 'helm2'
|
||||
helmChart: './deploy/k8s/helm/'
|
||||
helm-version: 'latest'
|
||||
id: bake
|
||||
|
||||
# Deploy app to AKS
|
||||
- uses: azure/k8s-deploy@v1
|
||||
with:
|
||||
manifests: ${{ steps.bake.outputs.manifestsBundle }}
|
||||
images: |
|
||||
${{ secrets.REGISTRY_ENDPOINT }}:linux-dev
|
||||
imagepullsecrets: |
|
||||
${{ env.REGISTRY_NAME }}-registry-connection
|
||||
namespace: ${{ env.NAMESPACE }}
|
Loading…
x
Reference in New Issue
Block a user