Skip to content

Commit

Permalink
chore: Update regions used and switch to explicit secondary replicati…
Browse files Browse the repository at this point in the history
…on group variable
  • Loading branch information
bryantbiggs committed Dec 3, 2023
1 parent 54daf93 commit 187771b
Show file tree
Hide file tree
Showing 10 changed files with 30 additions and 22 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -333,11 +333,12 @@ No modules.
| <a name="input_create_parameter_group"></a> [create\_parameter\_group](#input\_create\_parameter\_group) | Determines whether the ElastiCache parameter group will be created or not | `bool` | `false` | no |
| <a name="input_create_primary_global_replication_group"></a> [create\_primary\_global\_replication\_group](#input\_create\_primary\_global\_replication\_group) | Determines whether an primary ElastiCache global replication group will be created | `bool` | `false` | no |
| <a name="input_create_replication_group"></a> [create\_replication\_group](#input\_create\_replication\_group) | Determines whether an ElastiCache replication group will be created or not | `bool` | `true` | no |
| <a name="input_create_secondary_global_replication_group"></a> [create\_secondary\_global\_replication\_group](#input\_create\_secondary\_global\_replication\_group) | Determines whether an secondary ElastiCache global replication group will be created | `bool` | `false` | no |
| <a name="input_create_security_group"></a> [create\_security\_group](#input\_create\_security\_group) | Determines if a security group is created | `bool` | `true` | no |
| <a name="input_create_subnet_group"></a> [create\_subnet\_group](#input\_create\_subnet\_group) | Determines whether the Elasticache subnet group will be created or not | `bool` | `true` | no |
| <a name="input_data_tiering_enabled"></a> [data\_tiering\_enabled](#input\_data\_tiering\_enabled) | Enables data tiering. Data tiering is only supported for replication groups using the `r6gd` node type. This parameter must be set to true when using `r6gd` nodes | `bool` | `null` | no |
| <a name="input_description"></a> [description](#input\_description) | User-created description for the replication group | `string` | `null` | no |
| <a name="input_engine"></a> [engine](#input\_engine) | Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis` | `string` | `null` | no |
| <a name="input_engine"></a> [engine](#input\_engine) | Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis` | `string` | `"redis"` | no |
| <a name="input_engine_version"></a> [engine\_version](#input\_engine\_version) | Version number of the cache engine to be used. If not set, defaults to the latest version | `string` | `null` | no |
| <a name="input_final_snapshot_identifier"></a> [final\_snapshot\_identifier](#input\_final\_snapshot\_identifier) | (Redis only) Name of your final cluster snapshot. If omitted, no final snapshot will be made | `string` | `null` | no |
| <a name="input_global_replication_group_id"></a> [global\_replication\_group\_id](#input\_global\_replication\_group\_id) | The ID of the global replication group to which this replication group should belong | `string` | `null` | no |
Expand Down
2 changes: 1 addition & 1 deletion examples/memcached-cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ provider "aws" {
data "aws_availability_zones" "available" {}

locals {
region = "us-east-1"
region = "eu-west-1"
name = "ex-${basename(path.cwd)}"

vpc_cidr = "10.0.0.0/16"
Expand Down
2 changes: 1 addition & 1 deletion examples/redis-cluster-mode/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ provider "aws" {
data "aws_availability_zones" "available" {}

locals {
region = "us-east-1"
region = "eu-west-1"
name = "ex-${basename(path.cwd)}"

vpc_cidr = "10.0.0.0/16"
Expand Down
2 changes: 1 addition & 1 deletion examples/redis-cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ provider "aws" {
data "aws_availability_zones" "available" {}

locals {
region = "us-east-1"
region = "eu-west-1"
name = "ex-${basename(path.cwd)}"

vpc_cidr = "10.0.0.0/16"
Expand Down
5 changes: 3 additions & 2 deletions examples/redis-global-replication-group/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,9 @@ module "elasticache_secondary" {
aws = aws.euwest1
}

replication_group_id = local.name
global_replication_group_id = module.elasticache_primary.global_replication_group_id
replication_group_id = local.name
create_secondary_global_replication_group = true
global_replication_group_id = module.elasticache_primary.global_replication_group_id

# Security Group
vpc_id = module.vpc_secondary.vpc_id
Expand Down
2 changes: 1 addition & 1 deletion examples/redis-replication-group/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ provider "aws" {
data "aws_availability_zones" "available" {}

locals {
region = "us-east-1"
region = "eu-west-1"
name = "ex-${basename(path.cwd)}"

vpc_cidr = "10.0.0.0/16"
Expand Down
25 changes: 12 additions & 13 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ resource "aws_elasticache_cluster" "this" {
snapshot_retention_limit = local.in_replication_group ? null : var.snapshot_retention_limit
snapshot_window = local.in_replication_group ? null : var.snapshot_window
subnet_group_name = local.in_replication_group ? null : local.subnet_group_name
transit_encryption_enabled = var.transit_encryption_enabled
transit_encryption_enabled = var.engine == "memcached" ? var.transit_encryption_enabled : null

tags = local.tags
}
Expand Down Expand Up @@ -125,9 +125,8 @@ resource "aws_elasticache_replication_group" "this" {
################################################################################

locals {
create_global_replication_group = (var.create_primary_global_replication_group || local.create_secondary_global_replication_group)
create_global_replication_group = var.create_primary_global_replication_group || var.create_secondary_global_replication_group

create_secondary_global_replication_group = var.global_replication_group_id != null
}

resource "aws_elasticache_global_replication_group" "this" {
Expand All @@ -147,17 +146,17 @@ resource "aws_elasticache_replication_group" "global" {
count = var.create && var.create_replication_group && local.create_global_replication_group ? 1 : 0

apply_immediately = var.apply_immediately
at_rest_encryption_enabled = local.create_secondary_global_replication_group ? null : var.at_rest_encryption_enabled
at_rest_encryption_enabled = var.create_secondary_global_replication_group ? null : var.at_rest_encryption_enabled
auth_token = var.auth_token
auth_token_update_strategy = var.auth_token_update_strategy
auto_minor_version_upgrade = var.auto_minor_version_upgrade
automatic_failover_enabled = var.multi_az_enabled || var.cluster_mode_enabled ? true : var.automatic_failover_enabled
data_tiering_enabled = var.data_tiering_enabled
description = coalesce(var.description, "Global replication group")
engine = local.create_secondary_global_replication_group ? null : var.engine
engine_version = local.create_secondary_global_replication_group ? null : var.engine_version
engine = var.create_secondary_global_replication_group ? null : var.engine
engine_version = var.create_secondary_global_replication_group ? null : var.engine_version
final_snapshot_identifier = var.final_snapshot_identifier
global_replication_group_id = local.create_secondary_global_replication_group ? var.global_replication_group_id : null
global_replication_group_id = var.create_secondary_global_replication_group ? var.global_replication_group_id : null
ip_discovery = var.ip_discovery
kms_key_id = var.at_rest_encryption_enabled ? var.kms_key_arn : null

Expand All @@ -178,20 +177,20 @@ resource "aws_elasticache_replication_group" "global" {
node_type = var.node_type
notification_topic_arn = var.notification_topic_arn
num_cache_clusters = var.cluster_mode_enabled ? null : var.num_cache_clusters
num_node_groups = local.create_secondary_global_replication_group ? null : local.num_node_groups
parameter_group_name = local.create_secondary_global_replication_group ? null : local.parameter_group_name_result
num_node_groups = var.create_secondary_global_replication_group ? null : local.num_node_groups
parameter_group_name = var.create_secondary_global_replication_group ? null : local.parameter_group_name_result
port = coalesce(var.port, local.port)
preferred_cache_cluster_azs = var.preferred_cache_cluster_azs
replicas_per_node_group = var.replicas_per_node_group
replication_group_id = var.replication_group_id
security_group_names = local.create_secondary_global_replication_group ? null : var.security_group_names
security_group_names = var.create_secondary_global_replication_group ? null : var.security_group_names
security_group_ids = local.security_group_ids
snapshot_arns = local.create_secondary_global_replication_group ? null : var.snapshot_arns
snapshot_name = local.create_secondary_global_replication_group ? null : var.snapshot_name
snapshot_arns = var.create_secondary_global_replication_group ? null : var.snapshot_arns
snapshot_name = var.create_secondary_global_replication_group ? null : var.snapshot_name
snapshot_retention_limit = var.snapshot_retention_limit
snapshot_window = var.snapshot_window
subnet_group_name = local.subnet_group_name
transit_encryption_enabled = local.create_secondary_global_replication_group ? null : var.transit_encryption_enabled
transit_encryption_enabled = var.create_secondary_global_replication_group ? null : var.transit_encryption_enabled
user_group_ids = var.user_group_ids

tags = local.tags
Expand Down
1 change: 1 addition & 0 deletions modules/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# AWS ElastiCache Terraform sub-module(s)
2 changes: 1 addition & 1 deletion modules/user-group/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ resource "aws_elasticache_user" "default" {
user_id = var.default_user.user_id
user_name = "default"

tags = var.tags
tags = local.tags
}

################################################################################
Expand Down
8 changes: 7 additions & 1 deletion variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ variable "cluster_id" {
variable "engine" {
description = "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`"
type = string
default = null
default = "redis"
}

variable "engine_version" {
Expand Down Expand Up @@ -297,6 +297,12 @@ variable "create_primary_global_replication_group" {
default = false
}

variable "create_secondary_global_replication_group" {
description = "Determines whether an secondary ElastiCache global replication group will be created"
type = bool
default = false
}

################################################################################
# Parameter Group
################################################################################
Expand Down

0 comments on commit 187771b

Please sign in to comment.