Skip to content

Commit 02dcdd7

Browse files
Separate tabs for supported terraform, legacy tf, and manual
1 parent f824362 commit 02dcdd7

1 file changed

Lines changed: 173 additions & 6 deletions

File tree

  • doc/user/shared-content/self-managed/upgrade-notes

doc/user/shared-content/self-managed/upgrade-notes/v26.19.md

Lines changed: 173 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,179 @@ Switching to `v1alpha2` is **opt-in**. You may continue to apply `v1alpha1` CRs
3636

3737
{{< important >}}
3838

39-
v26.19 requires infrastructure changes to support converting between `v1alpha1` and `v1alpha2` resources.
39+
v26.19 requires infrastructure changes before upgrading.
4040

4141
{{< /important >}}
4242

43-
The Materialize Operator now hosts conversion webhooks to convert between
44-
`v1alpha1` and `v1alpha2`. These webhooks are **always deployed** with v26.19+,
45-
even if you continue using `v1alpha1`. If you are using our [new terraform
43+
Materialize uses conversion webhooks to allow you to gracefully migrate from
44+
`v1alpha1` to `v1alpha2`. To enable these webhooks to be delivered, you need to
45+
install cert-manager and allow internal network ingress on port `8001`. These
46+
webhooks are **always deployed** with v26.19+, even if you continue using
47+
`v1alpha1`.
48+
49+
Choose the tab that matches your deployment method:
50+
51+
<div class="code-tabs">
52+
<ul class="nav-tabs"></ul>
53+
<div class="tab-content">
54+
<div class="tab-pane" title="Supported Terraform" id="upgrade-supported-terraform">
55+
56+
If you are using the [supported Terraform
57+
modules](https://github.com/MaterializeInc/materialize-terraform-self-managed),
58+
the required infrastructure changes (cert-manager and network ingress) will be
59+
handled for you automatically.
60+
61+
To upgrade, update each module's `source` to point to the new release tag and
62+
run `terraform init -upgrade && terraform plan && terraform apply`.
63+
64+
The key modules and their dependency chain are shown below. Your configuration
65+
may include additional modules (networking, storage, database, node pools, etc.)
66+
— update those to the same release tag as well.
67+
68+
<div class="code-tabs">
69+
<ul class="nav-tabs"></ul>
70+
<div class="tab-content">
71+
<div class="tab-pane" title="AWS" id="upgrade-supported-terraform-aws">
72+
73+
```hcl
74+
module "eks" {
75+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//aws/modules/eks?ref=<RELEASE_TAG>"
76+
# ... your existing configuration ...
77+
}
78+
79+
module "cert_manager" {
80+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/cert-manager?ref=<RELEASE_TAG>"
81+
# ... your existing configuration ...
82+
83+
# Your configuration may have additional dependencies here.
84+
depends_on = [module.eks]
85+
}
86+
87+
module "operator" {
88+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//aws/modules/operator?ref=<RELEASE_TAG>"
89+
# ... your existing configuration ...
90+
91+
# Your configuration may have additional dependencies here.
92+
depends_on = [module.cert_manager]
93+
}
94+
95+
module "materialize_instance" {
96+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/materialize-instance?ref=<RELEASE_TAG>"
97+
# ... your existing configuration ...
98+
99+
# Your configuration may have additional dependencies here.
100+
depends_on = [module.operator]
101+
}
102+
```
103+
104+
For a complete example, see
105+
[`aws/examples/simple/main.tf`](https://github.com/MaterializeInc/materialize-terraform-self-managed/blob/main/aws/examples/simple/main.tf).
106+
107+
</div>
108+
<div class="tab-pane" title="GCP" id="upgrade-supported-terraform-gcp">
109+
110+
```hcl
111+
module "gke" {
112+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//gcp/modules/gke?ref=<RELEASE_TAG>"
113+
# ... your existing configuration ...
114+
}
115+
116+
module "cert_manager" {
117+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/cert-manager?ref=<RELEASE_TAG>"
118+
# ... your existing configuration ...
119+
120+
# Your configuration may have additional dependencies here.
121+
depends_on = [module.gke]
122+
}
123+
124+
module "operator" {
125+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//gcp/modules/operator?ref=<RELEASE_TAG>"
126+
# ... your existing configuration ...
127+
128+
# Your configuration may have additional dependencies here.
129+
depends_on = [module.cert_manager]
130+
}
131+
132+
module "materialize_instance" {
133+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/materialize-instance?ref=<RELEASE_TAG>"
134+
# ... your existing configuration ...
135+
136+
# Your configuration may have additional dependencies here.
137+
depends_on = [module.operator]
138+
}
139+
```
140+
141+
For a complete example, see
142+
[`gcp/examples/simple/main.tf`](https://github.com/MaterializeInc/materialize-terraform-self-managed/blob/main/gcp/examples/simple/main.tf).
143+
144+
</div>
145+
<div class="tab-pane" title="Azure" id="upgrade-supported-terraform-azure">
146+
147+
```hcl
148+
module "aks" {
149+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//azure/modules/aks?ref=<RELEASE_TAG>"
150+
# ... your existing configuration ...
151+
}
152+
153+
module "cert_manager" {
154+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/cert-manager?ref=<RELEASE_TAG>"
155+
# ... your existing configuration ...
156+
157+
# Your configuration may have additional dependencies here.
158+
depends_on = [module.aks]
159+
}
160+
161+
module "operator" {
162+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//azure/modules/operator?ref=<RELEASE_TAG>"
163+
# ... your existing configuration ...
164+
165+
# Your configuration may have additional dependencies here.
166+
depends_on = [module.cert_manager]
167+
}
168+
169+
module "materialize_instance" {
170+
source = "github.com/MaterializeInc/materialize-terraform-self-managed//kubernetes/modules/materialize-instance?ref=<RELEASE_TAG>"
171+
# ... your existing configuration ...
172+
173+
# Your configuration may have additional dependencies here.
174+
depends_on = [module.operator]
175+
}
176+
```
177+
178+
For a complete example, see
179+
[`azure/examples/simple/main.tf`](https://github.com/MaterializeInc/materialize-terraform-self-managed/blob/main/azure/examples/simple/main.tf).
180+
181+
</div>
182+
</div>
183+
</div>
184+
185+
</div>
186+
<div class="tab-pane" title="Legacy Terraform" id="upgrade-legacy-terraform">
187+
188+
If you are using the legacy Terraform modules
189+
([AWS](https://github.com/MaterializeInc/terraform-aws-materialize),
190+
[GCP](https://github.com/MaterializeInc/terraform-gcp-materialize), or
191+
[Azure](https://github.com/MaterializeInc/terraform-azure-materialize)),
192+
we recommend migrating to the [new supported Terraform
46193
modules](https://github.com/MaterializeInc/materialize-terraform-self-managed)
47-
these changes will be handled for you, just by applying the new versions,
48-
otherwise, you **must** complete the following steps before upgrading the Helm chart:
194+
before upgrading to v26.19.
195+
196+
The new modules include built-in support for the conversion webhooks required
197+
by v26.19+, including cert-manager installation and network policy
198+
configuration. The legacy modules do not include these changes, so you would
199+
need to apply them manually (see the **Manual** tab).
200+
201+
For migration guidance, see the documentation for your cloud provider:
202+
203+
- [AWS migration guide](https://github.com/MaterializeInc/materialize-terraform-self-managed/tree/main/aws/examples/migration)
204+
- [GCP migration guide](https://github.com/MaterializeInc/materialize-terraform-self-managed/tree/main/gcp/examples/migration)
205+
- [Azure migration guide](https://github.com/MaterializeInc/materialize-terraform-self-managed/tree/main/azure/examples/migration)
206+
207+
</div>
208+
<div class="tab-pane" title="Manual" id="upgrade-manual">
209+
210+
If you are not using our Terraform modules, you **must** complete the following
211+
steps before upgrading the Helm chart:
49212

50213
**1. Install cert-manager**
51214

@@ -99,3 +262,7 @@ allowing port `8001` from the GKE control plane CIDR.
99262

100263
For a complete example of the required changes across AWS, Azure, and GCP,
101264
see [this pull request](https://github.com/MaterializeInc/materialize-terraform-self-managed/pull/160).
265+
266+
</div>
267+
</div>
268+
</div>

0 commit comments

Comments
 (0)