You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -191,17 +158,15 @@ These flags configure default limits for clusters, connections, and tables. You
191
158
| <aname="input_kubernetes_namespace"></a> [kubernetes\_namespace](#input\_kubernetes\_namespace)| The Kubernetes namespace for the Materialize resources |`string`|`"materialize-environment"`| no |
192
159
| <aname="input_log_group_name_prefix"></a> [log\_group\_name\_prefix](#input\_log\_group\_name\_prefix)| Prefix for the CloudWatch log group name (will be combined with environment name) |`string`|`"materialize"`| no |
193
160
| <a name="input_materialize_instances"></a> [materialize\_instances](#input\_materialize\_instances) | Configuration for Materialize instances. Due to limitations in Terraform, `materialize_instances` cannot be defined on the first `terraform apply`. | <pre>list(object({<br/> name = string<br/> namespace = optional(string)<br/> database_name = string<br/> environmentd_version = optional(string)<br/> cpu_request = optional(string, "1")<br/> memory_request = optional(string, "1Gi")<br/> memory_limit = optional(string, "1Gi")<br/> create_database = optional(bool, true)<br/> create_nlb = optional(bool, true)<br/> internal_nlb = optional(bool, true)<br/> enable_cross_zone_load_balancing = optional(bool, true)<br/> in_place_rollout = optional(bool, false)<br/> request_rollout = optional(string)<br/> force_rollout = optional(string)<br/> balancer_memory_request = optional(string, "256Mi")<br/> balancer_memory_limit = optional(string, "256Mi")<br/> balancer_cpu_request = optional(string, "100m")<br/> license_key = optional(string)<br/> authenticator_kind = optional(string, "None")<br/> external_login_password_mz_system = optional(string)<br/> environmentd_extra_args = optional(list(string), [])<br/> }))</pre> | `[]` | no |
161
+
| <aname="input_materialize_node_group_desired_size"></a> [materialize\_node\_group\_desired\_size](#input\_materialize\_node\_group\_desired\_size)| Desired number of worker nodes |`number`|`2`| no |
162
+
| <aname="input_materialize_node_group_instance_types"></a> [materialize\_node\_group\_instance\_types](#input\_materialize\_node\_group\_instance\_types)| Instance types for worker nodes.<br/><br/>Recommended Configuration for Running Materialize with disk:<br/>- Tested instance types: `r6gd`, `r7gd` families (ARM-based Graviton instances)<br/>- Enable disk setup when using `r7gd`<br/>- Note: Ensure instance store volumes are available and attached to the nodes for optimal performance with disk-based workloads. |`list(string)`| <pre>[<br/> "r7gd.2xlarge"<br/>]</pre> | no |
163
+
| <aname="input_materialize_node_group_max_size"></a> [materialize\_node\_group\_max\_size](#input\_materialize\_node\_group\_max\_size)| Maximum number of worker nodes |`number`|`4`| no |
164
+
| <aname="input_materialize_node_group_min_size"></a> [materialize\_node\_group\_min\_size](#input\_materialize\_node\_group\_min\_size)| Minimum number of worker nodes |`number`|`1`| no |
194
165
| <aname="input_metrics_retention_days"></a> [metrics\_retention\_days](#input\_metrics\_retention\_days)| Number of days to retain CloudWatch metrics |`number`|`7`| no |
195
166
| <aname="input_namespace"></a> [namespace](#input\_namespace)| Namespace for all resources, usually the organization or project name |`string`| n/a | yes |
196
167
| <aname="input_network_id"></a> [network\_id](#input\_network\_id)| The ID of the VPC in which resources will be deployed. Only used if create\_vpc is false. |`string`|`""`| no |
197
168
| <aname="input_network_private_subnet_ids"></a> [network\_private\_subnet\_ids](#input\_network\_private\_subnet\_ids)| A list of private subnet IDs in the VPC. Only used if create\_vpc is false. |`list(string)`|`[]`| no |
198
169
| <aname="input_network_public_subnet_ids"></a> [network\_public\_subnet\_ids](#input\_network\_public\_subnet\_ids)| A list of public subnet IDs in the VPC. Only used if create\_vpc is false. |`list(string)`|`[]`| no |
199
-
| <aname="input_node_group_ami_type"></a> [node\_group\_ami\_type](#input\_node\_group\_ami\_type)| AMI type for the node group |`string`|`"AL2023_ARM_64_STANDARD"`| no |
200
-
| <aname="input_node_group_capacity_type"></a> [node\_group\_capacity\_type](#input\_node\_group\_capacity\_type)| Capacity type for worker nodes (ON\_DEMAND or SPOT) |`string`|`"ON_DEMAND"`| no |
201
-
| <aname="input_node_group_desired_size"></a> [node\_group\_desired\_size](#input\_node\_group\_desired\_size)| Desired number of worker nodes |`number`|`2`| no |
202
-
| <aname="input_node_group_instance_types"></a> [node\_group\_instance\_types](#input\_node\_group\_instance\_types)| Instance types for worker nodes.<br/><br/>Recommended Configuration for Running Materialize with disk:<br/>- Tested instance types: `r6gd`, `r7gd` families (ARM-based Graviton instances)<br/>- Enable disk setup when using `r7gd`<br/>- Note: Ensure instance store volumes are available and attached to the nodes for optimal performance with disk-based workloads. |`list(string)`| <pre>[<br/> "r7gd.2xlarge"<br/>]</pre> | no |
203
-
| <aname="input_node_group_max_size"></a> [node\_group\_max\_size](#input\_node\_group\_max\_size)| Maximum number of worker nodes |`number`|`4`| no |
204
-
| <aname="input_node_group_min_size"></a> [node\_group\_min\_size](#input\_node\_group\_min\_size)| Minimum number of worker nodes |`number`|`1`| no |
205
170
| <aname="input_operator_namespace"></a> [operator\_namespace](#input\_operator\_namespace)| Namespace for the Materialize operator |`string`|`"materialize"`| no |
206
171
| <aname="input_operator_version"></a> [operator\_version](#input\_operator\_version)| Version of the Materialize operator to install |`string`|`null`| no |
207
172
| <aname="input_orchestratord_version"></a> [orchestratord\_version](#input\_orchestratord\_version)| Version of the Materialize orchestrator to install |`string`|`null`| no |
@@ -210,7 +175,10 @@ These flags configure default limits for clusters, connections, and tables. You
210
175
| <aname="input_public_subnet_cidrs"></a> [public\_subnet\_cidrs](#input\_public\_subnet\_cidrs)| CIDR blocks for public subnets |`list(string)`| <pre>[<br/> "10.0.101.0/24",<br/> "10.0.102.0/24",<br/> "10.0.103.0/24"<br/>]</pre> | no |
211
176
| <aname="input_service_account_name"></a> [service\_account\_name](#input\_service\_account\_name)| Name of the service account |`string`|`"12345678-1234-1234-1234-123456789012"`| no |
212
177
| <aname="input_single_nat_gateway"></a> [single\_nat\_gateway](#input\_single\_nat\_gateway)| Use a single NAT Gateway for all private subnets |`bool`|`false`| no |
213
-
| <aname="input_swap_enabled"></a> [swap\_enabled](#input\_swap\_enabled)| Enable swap for Materialize. When enabled, this configures swap on a new nodepool, and adds it to the clusterd node selectors. |`bool`|`false`| no |
178
+
| <aname="input_system_node_group_desired_size"></a> [system\_node\_group\_desired\_size](#input\_system\_node\_group\_desired\_size)| Desired number of worker nodes |`number`|`2`| no |
179
+
| <aname="input_system_node_group_instance_types"></a> [system\_node\_group\_instance\_types](#input\_system\_node\_group\_instance\_types)| Instance types for system nodes. |`list(string)`| <pre>[<br/> "r7g.xlarge"<br/>]</pre> | no |
180
+
| <aname="input_system_node_group_max_size"></a> [system\_node\_group\_max\_size](#input\_system\_node\_group\_max\_size)| Maximum number of worker nodes |`number`|`4`| no |
181
+
| <aname="input_system_node_group_min_size"></a> [system\_node\_group\_min\_size](#input\_system\_node\_group\_min\_size)| Minimum number of worker nodes |`number`|`1`| no |
214
182
| <aname="input_tags"></a> [tags](#input\_tags)| Default tags to apply to all resources |`map(string)`| <pre>{<br/> "Environment": "dev",<br/> "Project": "materialize",<br/> "Terraform": "true"<br/>}</pre> | no |
215
183
| <aname="input_use_local_chart"></a> [use\_local\_chart](#input\_use\_local\_chart)| Whether to use a local chart instead of one from a repository |`bool`|`false`| no |
216
184
| <aname="input_use_self_signed_cluster_issuer"></a> [use\_self\_signed\_cluster\_issuer](#input\_use\_self\_signed\_cluster\_issuer)| Whether to install and use a self-signed ClusterIssuer for TLS. To work around limitations in Terraform, this will be treated as `false` if no materialize instances are defined. |`bool`|`true`| no |
@@ -263,6 +231,26 @@ More advanced TLS support using user-provided CAs or per-Materialize `Issuer`s a
263
231
264
232
## Upgrade Notes
265
233
234
+
#### v0.7.0
235
+
236
+
This is an intermediate version to handle some changes that must be applied in stages.
237
+
It is recommended to upgrade to v0.8.x after upgrading to this version.
238
+
239
+
Breaking changes:
240
+
* Swap is enabled by default.
241
+
* Support for lgalloc, our legacy spill to disk mechanism, is deprecated, and will be removed in the next version.
242
+
* We now always use two node groups, one for system workloads and one for Materialize workloads.
243
+
* Variables for configuring these node groups have been renamed, so they may be configured separately.
244
+
245
+
To avoid downtime when upgrading to future versions, you must perform a rollout at this version.
246
+
1. Ensure your `environmentd_version` is at least `v26.0.0`.
247
+
2. Update your `request_rollout` (and `force_rollout` if already at the correct `environmentd_version`).
248
+
3. Run `terraform apply`.
249
+
250
+
You must upgrade to at least v0.6.x before upgrading to v0.7.0 of this terraform code.
251
+
252
+
It is strongly recommended to have enabled swap on v0.6.x before upgrading to v0.7.0 or higher.
Copy file name to clipboardExpand all lines: docs/operator-setup.md
-36Lines changed: 0 additions & 36 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,42 +24,6 @@ Verify the connection:
24
24
kubectl get nodes
25
25
```
26
26
27
-
## (Optional) Storage Configuration
28
-
29
-
The Materialize Operator requires fast, locally-attached NVMe storage for optimal performance. We'll set up OpenEBS with LVM Local PV for managing local volumes.
TODO: Add more detailed instructions for setting up LVM on Bottlerocket nodes.
51
-
52
-
If you're using the recommended Bottlerocket AMI with the Terraform module, the LVM configuration needs to be done through the Bottlerocket bootstrap container. This is automatically handled by the EKS module using the provided user data script.
0 commit comments