Bake manifests

Azure DevOps Services

Bake action of the Kubernetes manifest task is useful for turning templates into manifests with the help of a template engine. The bake action of Kubernetes manifest task is intended to provide visibility into the transformation between the input templates and the end manifest files that are used in the deployments. Helm 2, kustomize, and kompose are supported as templating options under the bake action.

The baked manifest files are intended to be consumed downstream (subsequent task) where these manifest files are used as inputs for the deploy action of the Kubernetes manifest task.

Helm 2 example

- deployment:
  displayName: Bake and deploy to AKS
  pool:
    vmImage: ubuntu-latest
  environment: contoso.aksnamespace
  strategy:
    runOnce:
      deploy:
        steps:
        - checkout: self
        - task: KubernetesManifest@0
          name: bake
          displayName: Bake K8s manifests from Helm chart
          inputs:
            action: bake
            renderType: helm2
            helmChart: charts/sample
            overrides: 'image.repository:nginx'
        
        - task: KubernetesManifest@0
          displayName: Deploy K8s manifests
          inputs:
            kubernetesServiceConnection: k8sSC1
            manifests: $(bake.manifestsBundle)
            containers: |
              nginx: 1.7.9

Note

Instead of transforming the Helm charts into manifest files in the template as shown above, if one intends to use Helm for directly managing releases and rollbacks, checkout the Package and Deploy Helm Charts task.

Kustomize example

steps:
- task: KubernetesManifest@0
  name: bake
  displayName: Bake K8s manifests from kustomization path
  inputs:
    action: bake
    renderType: kustomize
    kustomizationPath: folderContainingKustomizationFile

- task: KubernetesManifest@0
  displayName: Deploy K8s manifests
  inputs:
    kubernetesServiceConnection: k8sSC1
    manifests: $(bake.manifestsBundle)

Kompose example

steps:
- task: KubernetesManifest@0
  name: bake
  displayName: Bake K8s manifests from Docker Compose
  inputs:
    action: bake
    renderType: kompose
    dockerComposeFile: docker-compose.yaml

- task: KubernetesManifest@0
  displayName: Deploy K8s manifests
  inputs:
    kubernetesServiceConnection: k8sSC1
    manifests: $(bake.manifestsBundle)