Skip to main content

Terragrunt architecture

Issue: Design a Terragrunt architecture to manage our infrastructure.

Decision: We will use a Terragrunt architecture with multiple repositories: master-infrastructure-live, infrastructure-live-base, infrastructure-module, and _envcommon.

Status: Draft

Group: Infrastructure

Assumptions:

  • We have the technical knowledge to create and maintain this architecture.
  • We have the necessary resources to create and maintain this architecture.
  • The architecture will be able to meet the customer's requirements.

Constraints:

  • We must be able to fully manage customer infrastructure as well as co manage it.
  • We must be able to provide specific versions of modules and chose when to upgrade them for each environment independently.

Positions: Consider a Terragrunt architecture with multiple repositories.

Argument: This architecture is the best option as it allows us to fully manage our customer infrastructure as well as co manage it. It also allows us to provide specific versions of modules and chose when to upgrade them for each environment independently.

Implications:

  • We will need to create and maintain the multiple repositories necessary for this architecture.
  • We will need to create and maintain any infrastructure-live repositories forked from infrastructure-live-base.
  • We will need to create and maintain the folder structure necessary for this architecture.

Related decisions: N/A

Related requirements: This architecture decision meets the requirement to be able to fully manage customer infrastructure as well as co manage it, and to provide specific versions of modules and chose when to upgrade them for each environment independently.

Related artifacts: N/A

Related principles: N/A

Notes: N/A