diff --git a/README.md b/README.md index 773245e..51c6803 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ No modules. | [helm\_repository](#input\_helm\_repository) | Repository URL for the Materialize operator Helm chart. Leave empty if using local chart. | `string` | `"https://materializeinc.github.io/materialize/"` | no | | [helm\_values](#input\_helm\_values) | Values to pass to the Helm chart | `any` | n/a | yes | | [install\_metrics\_server](#input\_install\_metrics\_server) | Whether to install the metrics-server | `bool` | `true` | no | -| [instances](#input\_instances) | Configuration for Materialize instances |
list(object({| `[]` | no | +| [instances](#input\_instances) | Configuration for Materialize instances |
name = string
namespace = optional(string)
create_database = optional(bool, true)
database_name = string
metadata_backend_url = string
persist_backend_url = string
license_key = optional(string)
environmentd_version = optional(string, "v0.130.13") # META: mz version
environmentd_extra_env = optional(list(object({
name = string
value = string
})), [])
cpu_request = optional(string, "1")
memory_request = optional(string, "1Gi")
memory_limit = optional(string, "1Gi")
in_place_rollout = optional(bool, true)
request_rollout = optional(string, "00000000-0000-0000-0000-000000000001")
force_rollout = optional(string, "00000000-0000-0000-0000-000000000001")
balancer_memory_request = optional(string, "256Mi")
balancer_memory_limit = optional(string, "256Mi")
balancer_cpu_request = optional(string, "100m")
}))
list(object({| `[]` | no | | [metrics\_server\_version](#input\_metrics\_server\_version) | Version of metrics-server to install | `string` | `"3.12.2"` | no | | [monitoring\_namespace](#input\_monitoring\_namespace) | Namespace for monitoring resources | `string` | `"monitoring"` | no | | [namespace](#input\_namespace) | Namespace prefix for all resources | `string` | n/a | yes | diff --git a/examples/aws/terraform.tfvars.example b/examples/aws/terraform.tfvars.example index 6b0f388..cfa1a7a 100644 --- a/examples/aws/terraform.tfvars.example +++ b/examples/aws/terraform.tfvars.example @@ -1,4 +1,3 @@ - instance_configs_example = [ { name = "mz-instance-1" @@ -10,6 +9,10 @@ instance_configs_example = [ cpu_request = "2" memory_request = "4Gi" memory_limit = "8Gi" + environmentd_extra_args = [ + "--system-parameter-default=max_clusters=100", + "--system-parameter-default=max_connections=100" + ] }, { name = "mz-instance-2" diff --git a/examples/gcp/terraform.tfvars.example b/examples/gcp/terraform.tfvars.example index f6b22fe..4eae3a6 100644 --- a/examples/gcp/terraform.tfvars.example +++ b/examples/gcp/terraform.tfvars.example @@ -9,6 +9,10 @@ instance_configs_example = [ cpu_request = "2" memory_request = "4Gi" memory_limit = "8Gi" + environmentd_extra_args = [ + "--system-parameter-default=max_clusters=100", + "--system-parameter-default=max_connections=100" + ] }, { name = "mz-instance-2" diff --git a/main.tf b/main.tf index d2926c4..c0e51ef 100644 --- a/main.tf +++ b/main.tf @@ -12,6 +12,14 @@ locals { } ] : null } + + format_env_args = { + for instance in var.instances : instance.name => + length(lookup(instance, "environmentd_extra_args", [])) > 0 ? [ + for item in instance.environmentd_extra_args : + item + ] : null + } } resource "kubernetes_namespace" "materialize" { @@ -98,7 +106,8 @@ resource "kubernetes_manifest" "materialize_instances" { requestRollout = lookup(each.value, "request_rollout", null) forceRollout = lookup(each.value, "force_rollout", null) - environmentdExtraEnv = lookup(local.format_env_vars, each.key, null) + environmentdExtraEnv = lookup(local.format_env_vars, each.key, null) + environmentdExtraArgs = lookup(local.format_env_args, each.key, null) environmentdResourceRequirements = { limits = { diff --git a/variables.tf b/variables.tf index 7a93bb2..affd510 100644 --- a/variables.tf +++ b/variables.tf @@ -77,6 +77,7 @@ variable "instances" { name = string value = string })), []) + environmentd_extra_args = optional(list(string), []) cpu_request = optional(string, "1") memory_request = optional(string, "1Gi") memory_limit = optional(string, "1Gi")
name = string
namespace = optional(string)
create_database = optional(bool, true)
database_name = string
metadata_backend_url = string
persist_backend_url = string
license_key = optional(string)
environmentd_version = optional(string, "v0.130.13") # META: mz version
environmentd_extra_env = optional(list(object({
name = string
value = string
})), [])
environmentd_extra_args = optional(list(string), [])
cpu_request = optional(string, "1")
memory_request = optional(string, "1Gi")
memory_limit = optional(string, "1Gi")
in_place_rollout = optional(bool, true)
request_rollout = optional(string, "00000000-0000-0000-0000-000000000001")
force_rollout = optional(string, "00000000-0000-0000-0000-000000000001")
balancer_memory_request = optional(string, "256Mi")
balancer_memory_limit = optional(string, "256Mi")
balancer_cpu_request = optional(string, "100m")
}))