Skip to content

Commit

Permalink
feat: update value route-53
Browse files Browse the repository at this point in the history
  • Loading branch information
anmolnagpal committed Jun 9, 2023
1 parent d88cfde commit 85f0d25
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 24 deletions.
24 changes: 13 additions & 11 deletions _example/memcached/example.tf
Expand Up @@ -54,17 +54,19 @@ module "memcached" {
allowed_ip = [module.vpc.vpc_cidr_block]
allowed_ports = [11211]

cluster_enabled = true
engine = "memcached"
engine_version = "1.6.17"
family = "memcached1.5"
parameter_group_name = ""
az_mode = "cross-az"
port = 11211
node_type = "cache.t2.micro"
num_cache_nodes = 2
subnet_ids = module.subnets.public_subnet_id
availability_zones = ["eu-west-1a", "eu-west-1b"]
cluster_enabled = true
memcached_ssm_parameter_endpoint_enabled = true
memcached_route53_record_enabled = true
engine = "memcached"
engine_version = "1.6.17"
family = "memcached1.5"
parameter_group_name = ""
az_mode = "cross-az"
port = 11211
node_type = "cache.t2.micro"
num_cache_nodes = 2
subnet_ids = module.subnets.public_subnet_id
availability_zones = ["eu-west-1a", "eu-west-1b"]
extra_tags = {
Application = "CloudDrove"
}
Expand Down
1 change: 0 additions & 1 deletion _example/redis/example.tf
Expand Up @@ -57,7 +57,6 @@ module "redis" {
allowed_ports = [6379]

cluster_replication_enabled = true
replication_enabled = true
engine = "redis"
engine_version = "7.0"
parameter_group_name = "default.redis7"
Expand Down
32 changes: 29 additions & 3 deletions main.tf
Expand Up @@ -222,7 +222,7 @@ resource "aws_route53_record" "elasticache" {
type = var.route53_type
ttl = var.route53_ttl
zone_id = var.route53_zone_id
records = var.automatic_failover_enabled == true ? aws_elasticache_replication_group.cluster.*.configuration_endpoint_address : aws_elasticache_cluster.default.*.configuration_endpoint
records = var.automatic_failover_enabled ? [join("", aws_elasticache_replication_group.cluster[*].configuration_endpoint_address)] : [join("", aws_elasticache_replication_group.cluster[*].primary_endpoint_address)]
}

##----------------------------------------------------------------------------------
Expand All @@ -239,14 +239,40 @@ resource "aws_ssm_parameter" "secret" {
}

##----------------------------------------------------------------------------------
## Below resource will create ssm-parameter resource for redis and memcached with endpoint.
## Below resource will create ssm-parameter resource for redis with endpoint.
##----------------------------------------------------------------------------------
resource "aws_ssm_parameter" "secret-endpoint" {
count = var.enable && var.ssm_parameter_endpoint_enabled ? 1 : 0

name = format("/%s/%s/endpoint", var.environment, var.name)
description = var.ssm_parameter_description
type = var.ssm_parameter_type
value = var.automatic_failover_enabled == true ? join("", aws_elasticache_replication_group.cluster.*.configuration_endpoint_address) : join("", aws_elasticache_cluster.default.*.configuration_endpoint)
value = var.automatic_failover_enabled ? [join("", aws_elasticache_replication_group.cluster[*].configuration_endpoint_address)][0] : [join("", aws_elasticache_replication_group.cluster[*].primary_endpoint_address)][0]
key_id = var.kms_key_id == "" ? join("", aws_kms_key.default.*.arn) : var.kms_key_id
}

##----------------------------------------------------------------------------------
## Below resource will create ROUTE-53 resource for memcached.
##----------------------------------------------------------------------------------
resource "aws_route53_record" "memcached_route_53" {
count = var.memcached_route53_record_enabled ? 1 : 0

name = var.dns_record_name
zone_id = var.route53_zone_id
type = var.route53_type
ttl = var.route53_ttl
records = aws_elasticache_cluster.default.*.configuration_endpoint
}

##----------------------------------------------------------------------------------
## Below resource will create ssm-parameter resource for memcached with endpoint.
##----------------------------------------------------------------------------------
resource "aws_ssm_parameter" "memcached_secret-endpoint" {
count = var.memcached_ssm_parameter_endpoint_enabled ? 1 : 0

name = format("/%s/%s/memcached-endpoint", var.environment, var.name)
description = var.ssm_parameter_description
type = var.ssm_parameter_type
value = join("", aws_elasticache_cluster.default.*.configuration_endpoint)
key_id = var.kms_key_id == "" ? join("", aws_kms_key.default.*.arn) : var.kms_key_id
}
2 changes: 1 addition & 1 deletion outputs.tf
@@ -1,7 +1,7 @@
# Module : Redis
# Description : Terraform module to create Elasticache Cluster and replica for Redis.
output "id" {
value = var.cluster_enabled ? "" : (var.replication_enabled ? join("", aws_elasticache_replication_group.cluster.*.id) : join("", aws_elasticache_replication_group.cluster.*.id))
value = var.cluster_enabled ? "" : (var.cluster_replication_enabled ? join("", aws_elasticache_replication_group.cluster.*.id) : join("", aws_elasticache_replication_group.cluster.*.id))
description = "Redis cluster id."
}

Expand Down
22 changes: 14 additions & 8 deletions variables.tf
Expand Up @@ -198,12 +198,6 @@ variable "family" {
description = "(Required) The family of the ElastiCache parameter group."
}

variable "replication_enabled" {
type = bool
default = false
description = "(Redis only) Enabled or disabled replication_group for redis standalone instance."
}

variable "cluster_replication_enabled" {
type = bool
default = false
Expand Down Expand Up @@ -385,10 +379,16 @@ variable "sg_description" {
##---------------------route53------------------------
variable "route53_record_enabled" {
type = bool
default = true
default = false
description = "Whether to create Route53 record set."
}

variable "memcached_route53_record_enabled" {
type = bool
default = false
description = "Whether to create Route53 record memcached set."
}

variable "route53_type" {
type = string
default = ""
Expand Down Expand Up @@ -421,7 +421,13 @@ variable "ssm_parameter_enabled" {
}
variable "ssm_parameter_endpoint_enabled" {
type = bool
default = true
default = false
description = "Name of the parameter."
}

variable "memcached_ssm_parameter_endpoint_enabled" {
type = bool
default = false
description = "Name of the parameter."
}

Expand Down

0 comments on commit 85f0d25

Please sign in to comment.