From 9c188514304cba0c05bfd88d219e676cb518e710 Mon Sep 17 00:00:00 2001 From: Melissa Greenbaum <69476188+magreenbaum@users.noreply.github.com> Date: Mon, 13 Nov 2023 12:38:52 -0500 Subject: [PATCH] feat: Blue/green deployment for postgres (#517) --- README.md | 3 +- examples/blue-green-deployment/README.md | 98 +++++++++ examples/blue-green-deployment/main.tf | 188 ++++++++++++++++++ examples/blue-green-deployment/outputs.tf | 183 +++++++++++++++++ examples/blue-green-deployment/variables.tf | 0 examples/blue-green-deployment/versions.tf | 10 + examples/complete-mssql/README.md | 4 +- examples/complete-mssql/versions.tf | 2 +- examples/complete-mysql/README.md | 4 +- examples/complete-mysql/main.tf | 3 - examples/complete-mysql/versions.tf | 2 +- examples/complete-oracle/README.md | 4 +- examples/complete-oracle/versions.tf | 2 +- examples/complete-postgres/README.md | 4 +- examples/complete-postgres/versions.tf | 2 +- .../cross-region-replica-postgres/README.md | 4 +- .../cross-region-replica-postgres/versions.tf | 2 +- examples/enhanced-monitoring/README.md | 4 +- examples/enhanced-monitoring/versions.tf | 2 +- examples/groups/README.md | 2 +- examples/groups/versions.tf | 2 +- examples/replica-mysql/README.md | 4 +- examples/replica-mysql/versions.tf | 2 +- examples/replica-postgres/README.md | 4 +- examples/replica-postgres/versions.tf | 2 +- examples/role-association-postgres/README.md | 4 +- .../role-association-postgres/versions.tf | 2 +- examples/s3-import-mysql/README.md | 4 +- examples/s3-import-mysql/versions.tf | 2 +- modules/db_instance/README.md | 4 +- modules/db_instance/versions.tf | 2 +- .../versions.tf | 2 +- .../db_instance_role_association/README.md | 4 +- .../db_instance_role_association/versions.tf | 2 +- modules/db_option_group/README.md | 4 +- modules/db_option_group/versions.tf | 2 +- modules/db_parameter_group/README.md | 4 +- modules/db_parameter_group/versions.tf | 2 +- modules/db_subnet_group/README.md | 4 +- modules/db_subnet_group/versions.tf | 2 +- versions.tf | 2 +- 41 files changed, 530 insertions(+), 53 deletions(-) create mode 100644 examples/blue-green-deployment/README.md create mode 100644 examples/blue-green-deployment/main.tf create mode 100644 examples/blue-green-deployment/outputs.tf create mode 100644 examples/blue-green-deployment/variables.tf create mode 100644 examples/blue-green-deployment/versions.tf diff --git a/README.md b/README.md index b243943b..fb955332 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,7 @@ Users have the ability to: - [Replica RDS example for MySQL](https://github.com/terraform-aws-modules/terraform-aws-rds/tree/master/examples/replica-mysql) - [Replica RDS example for PostgreSQL](https://github.com/terraform-aws-modules/terraform-aws-rds/tree/master/examples/replica-postgres) - [S3 import example for MySQL](https://github.com/terraform-aws-modules/terraform-aws-rds/tree/master/examples/s3-import-mysql) +- [Blue/Green Deployment example for MySQL and PostgreSQL](https://github.com/terraform-aws-modules/terraform-aws-rds/tree/master/examples/blue-green-deployment) ## Notes @@ -209,7 +210,7 @@ Users have the ability to: | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers diff --git a/examples/blue-green-deployment/README.md b/examples/blue-green-deployment/README.md new file mode 100644 index 00000000..5695af7d --- /dev/null +++ b/examples/blue-green-deployment/README.md @@ -0,0 +1,98 @@ +# Blue/Green deployment example for PostgreSQL + +Configuration in this directory creates a set of RDS resources including DB instance, DB subnet group and DB parameter group. + +## Usage + +To run this example you need to execute: + +```bash +$ terraform init +$ terraform plan +$ terraform apply +``` + +To see blue/green deployment, update the `engine_version` argument in `module.postgres` to 15.4 and/or `engine_version` in module.mysql to 8.0.34 after initial apply then execute: + +```bash +$ terraform plan +$ terraform apply +``` + +Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources. + + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= 1.0 | +| [aws](#requirement\_aws) | >= 5.25 | + +## Providers + +| Name | Version | +|------|---------| +| [aws](#provider\_aws) | >= 5.25 | + +## Modules + +| Name | Source | Version | +|------|--------|---------| +| [mysql](#module\_mysql) | ../../ | n/a | +| [mysql\_security\_group](#module\_mysql\_security\_group) | terraform-aws-modules/security-group/aws | ~> 5.0 | +| [postgres](#module\_postgres) | ../../ | n/a | +| [postgres\_security\_group](#module\_postgres\_security\_group) | terraform-aws-modules/security-group/aws | ~> 5.0 | +| [vpc](#module\_vpc) | terraform-aws-modules/vpc/aws | ~> 5.0 | + +## Resources + +| Name | Type | +|------|------| +| [aws_availability_zones.available](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/availability_zones) | data source | + +## Inputs + +No inputs. + +## Outputs + +| Name | Description | +|------|-------------| +| [db\_instance\_status](#output\_db\_instance\_status) | The RDS instance status | +| [mysql\_db\_instance\_address](#output\_mysql\_db\_instance\_address) | The address of the RDS instance | +| [mysql\_db\_instance\_arn](#output\_mysql\_db\_instance\_arn) | The ARN of the RDS instance | +| [mysql\_db\_instance\_availability\_zone](#output\_mysql\_db\_instance\_availability\_zone) | The availability zone of the RDS instance | +| [mysql\_db\_instance\_cloudwatch\_log\_groups](#output\_mysql\_db\_instance\_cloudwatch\_log\_groups) | Map of CloudWatch log groups created and their attributes | +| [mysql\_db\_instance\_endpoint](#output\_mysql\_db\_instance\_endpoint) | The connection endpoint | +| [mysql\_db\_instance\_engine](#output\_mysql\_db\_instance\_engine) | The database engine | +| [mysql\_db\_instance\_engine\_version\_actual](#output\_mysql\_db\_instance\_engine\_version\_actual) | The running version of the database | +| [mysql\_db\_instance\_hosted\_zone\_id](#output\_mysql\_db\_instance\_hosted\_zone\_id) | The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record) | +| [mysql\_db\_instance\_identifier](#output\_mysql\_db\_instance\_identifier) | The RDS instance identifier | +| [mysql\_db\_instance\_name](#output\_mysql\_db\_instance\_name) | The database name | +| [mysql\_db\_instance\_port](#output\_mysql\_db\_instance\_port) | The database port | +| [mysql\_db\_instance\_resource\_id](#output\_mysql\_db\_instance\_resource\_id) | The RDS Resource ID of this instance | +| [mysql\_db\_instance\_username](#output\_mysql\_db\_instance\_username) | The master username for the database | +| [mysql\_db\_parameter\_group\_arn](#output\_mysql\_db\_parameter\_group\_arn) | The ARN of the db parameter group | +| [mysql\_db\_parameter\_group\_id](#output\_mysql\_db\_parameter\_group\_id) | The db parameter group id | +| [mysql\_db\_subnet\_group\_arn](#output\_mysql\_db\_subnet\_group\_arn) | The ARN of the db subnet group | +| [mysql\_db\_subnet\_group\_id](#output\_mysql\_db\_subnet\_group\_id) | The db subnet group name | +| [postgres\_db\_instance\_address](#output\_postgres\_db\_instance\_address) | The address of the RDS instance | +| [postgres\_db\_instance\_arn](#output\_postgres\_db\_instance\_arn) | The ARN of the RDS instance | +| [postgres\_db\_instance\_availability\_zone](#output\_postgres\_db\_instance\_availability\_zone) | The availability zone of the RDS instance | +| [postgres\_db\_instance\_cloudwatch\_log\_groups](#output\_postgres\_db\_instance\_cloudwatch\_log\_groups) | Map of CloudWatch log groups created and their attributes | +| [postgres\_db\_instance\_endpoint](#output\_postgres\_db\_instance\_endpoint) | The connection endpoint | +| [postgres\_db\_instance\_engine](#output\_postgres\_db\_instance\_engine) | The database engine | +| [postgres\_db\_instance\_engine\_version\_actual](#output\_postgres\_db\_instance\_engine\_version\_actual) | The running version of the database | +| [postgres\_db\_instance\_hosted\_zone\_id](#output\_postgres\_db\_instance\_hosted\_zone\_id) | The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record) | +| [postgres\_db\_instance\_identifier](#output\_postgres\_db\_instance\_identifier) | The RDS instance identifier | +| [postgres\_db\_instance\_name](#output\_postgres\_db\_instance\_name) | The database name | +| [postgres\_db\_instance\_port](#output\_postgres\_db\_instance\_port) | The database port | +| [postgres\_db\_instance\_resource\_id](#output\_postgres\_db\_instance\_resource\_id) | The RDS Resource ID of this instance | +| [postgres\_db\_instance\_status](#output\_postgres\_db\_instance\_status) | The RDS instance status | +| [postgres\_db\_instance\_username](#output\_postgres\_db\_instance\_username) | The master username for the database | +| [postgres\_db\_parameter\_group\_arn](#output\_postgres\_db\_parameter\_group\_arn) | The ARN of the db parameter group | +| [postgres\_db\_parameter\_group\_id](#output\_postgres\_db\_parameter\_group\_id) | The db parameter group id | +| [postgres\_db\_subnet\_group\_arn](#output\_postgres\_db\_subnet\_group\_arn) | The ARN of the db subnet group | +| [postgres\_db\_subnet\_group\_id](#output\_postgres\_db\_subnet\_group\_id) | The db subnet group name | + diff --git a/examples/blue-green-deployment/main.tf b/examples/blue-green-deployment/main.tf new file mode 100644 index 00000000..f2f4ec20 --- /dev/null +++ b/examples/blue-green-deployment/main.tf @@ -0,0 +1,188 @@ +provider "aws" { + region = local.region +} + +data "aws_availability_zones" "available" {} + +locals { + name = "blue-green-example" + region = "eu-west-1" + + vpc_cidr = "10.0.0.0/16" + azs = slice(data.aws_availability_zones.available.names, 0, 3) + + tags = { + Name = local.name + Example = local.name + Repository = "https://github.com/terraform-aws-modules/terraform-aws-rds" + } +} + +################################################################################ +# Postgres +################################################################################ + +module "postgres" { + source = "../../" + + identifier = "${local.name}-postgres" + + # All blue/green deployment compatible versions: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.html + engine = "postgres" + engine_version = "14.9" + family = "postgres14" # DB parameter group + major_engine_version = "14" # DB option group + instance_class = "db.t4g.large" + + allocated_storage = 20 + max_allocated_storage = 100 + + # NOTE: Do NOT use 'user' as the value for 'username' as it throws: + # "Error creating DB Instance: InvalidParameterValue: MasterUsername + # user cannot be used as it is a reserved word used by the engine" + db_name = "blueGreenExamplePostgresql" + username = "blue_green_example_postgresql" + port = 5432 + + multi_az = true + db_subnet_group_name = module.vpc.database_subnet_group + vpc_security_group_ids = [module.postgres_security_group.security_group_id] + + maintenance_window = "Mon:00:00-Mon:03:00" + backup_window = "03:00-06:00" + enabled_cloudwatch_logs_exports = ["postgresql", "upgrade"] + create_cloudwatch_log_group = true + blue_green_update = { + enabled = true + } + + password = "UberSecretPassword" + # Not supported with blue/green deployment + manage_master_user_password = false + + backup_retention_period = 1 + skip_final_snapshot = true + deletion_protection = false + + parameters = [ + # required for blue-green deployment + { + name = "rds.logical_replication" + value = 1 + apply_method = "pending-reboot" + } + ] + + tags = local.tags +} + +################################################################################ +# MySQL +################################################################################ + +module "mysql" { + source = "../../" + + identifier = "${local.name}-mysql" + + # All blue/green deployment compatible versions: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.html + engine = "mysql" + engine_version = "8.0.33" + family = "mysql8.0" # DB parameter group + major_engine_version = "8.0" # DB option group + instance_class = "db.t4g.large" + + allocated_storage = 20 + max_allocated_storage = 100 + + db_name = "blueGreenExampleMysql" + username = "blue_green_example_mysql" + port = 3306 + + password = "UberSecretPassword" + # Not supported with blue/green deployment + manage_master_user_password = false + + multi_az = true + db_subnet_group_name = module.vpc.database_subnet_group + vpc_security_group_ids = [module.mysql_security_group.security_group_id] + + maintenance_window = "Mon:00:00-Mon:03:00" + backup_window = "03:00-06:00" + enabled_cloudwatch_logs_exports = ["general"] + create_cloudwatch_log_group = true + blue_green_update = { + enabled = true + } + + skip_final_snapshot = true + deletion_protection = false + + tags = local.tags +} + +################################################################################ +# Supporting Resources +################################################################################ + +module "vpc" { + source = "terraform-aws-modules/vpc/aws" + version = "~> 5.0" + + name = local.name + cidr = local.vpc_cidr + + azs = local.azs + public_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k)] + private_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k + 3)] + database_subnets = [for k, v in local.azs : cidrsubnet(local.vpc_cidr, 8, k + 6)] + + create_database_subnet_group = true + + tags = local.tags +} + +module "postgres_security_group" { + source = "terraform-aws-modules/security-group/aws" + version = "~> 5.0" + + name = "${local.name}-postgresql" + description = "Blue/Green deployment PostgreSQL example security group" + vpc_id = module.vpc.vpc_id + + # ingress + ingress_with_cidr_blocks = [ + { + from_port = 5432 + to_port = 5432 + protocol = "tcp" + description = "PostgreSQL access from within VPC" + cidr_blocks = module.vpc.vpc_cidr_block + }, + ] + + tags = local.tags +} + + +module "mysql_security_group" { + source = "terraform-aws-modules/security-group/aws" + version = "~> 5.0" + + name = "${local.name}-mysql" + description = "Blue/Green deployment MySQL example security group" + vpc_id = module.vpc.vpc_id + + # ingress + ingress_with_cidr_blocks = [ + { + from_port = 3306 + to_port = 3306 + protocol = "tcp" + description = "MySQL access from within VPC" + cidr_blocks = module.vpc.vpc_cidr_block + }, + ] + + tags = local.tags +} diff --git a/examples/blue-green-deployment/outputs.tf b/examples/blue-green-deployment/outputs.tf new file mode 100644 index 00000000..d14a6761 --- /dev/null +++ b/examples/blue-green-deployment/outputs.tf @@ -0,0 +1,183 @@ +# postgresql +output "postgres_db_instance_address" { + description = "The address of the RDS instance" + value = module.postgres.db_instance_address +} + +output "postgres_db_instance_arn" { + description = "The ARN of the RDS instance" + value = module.postgres.db_instance_arn +} + +output "postgres_db_instance_availability_zone" { + description = "The availability zone of the RDS instance" + value = module.postgres.db_instance_availability_zone +} + +output "postgres_db_instance_endpoint" { + description = "The connection endpoint" + value = module.postgres.db_instance_endpoint +} + +output "postgres_db_instance_engine" { + description = "The database engine" + value = module.postgres.db_instance_engine +} + +output "postgres_db_instance_engine_version_actual" { + description = "The running version of the database" + value = module.postgres.db_instance_engine_version_actual +} + +output "postgres_db_instance_hosted_zone_id" { + description = "The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record)" + value = module.postgres.db_instance_hosted_zone_id +} + +output "postgres_db_instance_identifier" { + description = "The RDS instance identifier" + value = module.postgres.db_instance_identifier +} + +output "postgres_db_instance_resource_id" { + description = "The RDS Resource ID of this instance" + value = module.postgres.db_instance_resource_id +} + +output "postgres_db_instance_status" { + description = "The RDS instance status" + value = module.postgres.db_instance_status +} + +output "postgres_db_instance_name" { + description = "The database name" + value = module.postgres.db_instance_name +} + +output "postgres_db_instance_username" { + description = "The master username for the database" + value = module.postgres.db_instance_username + sensitive = true +} + +output "postgres_db_instance_port" { + description = "The database port" + value = module.postgres.db_instance_port +} + +output "postgres_db_subnet_group_id" { + description = "The db subnet group name" + value = module.postgres.db_subnet_group_id +} + +output "postgres_db_subnet_group_arn" { + description = "The ARN of the db subnet group" + value = module.postgres.db_subnet_group_arn +} + +output "postgres_db_parameter_group_id" { + description = "The db parameter group id" + value = module.postgres.db_parameter_group_id +} + +output "postgres_db_parameter_group_arn" { + description = "The ARN of the db parameter group" + value = module.postgres.db_parameter_group_arn +} + +output "postgres_db_instance_cloudwatch_log_groups" { + description = "Map of CloudWatch log groups created and their attributes" + value = module.postgres.db_instance_cloudwatch_log_groups +} + +# mysql +output "mysql_db_instance_address" { + description = "The address of the RDS instance" + value = module.mysql.db_instance_address +} + +output "mysql_db_instance_arn" { + description = "The ARN of the RDS instance" + value = module.mysql.db_instance_arn +} + +output "mysql_db_instance_availability_zone" { + description = "The availability zone of the RDS instance" + value = module.mysql.db_instance_availability_zone +} + +output "mysql_db_instance_endpoint" { + description = "The connection endpoint" + value = module.mysql.db_instance_endpoint +} + +output "mysql_db_instance_engine" { + description = "The database engine" + value = module.mysql.db_instance_engine +} + +output "mysql_db_instance_engine_version_actual" { + description = "The running version of the database" + value = module.mysql.db_instance_engine_version_actual +} + +output "mysql_db_instance_hosted_zone_id" { + description = "The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record)" + value = module.mysql.db_instance_hosted_zone_id +} + +output "mysql_db_instance_identifier" { + description = "The RDS instance identifier" + value = module.mysql.db_instance_identifier +} + +output "mysql_db_instance_resource_id" { + description = "The RDS Resource ID of this instance" + value = module.mysql.db_instance_resource_id +} + +output "db_instance_status" { + description = "The RDS instance status" + value = module.mysql.db_instance_status +} + +output "mysql_db_instance_name" { + description = "The database name" + value = module.mysql.db_instance_name +} + +output "mysql_db_instance_username" { + description = "The master username for the database" + value = module.mysql.db_instance_username + sensitive = true +} + +output "mysql_db_instance_port" { + description = "The database port" + value = module.mysql.db_instance_port +} + +output "mysql_db_subnet_group_id" { + description = "The db subnet group name" + value = module.mysql.db_subnet_group_id +} + +output "mysql_db_subnet_group_arn" { + description = "The ARN of the db subnet group" + value = module.mysql.db_subnet_group_arn +} + +output "mysql_db_parameter_group_id" { + description = "The db parameter group id" + value = module.mysql.db_parameter_group_id +} + +output "mysql_db_parameter_group_arn" { + description = "The ARN of the db parameter group" + value = module.mysql.db_parameter_group_arn +} + +output "mysql_db_instance_cloudwatch_log_groups" { + description = "Map of CloudWatch log groups created and their attributes" + value = module.mysql.db_instance_cloudwatch_log_groups +} diff --git a/examples/blue-green-deployment/variables.tf b/examples/blue-green-deployment/variables.tf new file mode 100644 index 00000000..e69de29b diff --git a/examples/blue-green-deployment/versions.tf b/examples/blue-green-deployment/versions.tf new file mode 100644 index 00000000..2c1a62c1 --- /dev/null +++ b/examples/blue-green-deployment/versions.tf @@ -0,0 +1,10 @@ +terraform { + required_version = ">= 1.0" + + required_providers { + aws = { + source = "hashicorp/aws" + version = ">= 5.25" + } + } +} diff --git a/examples/complete-mssql/README.md b/examples/complete-mssql/README.md index 53a12f31..d09af5a8 100644 --- a/examples/complete-mssql/README.md +++ b/examples/complete-mssql/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/complete-mssql/versions.tf b/examples/complete-mssql/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/complete-mssql/versions.tf +++ b/examples/complete-mssql/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/complete-mysql/README.md b/examples/complete-mysql/README.md index d5fc0b6e..cf97ba6b 100644 --- a/examples/complete-mysql/README.md +++ b/examples/complete-mysql/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/complete-mysql/main.tf b/examples/complete-mysql/main.tf index aa5a1ac1..6f916470 100644 --- a/examples/complete-mysql/main.tf +++ b/examples/complete-mysql/main.tf @@ -49,9 +49,6 @@ module "db" { backup_window = "03:00-06:00" enabled_cloudwatch_logs_exports = ["general"] create_cloudwatch_log_group = true - blue_green_update = { - enabled = true - } skip_final_snapshot = true deletion_protection = false diff --git a/examples/complete-mysql/versions.tf b/examples/complete-mysql/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/complete-mysql/versions.tf +++ b/examples/complete-mysql/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/complete-oracle/README.md b/examples/complete-oracle/README.md index 8e0af7b2..4141f674 100644 --- a/examples/complete-oracle/README.md +++ b/examples/complete-oracle/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/complete-oracle/versions.tf b/examples/complete-oracle/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/complete-oracle/versions.tf +++ b/examples/complete-oracle/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/complete-postgres/README.md b/examples/complete-postgres/README.md index a20348fc..b9f0c637 100644 --- a/examples/complete-postgres/README.md +++ b/examples/complete-postgres/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/complete-postgres/versions.tf b/examples/complete-postgres/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/complete-postgres/versions.tf +++ b/examples/complete-postgres/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/cross-region-replica-postgres/README.md b/examples/cross-region-replica-postgres/README.md index 2ad9ffc9..40bb6c1b 100644 --- a/examples/cross-region-replica-postgres/README.md +++ b/examples/cross-region-replica-postgres/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/cross-region-replica-postgres/versions.tf b/examples/cross-region-replica-postgres/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/cross-region-replica-postgres/versions.tf +++ b/examples/cross-region-replica-postgres/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/enhanced-monitoring/README.md b/examples/enhanced-monitoring/README.md index c6cc9b6b..b015deab 100644 --- a/examples/enhanced-monitoring/README.md +++ b/examples/enhanced-monitoring/README.md @@ -22,13 +22,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/enhanced-monitoring/versions.tf b/examples/enhanced-monitoring/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/enhanced-monitoring/versions.tf +++ b/examples/enhanced-monitoring/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/groups/README.md b/examples/groups/README.md index 39842f06..eaa915ae 100644 --- a/examples/groups/README.md +++ b/examples/groups/README.md @@ -20,7 +20,7 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers diff --git a/examples/groups/versions.tf b/examples/groups/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/groups/versions.tf +++ b/examples/groups/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/replica-mysql/README.md b/examples/replica-mysql/README.md index c2032966..3ec8a0eb 100644 --- a/examples/replica-mysql/README.md +++ b/examples/replica-mysql/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/replica-mysql/versions.tf b/examples/replica-mysql/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/replica-mysql/versions.tf +++ b/examples/replica-mysql/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/replica-postgres/README.md b/examples/replica-postgres/README.md index cf47efd6..9e834301 100644 --- a/examples/replica-postgres/README.md +++ b/examples/replica-postgres/README.md @@ -20,13 +20,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/replica-postgres/versions.tf b/examples/replica-postgres/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/replica-postgres/versions.tf +++ b/examples/replica-postgres/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/examples/role-association-postgres/README.md b/examples/role-association-postgres/README.md index 1af47b7b..f37eeb73 100644 --- a/examples/role-association-postgres/README.md +++ b/examples/role-association-postgres/README.md @@ -10,13 +10,13 @@ Further database configurations for creating extension and invoking from postgre | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/role-association-postgres/versions.tf b/examples/role-association-postgres/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/examples/role-association-postgres/versions.tf +++ b/examples/role-association-postgres/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } } diff --git a/examples/s3-import-mysql/README.md b/examples/s3-import-mysql/README.md index 36d626ab..b15d19dd 100644 --- a/examples/s3-import-mysql/README.md +++ b/examples/s3-import-mysql/README.md @@ -49,13 +49,13 @@ Note that this example may create resources which cost money. Run `terraform des | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.00 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.00 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/examples/s3-import-mysql/versions.tf b/examples/s3-import-mysql/versions.tf index 95708b63..2c1a62c1 100644 --- a/examples/s3-import-mysql/versions.tf +++ b/examples/s3-import-mysql/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.00" + version = ">= 5.25" } } } diff --git a/modules/db_instance/README.md b/modules/db_instance/README.md index 05091470..bcc5ccdf 100644 --- a/modules/db_instance/README.md +++ b/modules/db_instance/README.md @@ -6,14 +6,14 @@ | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | | [random](#requirement\_random) | >= 3.1 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.25 | | [random](#provider\_random) | >= 3.1 | ## Modules diff --git a/modules/db_instance/versions.tf b/modules/db_instance/versions.tf index 8f85fe99..b791729e 100644 --- a/modules/db_instance/versions.tf +++ b/modules/db_instance/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } random = { diff --git a/modules/db_instance_automated_backups_replication/versions.tf b/modules/db_instance_automated_backups_replication/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/modules/db_instance_automated_backups_replication/versions.tf +++ b/modules/db_instance_automated_backups_replication/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } } diff --git a/modules/db_instance_role_association/README.md b/modules/db_instance_role_association/README.md index 9f428d8e..be342d62 100644 --- a/modules/db_instance_role_association/README.md +++ b/modules/db_instance_role_association/README.md @@ -6,13 +6,13 @@ | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/modules/db_instance_role_association/versions.tf b/modules/db_instance_role_association/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/modules/db_instance_role_association/versions.tf +++ b/modules/db_instance_role_association/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } } diff --git a/modules/db_option_group/README.md b/modules/db_option_group/README.md index c2dfb646..a48eaf38 100644 --- a/modules/db_option_group/README.md +++ b/modules/db_option_group/README.md @@ -6,13 +6,13 @@ | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/modules/db_option_group/versions.tf b/modules/db_option_group/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/modules/db_option_group/versions.tf +++ b/modules/db_option_group/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } } diff --git a/modules/db_parameter_group/README.md b/modules/db_parameter_group/README.md index 56e16577..8c2ff950 100644 --- a/modules/db_parameter_group/README.md +++ b/modules/db_parameter_group/README.md @@ -6,13 +6,13 @@ | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/modules/db_parameter_group/versions.tf b/modules/db_parameter_group/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/modules/db_parameter_group/versions.tf +++ b/modules/db_parameter_group/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } } diff --git a/modules/db_subnet_group/README.md b/modules/db_subnet_group/README.md index 68a1d5ff..d476046b 100644 --- a/modules/db_subnet_group/README.md +++ b/modules/db_subnet_group/README.md @@ -6,13 +6,13 @@ | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | >= 5.0 | +| [aws](#requirement\_aws) | >= 5.25 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | >= 5.0 | +| [aws](#provider\_aws) | >= 5.25 | ## Modules diff --git a/modules/db_subnet_group/versions.tf b/modules/db_subnet_group/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/modules/db_subnet_group/versions.tf +++ b/modules/db_subnet_group/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } } diff --git a/versions.tf b/versions.tf index ddfcb0e0..2c1a62c1 100644 --- a/versions.tf +++ b/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = ">= 5.0" + version = ">= 5.25" } } }