Release

Release Construction

The release combines the Infrastructure-as-Code (IaC) Continuous Integration (CI) output with the application components from Terraform Authoritative Release. The application authoritative release package (in green below) declares the image versions to be deployed to the infrastructure provided by the IaC release package.

graph LR Key["Legend
Blue - IaC & CM
Green - Application Stack"] subgraph ado["Azure DevOps"] git[(Git)] build-artefact[(Build)] iac["release.ps1"] package-artefact[(Artifacts)] app["release.ps1"] end subgraph az["Azure"] qa pp pr end registry[(Docker Registry)] git --CI--> build-artefact build-artefact --CD--> iac package-artefact --CD--> app registry -. "pull image" .-> qa app -. "terraform apply" .-> qa iac -. "terraform apply" .-> qa classDef infra fill:LightBlue class iac,az infra classDef app-stack fill:LightGreen class registry,app app-stack

In this example, the application release pipeline only deploys to the development environment to verify the package, and then pushes to the artefact store

alt text

The package, based on it’s semantic version is pulled from this store at deploy time, based on the solution manifest, CDAF.solution.

alt text

artifactPrefix=0.5
productName=Azure Terraform for Kubernetes
solutionName=azt

kat_release=0.4.80

the two release artefacts are promoted together through the pipeline

alt text