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