Open source tools for every layer of government service delivery.
Strata is a gold-standard target architecture and suite of open-source tools that gives government agencies everything they need to run a modern service.
This is a template repository to set up foundational infrastructure for your application in Azure. It is part of a collection of interoperable Strata templates.
This template includes setup for:
- Team workflows - templates for pull requests (PRs), architecture decision records (ADRs), and Makefiles.
- Account level foundational infrastructure - infrastructure for terraform backends, including an resources for storing and managing terraform state files.
- Application infrastructure - the infrastructure you need to set up a basic web app, such as a image container repository, load balancer, web service, and database.
- CI for infra - GitHub action that performs infra code checks, including linting, validation, and security compliance checks.
- CD / Deployments - infrastructure for continuous deployment, including: Azure account access for Github actions, scripts for building and publishing release artifacts, and a Github action for automated deployments from the main branch.
- Documentation - technical documentation for the decisions that went into all the defaults that come with the template.
The system architecture will look like this (see system architecture documentation for more information):
This template assumes that you have an application to deploy. See application requirements for more information on what is needed to use the infrastructure template. If you're using one of the Platform application templates, these requirements are already met.
To get started, install the nava-platform tool, and then run the following command in your project's root directory:
nava-platform infra install --template-uri https://github.com/navapbc/template-infra-azure .Now you're ready to set up the various pieces of your infrastructure.
After downloading and installing the template into your project:
- Follow the steps in infra/README.md to setup the infrastructure for your application.
- After setting up Azure resources, you can set up GitHub Actions workflows.
- After configuring GitHub Actions, you can set up continuous deployment.
- After setting up continuous deployment, you can optionally set up pull request environments
- At any point, set up your team workflow.
With the nava-platform tool installed, run the following in your project's root directory:
nava-platform infra update .If the update fails, the tool will provide some guidance, but effectively the next step will be apply the updates in smaller pieces with manual merge conflict resolution.
Remember: Make sure to read the release notes in case there are breaking changes you need to address.
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
