Home

Awesome

Ministry of Justice Modernisation Platform

Standards Icon Format Code Icon Scorecards Icon SCA Icon Terraform SCA Icon

About this repository

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.

Contents

This repository currently holds the Modernisation Platform's:

Other useful repositories

Core repositories

NameDescription
Modernisation Platform (this one)Our repository for core work, including our ADR and infrastructure as code
Modernisation Platform EnvironmentsThe repository for user application infrastructure as code and deployment workflows
modernisation-platform-ami-buildsRepository for creating pipelines to build AMIs for use on the platform
modernisation-platform-configuration-managementRepository for configuration management code used on the platform
modernisation-platform-terraform-module-templateTemplate repository used for creating other Terraform module repositories

Terraform modules - for member account use

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.

NameDescription
modernisation-platform-terraform-bastion-linuxModule for creating Linux bastion servers in member AWS accounts
modernisation-platform-terraform-ecs-clusterModule for creating ECS cluster
modernisation-platform-terraform-s3-bucketModule for creating S3 buckets with sensible defaults e.g. replication, encryption
modernisation-platform-terraform-aws-vm-importModule 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-integrationModule associating an SNS topic with a PagerDuty service
modernisation-platform-terraform-loadbalancerModule that creates application load balancer in AWS with logging enabled, s3 to store logs and Athena DB to query logs
modernisation-platform-terraform-ssm-patchingModule 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-instanceModule for creating an EC2 instance
modernisation-platform-terraform-ec2-autoscaling-groupModule for creating an EC2 autoscaling group
modernisation-platform-terraform-lambda-functionModule for creating a Lambda Function

Terraform modules - used by the core platform

These modules are used by the Modernisation Platform's core infrastructure

NameDescription
modernisation-platform-terraform-baselinesModule for enabling and configuring common baseline services such as SecurityHub
modernisation-platform-terraform-cross-account-accessModule for creating an IAM role that can be assumed from another account
modernisation-platform-terraform-environmentsModule for creating organizational units and accounts within AWS Organizations from JSON files
modernisation-platform-terraform-iam-superadminsModule for creating defined IAM users as superadmins
modernisation-platform-terraform-member-vpcModule for member VPC accounts
modernisation-platform-github-oidc-providerModule for creating OIDC providers to use in GitHub Actions

Tools

NameDescription
modernisation-platform-instance-schedulerA 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-testContainer bundled with utilities for network testing