Skip to content

Commit 9e910cc

Browse files
committed
feat: Update cluster configuration and move from sub-module to root module
1 parent 0ce5de6 commit 9e910cc

File tree

8 files changed

+256
-440
lines changed

8 files changed

+256
-440
lines changed

README.md

Lines changed: 40 additions & 30 deletions
Large diffs are not rendered by default.

main.tf

Lines changed: 63 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,66 @@
11
locals {
2-
identifier = var.replication_group_id != null ? var.replication_group_id : var.cluster_id
2+
# https://github.com/hashicorp/terraform-provider-aws/blob/3c4cb52c5dc2c09e10e5a717f73d1d8bc4186e87/internal/service/elasticache/cluster.go#L271
3+
in_replication_group = var.replication_group_id != null
4+
5+
port = var.engine == "memcached" ? 11211 : 6379
6+
}
7+
8+
################################################################################
9+
# Cluster
10+
################################################################################
11+
12+
resource "aws_elasticache_cluster" "this" {
13+
count = var.create ? 1 : 0
14+
15+
apply_immediately = var.apply_immediately
16+
auto_minor_version_upgrade = var.auto_minor_version_upgrade
17+
availability_zone = var.availability_zone
18+
az_mode = local.in_replication_group ? null : var.az_mode
19+
cluster_id = var.cluster_id
20+
engine = var.engine
21+
engine_version = local.in_replication_group ? null : var.engine_version
22+
final_snapshot_identifier = var.final_snapshot_identifier
23+
ip_discovery = var.ip_discovery
24+
25+
dynamic "log_delivery_configuration" {
26+
for_each = var.log_delivery_configuration
27+
28+
content {
29+
destination = log_delivery_configuration.value.destination
30+
destination_type = log_delivery_configuration.value.destination_type
31+
log_format = log_delivery_configuration.value.log_format
32+
log_type = try(log_delivery_configuration.value.log_type, each.key)
33+
}
34+
}
35+
36+
maintenance_window = local.in_replication_group ? null : var.maintenance_window
37+
network_type = var.network_type
38+
node_type = local.in_replication_group ? null : var.node_type
39+
notification_topic_arn = local.in_replication_group ? null : var.notification_topic_arn
40+
num_cache_nodes = local.in_replication_group ? null : var.num_cache_nodes
41+
outpost_mode = var.outpost_mode
42+
parameter_group_name = local.in_replication_group ? null : var.parameter_group_name
43+
port = local.in_replication_group ? null : coalesce(var.port, local.port)
44+
preferred_availability_zones = var.preferred_availability_zones
45+
preferred_outpost_arn = var.preferred_outpost_arn
46+
replication_group_id = var.replication_group_id
47+
security_group_ids = local.in_replication_group ? null : var.security_group_ids
48+
snapshot_arns = local.in_replication_group ? null : var.snapshot_arns
49+
snapshot_name = local.in_replication_group ? null : var.snapshot_name
50+
snapshot_retention_limit = local.in_replication_group ? null : var.snapshot_retention_limit
51+
snapshot_window = local.in_replication_group ? null : var.snapshot_window
52+
subnet_group_name = local.in_replication_group ? null : var.subnet_group_name
53+
transit_encryption_enabled = var.transit_encryption_enabled
54+
55+
tags = var.tags
56+
}
57+
58+
################################################################################
59+
# Subnet Group
60+
################################################################################
61+
62+
locals {
63+
identifier = local.in_replication_group ? var.replication_group_id : var.cluster_id
364
subnet_group_name = var.create_subnet_group ? module.subnet_group.name : var.subnet_group_name
465
parameter_group_name = var.create_parameter_group ? module.parameter_group.id : var.parameter_group_name
566
}
@@ -25,38 +86,6 @@ module "parameter_group" {
2586
parameters = var.parameters
2687
}
2788

28-
module "cluster" {
29-
source = "./modules/cluster"
30-
31-
create = var.cluster_id != null ? true : false
32-
cluster_id = var.cluster_id
33-
replication_group_id = var.replication_group_id
34-
35-
engine = var.engine
36-
engine_version = var.engine_version
37-
port = var.port
38-
node_type = var.node_type
39-
num_cache_nodes = var.num_cache_nodes
40-
41-
subnet_group_name = local.subnet_group_name
42-
az_mode = var.az_mode
43-
availability_zone = var.availability_zone
44-
preferred_availability_zones = var.preferred_availability_zones
45-
security_group_ids = var.security_group_ids
46-
47-
maintenance_window = var.maintenance_window
48-
parameter_group_name = local.parameter_group_name
49-
apply_immediately = var.apply_immediately
50-
51-
snapshot_arns = var.snapshot_arns
52-
snapshot_name = var.snapshot_name
53-
snapshot_window = var.snapshot_window
54-
snapshot_retention_limit = var.snapshot_retention_limit
55-
notification_topic_arn = var.notification_topic_arn
56-
57-
tags = var.tags
58-
}
59-
6089
module "replication_group" {
6190
source = "./modules/replication_group"
6291

@@ -69,7 +98,7 @@ module "replication_group" {
6998
replication_group_id = var.replication_group_id
7099
replication_group_description = var.replication_group_description
71100
automatic_failover_enabled = var.automatic_failover_enabled
72-
availability_zones = var.availability_zones
101+
# availability_zones = var.availability_zones
73102

74103
number_cache_clusters = var.number_cache_clusters
75104
cluster_mode = var.cluster_mode

modules/cluster/README.md

Lines changed: 0 additions & 59 deletions
This file was deleted.

modules/cluster/main.tf

Lines changed: 0 additions & 62 deletions
This file was deleted.

modules/cluster/outputs.tf

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)