Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 16 additions & 4 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,11 @@ module "comet_eks" {
enable_mpm_infra = var.enable_mpm_infra

# Node Group Toggles
enable_admin_node_group = var.eks_enable_admin_node_group
enable_comet_node_group = var.eks_enable_comet_node_group
enable_druid_node_group = var.eks_enable_druid_node_group
enable_airflow_node_group = var.eks_enable_airflow_node_group
enable_admin_node_group = var.eks_enable_admin_node_group
enable_comet_node_group = var.eks_enable_comet_node_group
enable_druid_node_group = var.eks_enable_druid_node_group
enable_airflow_node_group = var.eks_enable_airflow_node_group
enable_clickhouse_node_group = var.eks_enable_clickhouse_node_group

# Admin Node Group
eks_admin_name = var.eks_admin_name
Expand Down Expand Up @@ -118,6 +119,17 @@ module "comet_eks" {
eks_airflow_max_size = var.eks_airflow_max_size
eks_airflow_desired_size = var.eks_airflow_desired_size

# ClickHouse Node Group
eks_clickhouse_name = var.eks_clickhouse_name
eks_clickhouse_instance_types = var.eks_clickhouse_instance_types
eks_clickhouse_min_size = var.eks_clickhouse_min_size
eks_clickhouse_max_size = var.eks_clickhouse_max_size
eks_clickhouse_desired_size = var.eks_clickhouse_desired_size
eks_clickhouse_volume_size = var.eks_clickhouse_volume_size
eks_clickhouse_volume_type = var.eks_clickhouse_volume_type
eks_clickhouse_volume_encrypted = var.eks_clickhouse_volume_encrypted
eks_clickhouse_delete_on_termination = var.eks_clickhouse_delete_on_termination

# Additional custom node groups
additional_node_groups = var.eks_additional_node_groups
}
Expand Down
28 changes: 28 additions & 0 deletions modules/comet_eks/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,34 @@ module "eks" {
iam_role_additional_policies = var.s3_enabled ? { comet_s3_access = var.comet_ec2_s3_iam_policy } : {}
}
} : {},
# ClickHouse Node Group
var.enable_clickhouse_node_group ? {
clickhouse = {
name = var.eks_clickhouse_name
instance_types = var.eks_clickhouse_instance_types
min_size = var.eks_clickhouse_min_size
max_size = var.eks_clickhouse_max_size
desired_size = var.eks_clickhouse_desired_size
block_device_mappings = {
xvda = {
device_name = "/dev/xvda"
ebs = {
volume_size = var.eks_clickhouse_volume_size
volume_type = var.eks_clickhouse_volume_type
encrypted = var.eks_clickhouse_volume_encrypted
delete_on_termination = var.eks_clickhouse_delete_on_termination
}
}
}
labels = {
nodegroup_name = "clickhouse"
}
tags = var.common_tags
tags_propagate_at_launch = true
launch_template_version = "$Latest"
iam_role_additional_policies = var.s3_enabled ? { comet_s3_access = var.comet_ec2_s3_iam_policy } : {}
}
} : {},
# Additional custom node groups
var.additional_node_groups
)
Expand Down
64 changes: 63 additions & 1 deletion modules/comet_eks/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,70 @@ variable "common_tags" {
default = {}
}

# ClickHouse Node Group Toggle
variable "enable_clickhouse_node_group" {
description = "Enable dedicated ClickHouse node group"
type = bool
default = false
}

# ClickHouse Node Group Variables
variable "eks_clickhouse_name" {
description = "Name for the ClickHouse node group"
type = string
default = "clickhouse"
}

variable "eks_clickhouse_instance_types" {
description = "Instance types for the ClickHouse node group"
type = list(string)
default = ["m7i.2xlarge"]
}

variable "eks_clickhouse_min_size" {
description = "Minimum number of ClickHouse nodes"
type = number
default = 2
}

variable "eks_clickhouse_max_size" {
description = "Maximum number of ClickHouse nodes"
type = number
default = 3
}

variable "eks_clickhouse_desired_size" {
description = "Desired number of ClickHouse nodes"
type = number
default = 2
}

variable "eks_clickhouse_volume_size" {
description = "EBS volume size in GB for ClickHouse nodes"
type = number
default = 500
}

variable "eks_clickhouse_volume_type" {
description = "EBS volume type for ClickHouse nodes"
type = string
default = "gp3"
}

variable "eks_clickhouse_volume_encrypted" {
description = "Enable EBS encryption for ClickHouse volumes"
type = bool
default = true
}

variable "eks_clickhouse_delete_on_termination" {
description = "Delete EBS volumes on instance termination"
type = bool
default = true
}

variable "additional_node_groups" {
description = "Additional EKS managed node groups to create beyond the predefined ones (admin, comet, druid, airflow)"
description = "Additional EKS managed node groups to create beyond the predefined ones (admin, comet, druid, airflow, clickhouse)"
type = any
default = {}
}
63 changes: 62 additions & 1 deletion variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,12 @@ variable "eks_enable_airflow_node_group" {
default = true
}

variable "eks_enable_clickhouse_node_group" {
description = "Enable dedicated ClickHouse node group"
type = bool
default = false
}

# Admin Node Group Variables
variable "eks_admin_name" {
description = "Name for the admin node group"
Expand Down Expand Up @@ -351,8 +357,63 @@ variable "eks_airflow_desired_size" {
default = 2
}

# ClickHouse Node Group Variables
variable "eks_clickhouse_name" {
description = "Name for the ClickHouse node group"
type = string
default = "clickhouse"
}

variable "eks_clickhouse_instance_types" {
description = "Instance types for the ClickHouse node group"
type = list(string)
default = ["r5.2xlarge"]
}

variable "eks_clickhouse_min_size" {
description = "Minimum number of ClickHouse nodes"
type = number
default = 2
}

variable "eks_clickhouse_max_size" {
description = "Maximum number of ClickHouse nodes"
type = number
default = 3
}

variable "eks_clickhouse_desired_size" {
description = "Desired number of ClickHouse nodes"
type = number
default = 2
}

variable "eks_clickhouse_volume_size" {
description = "EBS volume size in GB for ClickHouse nodes"
type = number
default = 500
}

variable "eks_clickhouse_volume_type" {
description = "EBS volume type for ClickHouse nodes"
type = string
default = "gp3"
}

variable "eks_clickhouse_volume_encrypted" {
description = "Enable EBS encryption for ClickHouse volumes"
type = bool
default = true
}

variable "eks_clickhouse_delete_on_termination" {
description = "Delete EBS volumes on instance termination"
type = bool
default = true
}

variable "eks_additional_node_groups" {
description = "Additional EKS managed node groups to create beyond the predefined ones (admin, comet, druid, airflow)"
description = "Additional EKS managed node groups to create beyond the predefined ones (admin, comet, druid, airflow, clickhouse)"
type = any
default = {}
}
Expand Down