Skip to content

feat: Implement Azure Container Apps construct with environment support#96

Merged
lukeorellana merged 7 commits intoAzure:mainfrom
lukeorellana:main
Apr 3, 2026
Merged

feat: Implement Azure Container Apps construct with environment support#96
lukeorellana merged 7 commits intoAzure:mainfrom
lukeorellana:main

Conversation

@lukeorellana
Copy link
Copy Markdown
Collaborator

This pull request introduces a new Azure Container Apps module to the codebase, providing constructs for both Container App Environments and Container Apps with extensive documentation, schema exports, and integration tests. The changes make the module available for import, document its features and usage, and add end-to-end integration tests to ensure reliability.

Azure Container Apps Module Introduction and Integration:

  • Module Implementation and Exports

    • Added the Azure Container Apps module with unified, version-aware constructs for ContainerAppEnvironment and ContainerApp, including schema exports for both environments and apps. The module is now exported in the main src/index.ts and its own index.ts files for easy consumption. [1] [2] [3] [4] [5] [6]
  • Documentation

    • Created a comprehensive README.md detailing features (such as version management, ingress, Dapr integration, scaling, secrets, managed identity, VNet, zone redundancy, mTLS, and peer encryption), supported API versions, usage examples, property tables, outputs, and available methods.

Testing and Validation:

  • Integration Tests
    • Added integration tests for both ContainerAppEnvironment and ContainerApp constructs. These tests validate deployment, idempotency, and cleanup using real Azure resources, ensuring the constructs work as intended and are production-ready. [1] [2]

Copilot AI and others added 5 commits April 1, 2026 16:25
…ources

Implements ContainerAppEnvironment (Microsoft.App/managedEnvironments) and
ContainerApp (Microsoft.App/containerApps) using AZAPI provider with API
versions 2024-03-01 and 2025-07-01 (latest).

Agent-Logs-Url: https://github.com/lukeorellana/terraform-cdk-constructs/sessions/b4797eae-c4c5-47e8-bfac-b0fda6cbb5a0

Co-authored-by: lukeorellana <36606066+lukeorellana@users.noreply.github.com>
…hema

- Restructure README to match other construct READMEs (Features before
  Supported API Versions, inline resource descriptions in intro)
- Add identity property to ContainerApp API schemas to fix validation warning
- All 80 spec tests pass with zero warnings

Agent-Logs-Url: https://github.com/lukeorellana/terraform-cdk-constructs/sessions/62cf1be9-e106-4928-888f-265f307e3ebd

Co-authored-by: lukeorellana <36606066+lukeorellana@users.noreply.github.com>
…m plan drift

- Add 2025-02-02-preview API version support for both ContainerAppEnvironment
  and ContainerApp (azapi ~2.7.0 does not support 2025-07-01)
- Update defaultVersion() to 2025-02-02-preview for both constructs
- Add customizeResourceConfig() override to both constructs:
  - Strip location from body and promote to top-level attribute to prevent
    Azure location normalization drift ("East US" vs "eastus")
  - Enable ignoreCasing to prevent enum value casing drift ("Auto" vs "auto")
- Remove explicit apiVersion from integration tests (defaults now correct)
…struct

feat: add Azure Container Apps construct (Microsoft.App)
@lukeorellana lukeorellana requested a review from archit017 April 2, 2026 20:15
@lukeorellana lukeorellana changed the title Implement Azure Container Apps construct with environment support feat: Implement Azure Container Apps construct with environment support Apr 2, 2026
* Initial plan

* Fix JSII build errors: extract inline types to named interfaces and replace Record<string, never>

- Extract inline object types in ContainerAppEnvironmentPeerAuthentication.mtls
  and ContainerAppEnvironmentPeerTrafficConfig.encryption to named interfaces
  (ContainerAppEnvironmentMtlsConfig, ContainerAppEnvironmentEncryptionConfig)
- Extract inline object types in ContainerAppScaleRule (azureQueue, custom, http, tcp)
  to named interfaces (ContainerAppAzureQueueScaleRule, ContainerAppCustomScaleRule,
  ContainerAppHttpScaleRule, ContainerAppTcpScaleRule)
- Extract inline object type in ContainerAppDapr.appHealth to ContainerAppDaprHealthConfig
- Extract inline object type in ContainerAppRuntime.java to ContainerAppJavaRuntimeConfig
- Replace Record<string, never> in ContainerAppIdentity.userAssignedIdentities
  with { [key: string]: any } matching repo conventions

Agent-Logs-Url: https://github.com/lukeorellana/terraform-cdk-constructs/sessions/75965f9a-7520-4875-a1bf-75846c798a49

Co-authored-by: lukeorellana <36606066+lukeorellana@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lukeorellana <36606066+lukeorellana@users.noreply.github.com>
* Initial plan

* chore: regenerate yarn.lock to fix CI self-mutation check

Agent-Logs-Url: https://github.com/lukeorellana/terraform-cdk-constructs/sessions/18ead311-9872-4092-96a2-7f65422bb292

Co-authored-by: lukeorellana <36606066+lukeorellana@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lukeorellana <36606066+lukeorellana@users.noreply.github.com>
@lukeorellana lukeorellana merged commit 98eae95 into Azure:main Apr 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants