This repo contains a sample on how to use Terraform to create the following resources:

  • Resource Group - that includes the following resources
  • VNET with one subnet for the Private Link Service and another one for the Azure Container Apps Environment
  • Container Registry - this sample uses a mcr hello world container image so the registry is not really used, but glues containers apps and the registry with a managed identity for the CI/CD process
  • Log Analytics Workspace - to store the logs
  • Application insights
  • Key Vault
  • Managed Identity to enable Container Apps access the Container Registry
  • Container Apps Environment with internal networking (for an existing VNET)
  • Container App with an API 1 and ingress limited to the Container App Environment
  • Container App with an API 2 and ingress limited to the Container App Environment
  • Container App with the UI and ingress limited to the VNet. API1 and API2 URI's are passed to this App with env vars.
  • Private Link service for Container App Environment - after deploying the resource you must approve the private link connection for the sample to work. You may use the CLI with the command: az network private-endpoint-connection approve
  • Front Door to expose the UI to the public

Reference:

This sample was inspired by this excelent article! If you are looking for a bicep equivalent and/or more architecture details please use this article.

App lifecycle management topics

1. Complete environment(s) creation using the IaC based blueprints

2. Inner loop App development

3. App delivery with CI/CD workflows

4. Operations