deploy/test-environments/modules/ec/main.tf (57 lines of code) (raw):
locals {
version = var.stack_version
region = var.region
name_prefix = var.deployment_name_prefix
deployment_template = var.deployment_template
es_docker_image = lookup(var.docker_image, "elasticsearch", "")
es_docker_image_tag_override = lookup(var.docker_image_tag_override, "elasticsearch", "")
kibana_docker_image = lookup(var.docker_image, "kibana", "")
kibana_docker_image_tag_override = lookup(var.docker_image_tag_override, "kibana", "")
apm_docker_image = lookup(var.docker_image, "apm", "")
apm_docker_image_tag_override = lookup(var.docker_image_tag_override, "apm", "")
}
data "ec_stack" "deployment_version" {
version_regex = local.version
region = local.region
}
resource "ec_deployment" "deployment" {
name = "${local.name_prefix}-${data.ec_stack.deployment_version.version}"
version = data.ec_stack.deployment_version.version
region = local.region
deployment_template_id = local.deployment_template
tags = var.tags
elasticsearch = {
autoscale = var.elasticsearch_autoscale
strategy = "rolling_all"
config = local.es_docker_image_tag_override != "" ? {
docker_image = "${local.es_docker_image}:${local.es_docker_image_tag_override}"
} : null
cold = {
autoscaling = {}
}
frozen = {
autoscaling = {}
}
hot = {
autoscaling = {
max_size = "128g"
max_size_resource = "memory"
}
size = var.elasticsearch_size
zone_count = var.elasticsearch_zone_count
}
warm = {
autoscaling = {}
}
}
kibana = {
config = local.kibana_docker_image_tag_override != "" ? {
docker_image = "${local.kibana_docker_image}:${local.kibana_docker_image_tag_override}"
} : null
}
integrations_server = {
config = local.apm_docker_image_tag_override != "" ? {
docker_image = "${local.apm_docker_image}:${local.apm_docker_image_tag_override}"
} : null
}
}