Skip to content

Commit 187771b

Browse files
committed
chore: Update regions used and switch to explicit secondary replication group variable
1 parent 54daf93 commit 187771b

File tree

10 files changed

+30
-22
lines changed

10 files changed

+30
-22
lines changed

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -333,11 +333,12 @@ No modules.
333333
| <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 |
334334
| <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 |
335335
| <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 |
336+
| <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 |
336337
| <a name="input_create_security_group"></a> [create\_security\_group](#input\_create\_security\_group) | Determines if a security group is created | `bool` | `true` | no |
337338
| <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 |
338339
| <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 |
339340
| <a name="input_description"></a> [description](#input\_description) | User-created description for the replication group | `string` | `null` | no |
340-
| <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 |
341+
| <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 |
341342
| <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 |
342343
| <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 |
343344
| <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 |

examples/memcached-cluster/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ provider "aws" {
55
data "aws_availability_zones" "available" {}
66

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

1111
vpc_cidr = "10.0.0.0/16"

examples/redis-cluster-mode/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ provider "aws" {
55
data "aws_availability_zones" "available" {}
66

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

1111
vpc_cidr = "10.0.0.0/16"

examples/redis-cluster/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ provider "aws" {
55
data "aws_availability_zones" "available" {}
66

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

1111
vpc_cidr = "10.0.0.0/16"

examples/redis-global-replication-group/main.tf

+3-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ module "elasticache_secondary" {
6363
aws = aws.euwest1
6464
}
6565

66-
replication_group_id = local.name
67-
global_replication_group_id = module.elasticache_primary.global_replication_group_id
66+
replication_group_id = local.name
67+
create_secondary_global_replication_group = true
68+
global_replication_group_id = module.elasticache_primary.global_replication_group_id
6869

6970
# Security Group
7071
vpc_id = module.vpc_secondary.vpc_id

examples/redis-replication-group/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ provider "aws" {
55
data "aws_availability_zones" "available" {}
66

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

1111
vpc_cidr = "10.0.0.0/16"

main.tf

+12-13
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ resource "aws_elasticache_cluster" "this" {
5353
snapshot_retention_limit = local.in_replication_group ? null : var.snapshot_retention_limit
5454
snapshot_window = local.in_replication_group ? null : var.snapshot_window
5555
subnet_group_name = local.in_replication_group ? null : local.subnet_group_name
56-
transit_encryption_enabled = var.transit_encryption_enabled
56+
transit_encryption_enabled = var.engine == "memcached" ? var.transit_encryption_enabled : null
5757

5858
tags = local.tags
5959
}
@@ -125,9 +125,8 @@ resource "aws_elasticache_replication_group" "this" {
125125
################################################################################
126126

127127
locals {
128-
create_global_replication_group = (var.create_primary_global_replication_group || local.create_secondary_global_replication_group)
128+
create_global_replication_group = var.create_primary_global_replication_group || var.create_secondary_global_replication_group
129129

130-
create_secondary_global_replication_group = var.global_replication_group_id != null
131130
}
132131

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

149148
apply_immediately = var.apply_immediately
150-
at_rest_encryption_enabled = local.create_secondary_global_replication_group ? null : var.at_rest_encryption_enabled
149+
at_rest_encryption_enabled = var.create_secondary_global_replication_group ? null : var.at_rest_encryption_enabled
151150
auth_token = var.auth_token
152151
auth_token_update_strategy = var.auth_token_update_strategy
153152
auto_minor_version_upgrade = var.auto_minor_version_upgrade
154153
automatic_failover_enabled = var.multi_az_enabled || var.cluster_mode_enabled ? true : var.automatic_failover_enabled
155154
data_tiering_enabled = var.data_tiering_enabled
156155
description = coalesce(var.description, "Global replication group")
157-
engine = local.create_secondary_global_replication_group ? null : var.engine
158-
engine_version = local.create_secondary_global_replication_group ? null : var.engine_version
156+
engine = var.create_secondary_global_replication_group ? null : var.engine
157+
engine_version = var.create_secondary_global_replication_group ? null : var.engine_version
159158
final_snapshot_identifier = var.final_snapshot_identifier
160-
global_replication_group_id = local.create_secondary_global_replication_group ? var.global_replication_group_id : null
159+
global_replication_group_id = var.create_secondary_global_replication_group ? var.global_replication_group_id : null
161160
ip_discovery = var.ip_discovery
162161
kms_key_id = var.at_rest_encryption_enabled ? var.kms_key_arn : null
163162

@@ -178,20 +177,20 @@ resource "aws_elasticache_replication_group" "global" {
178177
node_type = var.node_type
179178
notification_topic_arn = var.notification_topic_arn
180179
num_cache_clusters = var.cluster_mode_enabled ? null : var.num_cache_clusters
181-
num_node_groups = local.create_secondary_global_replication_group ? null : local.num_node_groups
182-
parameter_group_name = local.create_secondary_global_replication_group ? null : local.parameter_group_name_result
180+
num_node_groups = var.create_secondary_global_replication_group ? null : local.num_node_groups
181+
parameter_group_name = var.create_secondary_global_replication_group ? null : local.parameter_group_name_result
183182
port = coalesce(var.port, local.port)
184183
preferred_cache_cluster_azs = var.preferred_cache_cluster_azs
185184
replicas_per_node_group = var.replicas_per_node_group
186185
replication_group_id = var.replication_group_id
187-
security_group_names = local.create_secondary_global_replication_group ? null : var.security_group_names
186+
security_group_names = var.create_secondary_global_replication_group ? null : var.security_group_names
188187
security_group_ids = local.security_group_ids
189-
snapshot_arns = local.create_secondary_global_replication_group ? null : var.snapshot_arns
190-
snapshot_name = local.create_secondary_global_replication_group ? null : var.snapshot_name
188+
snapshot_arns = var.create_secondary_global_replication_group ? null : var.snapshot_arns
189+
snapshot_name = var.create_secondary_global_replication_group ? null : var.snapshot_name
191190
snapshot_retention_limit = var.snapshot_retention_limit
192191
snapshot_window = var.snapshot_window
193192
subnet_group_name = local.subnet_group_name
194-
transit_encryption_enabled = local.create_secondary_global_replication_group ? null : var.transit_encryption_enabled
193+
transit_encryption_enabled = var.create_secondary_global_replication_group ? null : var.transit_encryption_enabled
195194
user_group_ids = var.user_group_ids
196195

197196
tags = local.tags

modules/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# AWS ElastiCache Terraform sub-module(s)

modules/user-group/main.tf

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ resource "aws_elasticache_user" "default" {
3939
user_id = var.default_user.user_id
4040
user_name = "default"
4141

42-
tags = var.tags
42+
tags = local.tags
4343
}
4444

4545
################################################################################

variables.tf

+7-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ variable "cluster_id" {
5959
variable "engine" {
6060
description = "Name of the cache engine to be used for this cache cluster. Valid values are `memcached` or `redis`"
6161
type = string
62-
default = null
62+
default = "redis"
6363
}
6464

6565
variable "engine_version" {
@@ -297,6 +297,12 @@ variable "create_primary_global_replication_group" {
297297
default = false
298298
}
299299

300+
variable "create_secondary_global_replication_group" {
301+
description = "Determines whether an secondary ElastiCache global replication group will be created"
302+
type = bool
303+
default = false
304+
}
305+
300306
################################################################################
301307
# Parameter Group
302308
################################################################################

0 commit comments

Comments
 (0)