pkg/fixtures/pipelines/kustomize.yaml (60 lines of code) (raw):
# Azure Kubernetes Service (AKS) pipeline with Kustomize
# Build and push image to Azure Container Registry; Deploy to Azure Kubernetes Service cluster
variables:
armServiceConnection: testServiceConnection
azureContainerRegistry: testACR
containerName: testContainer
acrRg: testACRRG
clusterRg: testRG
clusterName: testCluster
kustomizePath: kustomize/overlays/production
namespace: testNamespace
tag: "$(Build.BuildId)"
vmImageName: "ubuntu-latest"
trigger:
- main
name: testPipeline
stages:
- stage: BuildAndPush
displayName: Build stage
jobs:
- job: BuildAndPush
displayName: Build and push image
pool:
vmImage: $(vmImageName)
steps:
- task: AzureCLI@2
displayName: Build and push image to Azure Container Registry
inputs:
azureSubscription: $(armServiceConnection)
scriptType: "bash"
scriptLocation: "inlineScript"
inlineScript: |
az acr build --image $1.azurecr.io/$2:$3 --registry $1 -g $4 .
arguments: "$(azureContainerRegistry) $(containerName) $(tag) $(acrRg)"
- stage: Deploy
displayName: Deploy stage
dependsOn: BuildAndPush
jobs:
- job: Deploy
displayName: Deploy to AKS using Kustomize
pool:
vmImage: $(vmImageName)
steps:
- task: KubernetesManifest@1
displayName: Bake Kustomize manifests
inputs:
action: 'bake'
kustomizationPath: $(kustomizePath)
renderType: 'kustomize'
name: 'bake'
- task: KubernetesManifest@1
displayName: Deploy baked manifests to Kubernetes cluster
inputs:
action: 'deploy'
connectionType: 'azureResourceManager'
azureSubscriptionConnection: $(armServiceConnection)
azureResourceGroup: $(clusterRg)
kubernetesCluster: $(clusterName)
namespace: $(namespace)
manifests: $(bake.manifestsBundle)
containers: |
$(azureContainerRegistry).azurecr.io/$(containerName):$(tag)