This is the Ministry of Justice Modernisation Platform team's repository for core work on the Modernisation Platform. The Modernisation Platform team is a platform engineering product team which provides a hosting platform for Ministry of Justice applications which cannot be hosted on the Cloud Platform.
For more information on the Modernisation Platform please see the user guidance.
This repository currently holds the Modernisation Platform's:
- Architecture Decision Record (ADR)
- Environment definitions
- Infrastructure as code
- Source code for user-guide.modernisation-platform.service.justice.gov.uk
Name | Description |
---|---|
Modernisation Platform (this one) | Our repository for core work, including our ADR and infrastructure as code |
Modernisation Platform Environments | The repository for user application infrastructure as code and deployment workflows |
modernisation-platform-ami-builds | Repository for creating pipelines to build AMIs for use on the platform |
modernisation-platform-configuration-management | Repository for configuration management code used on the platform |
modernisation-platform-terraform-module-template | Template repository used for creating other Terraform module repositories |
Modernisation Platform users can use these modules in their infrastructure. They are designed to comply with best practices and to work with the platform, to make creating infrastructure quicker, easier and more secure.
Name | Description |
---|---|
modernisation-platform-terraform-bastion-linux | Module for creating Linux bastion servers in member AWS accounts |
modernisation-platform-terraform-ecs-cluster | Module for creating ECS cluster |
modernisation-platform-terraform-s3-bucket | Module for creating S3 buckets with sensible defaults e.g. replication, encryption |
modernisation-platform-terraform-aws-vm-import | Module that creates s3 and roles needed to import virtual machine (VM) images from your virtualization environment to Amazon EC2 as Amazon Machine Images (AMI) |
modernisation-platform-terraform-pagerduty-integration | Module associating an SNS topic with a PagerDuty service |
modernisation-platform-terraform-loadbalancer | Module that creates application load balancer in AWS with logging enabled, s3 to store logs and Athena DB to query logs |
modernisation-platform-terraform-ssm-patching | Module that automates the patching of ec2 instances via ssm. It creates an s3 bucket for log storage, as well as maintenance windows, tasks, resource groups, and patch baselines. |
modernisation-platform-terraform-ec2-instance | Module for creating an EC2 instance |
modernisation-platform-terraform-ec2-autoscaling-group | Module for creating an EC2 autoscaling group |
modernisation-platform-terraform-lambda-function | Module for creating a Lambda Function |
These modules are used by the Modernisation Platform's core infrastructure
Name | Description |
---|---|
modernisation-platform-terraform-baselines | Module for enabling and configuring common baseline services such as SecurityHub |
modernisation-platform-terraform-cross-account-access | Module for creating an IAM role that can be assumed from another account |
modernisation-platform-terraform-environments | Module for creating organizational units and accounts within AWS Organizations from JSON files |
modernisation-platform-terraform-iam-superadmins | Module for creating defined IAM users as superadmins |
modernisation-platform-terraform-member-vpc | Module for member VPC accounts |
modernisation-platform-github-oidc-provider | Module for creating OIDC providers to use in GitHub Actions |
Name | Description |
---|---|
modernisation-platform-instance-scheduler | A Go lambda function for stopping and starting instance, rds resources and autoscaling groups. The lambda is used by the core platform and can be reused outside of the platform with minimal changes |
modernisation-platform-cp-network-test | Container bundled with utilities for network testing |