The CDS Azure Resources repository contains Terraform modules for managing cloud resources in Microsoft Azure. It is designed to help deploy and manage secure, scalable, and compliant cloud resources for CDS's (Canadian Digital Service) Azure environment.
- 🏗 Infrastructure as Code (IaC) using Terragrunt/Terraform
- 🏢 Management of Azure resources via reusable modules
- 🛠 Automated CI/CD pipelines for validation and deployment
Ensure you have the following installed:
- Terragrunt
- Terraform (>= v1.4.0)
- Azure CLI
- Git
- Access to Azure Subscription with necessary permissions
git clone https://github.com/cds-snc/cds-azure-resources.git
cd cds-azure-resources
Ensure you are authenticated to Azure before running Terraform:
az login
az account set --subscription <your-subscription-id>
Run the following Terraform commands:
terragrunt init # Initialize the Terraform working directory
terragrunt plan # Preview changes before applying
terragrunt apply # Deploy resources to Azure
cds-azure-resources/
terragrunt/
│-- common / # Common resources across all modules
│-- moudules/ # Reusable Terraform modules
│-- *.tf / # Terraform files for resource definitions
README.md # Project documentation (this file)
Contributions are welcome! To contribute:
- Fork this repository
- Create a feature branch (
git checkout -b feature-name
) - Commit your changes (
git commit -m "Add new feature"
) - Push to GitHub (
git push origin feature-name
) - Open a Pull Request and describe your changes
- GitHub Actions are used to validate and deploy infrastructure changes.
- Pull Requests trigger Terraform plan checks to ensure no unintended changes are introduced.
- Changes are automatically deployed after approval and merge.
If you encounter any issues, please open a GitHub Issue.
This project is licensed under the MIT License. See LICENSE for details.
Maintained by the Canadian Digital Service (CDS).