11locals {
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-
6089module "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
0 commit comments