Terraform Cloud
Full Stack Release using Terraform Cloud
This Release Train extends the Terraform Kubernetes authoritative release, combining the application stack deployment with the Infrastructure-as-Code solution.
graph TD client["🌐"]:::transparent apim["API Gateway"] subgraph k8s["Kubernetes"] subgraph ns1["Dev namespace"] ns1-ingress["ingress"] subgraph ns1-pod-1["Pod"] ns1-con-a["container"] end subgraph ns1-pod-2["Pod"] ns1-con-b["container"] ns1-con-c["container"] end end end client --> apim --> ns1-ingress --> ns1-con-a ns1-ingress --> ns1-con-b --> ns1-con-c classDef external fill:lightblue class client external classDef dashed stroke-dasharray: 5, 5 class ns1,ns2,ns3 dashed classDef dotted stroke-dasharray: 2, 2 class ns1-pod-1,ns1-pod-2,ns2-pod-1,ns2-pod-2,ns3-pod-1,ns3-pod-2 dotted
Each component publishes a self-contained release package to the Azure DevOps (ADO) artefact store. The ADO Release orchestrates these package deployments for each environment, ensuring the complete stack is promoted through each environment with aligned package versions.
graph LR subgraph Components Sbuild["Build"] --> Stest["Test"] --> Spublish["Publish"] end subgraph Infrastructure Abuild["Build"] --> Atest["Test"] --> Apublish["Publish"] end subgraph Release TEST PROD end store[(ADO Store)] Apublish --> store Spublish --> store store --> TEST TEST --> PROD classDef release fill:lightgreen class TEST,PROD release
Manifest
Declare Container Deployment as Terraform Package
Terraform Build
Immutable Release Package
Configuration Management
Tokens and Properties
Release
Release Construction
Intermediary
Terraform Cloud intermediary
Deploy
Deploy-time Detokenisation
Feedback Loop
Realising the Feedback Loop