This repository is a blueprint accelerator solution that supports teams in implementing immutable backups in Azure. It's aim is to give developers a consistent way of creating, configuring and monitoring immutable backups using Azure Backup Vault.
The solution consists of a configurable Terraform module which deploys the following capabilities:
- Backup vault
- Backup policies
- Backup instances for the following resources:
- Blob storage
- Managed disks
- PostgreSQL flexible server
- Integration of diagnostic settings with Azure Monitor
The resources created by the module reside in their own resource group.
See the following key docs for more information:
The repository consists of the following directories:
-
./.github
Contains the GitHub workflows in
yaml
format. -
./.pipelines
Contains the Azure Pipelines in
yaml
format. -
./docs
Stores files and assets related to the documentation.
-
./infrastructure
Stores the infrastructure as code - a set of terraform scripts and modules.
-
./scripts
Contains scripts that are used to create and maintain the environment.
-
./tests
Contains the different types of tests used to verify the solution.
The documentation in markdown format resides in ./docs
. It can also be built and served as a static site using MkDocs.
To build and run the docs locally, install Docker then run the following command from the root of the repository:
docker-compose -f ./docs/docker-compose.yml up
Once the container is running, navigate to http://localhost:8000.
The project uses Semantic Release to create and publish releases within the CI pipeline, which relies on commit message conventions.
See the following section of the documentation for more information.
If you want to contribute to the project, raise a PR on GitHub.
We use pre-commit to run analysis and checks on the changes being committed. Take the following steps to ensure the pre-commit hook is installed and working:
-
Install git
- Ensure the git
bin
directory has been added to %PATH%:C:\Program Files\Git\bin
- Ensure the git
-
Install Python
- Ensure the python
bin
directory has been added to %PATH%
- Ensure the python
-
Install pre-commit
- Open a terminal and navigate to the repository root directory
- Install pre-commit with the following command:
pip install pre-commit
- Install pre-commit within the repository with the following command:
pre-commit install
- Run
pre-commit run --all-files
to check pre-commit is working
For full details see this link