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
Copy file name to clipboardExpand all lines: README.md
+16-11Lines changed: 16 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -168,12 +168,12 @@ disk_support_config = {
168
168
| <aname="input_helm_chart"></a> [helm\_chart](#input\_helm\_chart)| Chart name from repository or local path to chart. For local charts, set the path to the chart directory. |`string`|`"materialize-operator"`| no |
169
169
| <aname="input_helm_values"></a> [helm\_values](#input\_helm\_values)| Additional Helm values to merge with defaults |`any`|`{}`| no |
170
170
| <aname="input_install_aws_load_balancer_controller"></a> [install\_aws\_load\_balancer\_controller](#input\_install\_aws\_load\_balancer\_controller)| Whether to install the AWS Load Balancer Controller |`bool`|`true`| no |
171
-
| <aname="input_install_cert_manager"></a> [install\_cert\_manager](#input\_install\_cert\_manager)| Whether to install cert-manager. |`bool`|`false`| no |
171
+
| <aname="input_install_cert_manager"></a> [install\_cert\_manager](#input\_install\_cert\_manager)| Whether to install cert-manager. |`bool`|`true`| no |
172
172
| <aname="input_install_materialize_operator"></a> [install\_materialize\_operator](#input\_install\_materialize\_operator)| Whether to install the Materialize operator |`bool`|`true`| no |
173
173
| <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 |
174
174
| <aname="input_kubernetes_namespace"></a> [kubernetes\_namespace](#input\_kubernetes\_namespace)| The Kubernetes namespace for the Materialize resources |`string`|`"materialize-environment"`| no |
175
175
| <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 |
176
-
| <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 |
176
+
| <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/> }))</pre> | `[]` | no |
177
177
| <aname="input_metrics_retention_days"></a> [metrics\_retention\_days](#input\_metrics\_retention\_days)| Number of days to retain CloudWatch metrics |`number`|`7`| no |
178
178
| <aname="input_namespace"></a> [namespace](#input\_namespace)| Namespace for all resources, usually the organization or project name |`string`| n/a | yes |
179
179
| <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 |
@@ -195,7 +195,7 @@ disk_support_config = {
195
195
| <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 |
196
196
| <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 |
197
197
| <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 |
198
-
| <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. Due to limitations in Terraform, this may not be enabled before the cert-manager CRDs are installed. |`bool`|`false`| no |
198
+
| <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 |
199
199
| <aname="input_vpc_cidr"></a> [vpc\_cidr](#input\_vpc\_cidr)| CIDR block for VPC |`string`|`"10.0.0.0/16"`| no |
200
200
201
201
## Outputs
@@ -239,19 +239,24 @@ The DNS name and ARN for the NLBs will be in the `terraform output` as `nlb_deta
239
239
240
240
#### TLS support
241
241
242
-
For example purposes, optional TLS support is provided by using `cert-manager` and a self-signed `ClusterIssuer`.
242
+
TLS support is provided by using `cert-manager` and a self-signed `ClusterIssuer`.
243
243
244
244
More advanced TLS support using user-provided CAs or per-Materialize `Issuer`s are out of scope for this Terraform module. Please refer to the [cert-manager documentation](https://cert-manager.io/docs/configuration/) for detailed guidance on more advanced usage.
245
245
246
-
###### To enable installation of `cert-manager` and configuration of the self-signed `ClusterIssuer`
247
-
1. Set `install_cert_manager` to `true`.
248
-
1. Run `terraform apply`.
249
-
1. Set `use_self_signed_cluster_issuer` to `true`.
250
-
1. Run `terraform apply`.
246
+
## Upgrade Notes
251
247
252
-
Due to limitations in Terraform, it cannot plan Kubernetes resources using CRDs that do not exist yet. We need to first install `cert-manager` in the first `terraform apply`, before defining any `ClusterIssuer` or `Certificate` resources which get created in the second `terraform apply`.
248
+
#### v0.4.0
249
+
We now install `cert-manager` and configure a self-signed `ClusterIssuer` by default.
253
250
254
-
## Upgrade Notes
251
+
Due to limitations in Terraform, it cannot plan Kubernetes resources using CRDs that do not exist yet. We have worked around this for new users by only generating the certificate resources when creating Materialize instances that use them, which also cannot be created on the first run.
252
+
253
+
For existing users upgrading Materialize instances not previously configured for TLS:
254
+
1. Leave `install_cert_manager` at its default of `true`.
255
+
2. Set `use_self_signed_cluster_issuer` to `false`.
256
+
3. Run `terraform apply`. This will install cert-manager and its CRDs.
257
+
4. Set `use_self_signed_cluster_issuer` back to `true` (the default).
258
+
5. Update the `request_rollout` field of the Materialize instance.
259
+
6. Run `terraform apply`. This will generate the certificates and configure your Materialize instance to use them.
255
260
256
261
#### v0.3.0
257
262
We now install the AWS Load Balancer Controller and create Network Load Balancers for each Materialize instance.
Copy file name to clipboardExpand all lines: docs/footer.md
+13-8Lines changed: 13 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -19,19 +19,24 @@ The DNS name and ARN for the NLBs will be in the `terraform output` as `nlb_deta
19
19
20
20
#### TLS support
21
21
22
-
For example purposes, optional TLS support is provided by using `cert-manager` and a self-signed `ClusterIssuer`.
22
+
TLS support is provided by using `cert-manager` and a self-signed `ClusterIssuer`.
23
23
24
24
More advanced TLS support using user-provided CAs or per-Materialize `Issuer`s are out of scope for this Terraform module. Please refer to the [cert-manager documentation](https://cert-manager.io/docs/configuration/) for detailed guidance on more advanced usage.
25
25
26
-
###### To enable installation of `cert-manager` and configuration of the self-signed `ClusterIssuer`
27
-
1. Set `install_cert_manager` to `true`.
28
-
1. Run `terraform apply`.
29
-
1. Set `use_self_signed_cluster_issuer` to `true`.
30
-
1. Run `terraform apply`.
26
+
## Upgrade Notes
31
27
32
-
Due to limitations in Terraform, it cannot plan Kubernetes resources using CRDs that do not exist yet. We need to first install `cert-manager` in the first `terraform apply`, before defining any `ClusterIssuer` or `Certificate` resources which get created in the second `terraform apply`.
28
+
#### v0.4.0
29
+
We now install `cert-manager` and configure a self-signed `ClusterIssuer` by default.
33
30
34
-
## Upgrade Notes
31
+
Due to limitations in Terraform, it cannot plan Kubernetes resources using CRDs that do not exist yet. We have worked around this for new users by only generating the certificate resources when creating Materialize instances that use them, which also cannot be created on the first run.
32
+
33
+
For existing users upgrading Materialize instances not previously configured for TLS:
34
+
1. Leave `install_cert_manager` at its default of `true`.
35
+
2. Set `use_self_signed_cluster_issuer` to `false`.
36
+
3. Run `terraform apply`. This will install cert-manager and its CRDs.
37
+
4. Set `use_self_signed_cluster_issuer` back to `true` (the default).
38
+
5. Update the `request_rollout` field of the Materialize instance.
39
+
6. Run `terraform apply`. This will generate the certificates and configure your Materialize instance to use them.
35
40
36
41
#### v0.3.0
37
42
We now install the AWS Load Balancer Controller and create Network Load Balancers for each Materialize instance.
Copy file name to clipboardExpand all lines: examples/simple/main.tf
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -162,13 +162,13 @@ variable "helm_values" {
162
162
variable"install_cert_manager" {
163
163
description="Whether to install cert-manager."
164
164
type=bool
165
-
default=false
165
+
default=true
166
166
}
167
167
168
168
variable"use_self_signed_cluster_issuer" {
169
-
description="Whether to install and use a self-signed ClusterIssuer for TLS. Due to limitations in Terraform, this may not be enabled before the cert-manager CRDs are installed."
169
+
description="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."
description="Whether to install and use a self-signed ClusterIssuer for TLS. Due to limitations in Terraform, this may not be enabled before the cert-manager CRDs are installed."
283
+
description="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."
0 commit comments