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