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
| <aname="input_install_metrics_server"></a> [install\_metrics\_server](#input\_install\_metrics\_server)| Whether to install the metrics-server for the Materialize Console |`bool`|`true`| no |
126
126
| <aname="input_kubernetes_namespace"></a> [kubernetes\_namespace](#input\_kubernetes\_namespace)| The Kubernetes namespace for the Materialize resources |`string`|`"materialize-environment"`| no |
127
127
| <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 |
| <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, "v0.130.4")<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/> }))</pre> | `[]` | no |
129
129
| <aname="input_metrics_retention_days"></a> [metrics\_retention\_days](#input\_metrics\_retention\_days)| Number of days to retain CloudWatch metrics |`number`|`7`| no |
130
130
| <aname="input_namespace"></a> [namespace](#input\_namespace)| Namespace for all resources, usually the organization or project name |`string`| n/a | yes |
131
131
| <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 |
| <aname="output_eks_cluster_name"></a> [eks\_cluster\_name](#output\_eks\_cluster\_name)| EKS cluster name |
161
161
| <aname="output_materialize_s3_role_arn"></a> [materialize\_s3\_role\_arn](#output\_materialize\_s3\_role\_arn)| The ARN of the IAM role for Materialize |
162
162
| <aname="output_metadata_backend_url"></a> [metadata\_backend\_url](#output\_metadata\_backend\_url)| PostgreSQL connection URL in the format required by Materialize |
163
+
| <aname="output_nlb_details"></a> [nlb\_details](#output\_nlb\_details)| Details of the Materialize instance NLBs. |
163
164
| <aname="output_oidc_provider_arn"></a> [oidc\_provider\_arn](#output\_oidc\_provider\_arn)| The ARN of the OIDC Provider |
164
165
| <aname="output_operator_details"></a> [operator\_details](#output\_operator\_details)| Details of the installed Materialize operator |
165
166
| <aname="output_persist_backend_url"></a> [persist\_backend\_url](#output\_persist\_backend\_url)| S3 connection URL in the format required by Materialize using IRSA |
@@ -177,4 +178,33 @@ After successfully deploying the infrastructure with this module, you'll need to
177
178
1. Deploy your first Materialize environment
178
179
179
180
See our [Operator Installation Guide](docs/operator-setup.md) for instructions.
181
+
182
+
## Connecting to Materialize instances
183
+
184
+
By default, Network Load Balancers are created for each Materialize instance, with three listeners:
185
+
1. Port 6875 for SQL connections to the database.
186
+
1. Port 6876 for HTTP(S) connections to the database.
187
+
1. Port 8080 for HTTP(S) connections to the web console.
188
+
189
+
The DNS name and ARN for the NLBs will be in the `terraform output` as `nlb_details`.
190
+
191
+
## Upgrade Notes
192
+
193
+
#### v0.3.0
194
+
We now install the AWS Load Balancer Controller and create Network Load Balancers for each Materialize instance.
195
+
196
+
If managing Materialize instances with this module, additional action may be required to upgrade to this version.
197
+
198
+
###### If you want to disable NLB support
199
+
* Set `install_aws_load_balancer_controller` to `false`.
200
+
* Set `materialize_instances[*].create_nlb` to `false`.
201
+
202
+
###### If you want to enable NLB support
203
+
* Leave `install_aws_load_balancer_controller` set to its default of `true`.
204
+
* Set `materialize_instances[*].create_nlb` to `false`.
205
+
* Run `terraform apply`.
206
+
* Set `materialize_instances[*].create_nlb` to `true`.
207
+
* Run `terraform apply`.
208
+
209
+
Due to limitations in Terraform, it cannot plan Kubernetes resources using CRDs that do not exist yet. We need to first install the AWS Load Balancer Controller in the first `terraform apply`, before defining any `TargetGroupBinding` resources which get created in the second `terraform apply`.
Copy file name to clipboardExpand all lines: docs/footer.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,3 +7,32 @@ After successfully deploying the infrastructure with this module, you'll need to
7
7
1. Deploy your first Materialize environment
8
8
9
9
See our [Operator Installation Guide](docs/operator-setup.md) for instructions.
10
+
11
+
## Connecting to Materialize instances
12
+
13
+
By default, Network Load Balancers are created for each Materialize instance, with three listeners:
14
+
1. Port 6875 for SQL connections to the database.
15
+
1. Port 6876 for HTTP(S) connections to the database.
16
+
1. Port 8080 for HTTP(S) connections to the web console.
17
+
18
+
The DNS name and ARN for the NLBs will be in the `terraform output` as `nlb_details`.
19
+
20
+
## Upgrade Notes
21
+
22
+
#### v0.3.0
23
+
We now install the AWS Load Balancer Controller and create Network Load Balancers for each Materialize instance.
24
+
25
+
If managing Materialize instances with this module, additional action may be required to upgrade to this version.
26
+
27
+
###### If you want to disable NLB support
28
+
* Set `install_aws_load_balancer_controller` to `false`.
29
+
* Set `materialize_instances[*].create_nlb` to `false`.
30
+
31
+
###### If you want to enable NLB support
32
+
* Leave `install_aws_load_balancer_controller` set to its default of `true`.
33
+
* Set `materialize_instances[*].create_nlb` to `false`.
34
+
* Run `terraform apply`.
35
+
* Set `materialize_instances[*].create_nlb` to `true`.
36
+
* Run `terraform apply`.
37
+
38
+
Due to limitations in Terraform, it cannot plan Kubernetes resources using CRDs that do not exist yet. We need to first install the AWS Load Balancer Controller in the first `terraform apply`, before defining any `TargetGroupBinding` resources which get created in the second `terraform apply`.
Copy file name to clipboardExpand all lines: variables.tf
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -317,7 +317,7 @@ variable "helm_values" {
317
317
}
318
318
319
319
variable"materialize_instances" {
320
-
description="Configuration for Materialize instances"
320
+
description="Configuration for Materialize instances. Due to limitations in Terraform, `materialize_instances` cannot be defined on the first `terraform apply`."
0 commit comments