Skip to content

Commit ef7d339

Browse files
docs: rename v1alpha2 to v1 and document installV1CRD opt-in
The new CRD version is now called v1 instead of v1alpha2, and the operator only installs the v1 CRD and its conversion webhook when the operator.args.installV1CRD helm value is set. Update the version docs to v26.29, regenerate the CRD field descriptions from the v1 schema, and pick up the newer rollout-cancellation instructions on the v1alpha1 page. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent caf8351 commit ef7d339

18 files changed

Lines changed: 122 additions & 86 deletions

File tree

bin/bump-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ rm -f src/{clusterd,environmentd,materialized,persist-client,testdrive,catalog-d
7070

7171
cargo update --workspace
7272

73-
for crd_version in v1alpha1 v1alpha2; do
73+
for crd_version in v1alpha1 v1; do
7474
crd_descriptions_json="doc/user/data/self_managed/materialize_crd_descriptions_${crd_version}.json"
7575
cargo run -p mz-cloud-resources --bin crd-writer -- "${crd_version}" > "${crd_descriptions_json}"
7676
git add "${crd_descriptions_json}"

doc/user/content/releases/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,7 +1042,7 @@ v26.4.0 introduces several performance improvements and bugfixes.
10421042
- **Up to 3x faster hydration times for large PostgreSQL tables**: We've reduced the overhead incurred by communication between multiple *workers* on a large cluster. We've observed up to 3x throughput improvement when ingesting 1 TB PostgreSQL tables on large clusters.
10431043
- **More efficient source ingestion batching**: Sources now batch writes more effectively. This can result in improved freshness and lower resource utilization, especially when a source is doing a large number of writes.
10441044
- **CloudSQL HA failover support** (<red>*Materialize Self-Managed only*</red>): Materialize Self-Managed now offers better support for handling failovers in CloudSQL HA sources, without downtime. [Contact our support team](/support/) to enable this in your environment.
1045-
- **Manual Promotion** (<red>*Materialize Self-Managed only*</red>): [Rollout strategies](/self-managed-deployments/upgrading/materialize-instances/v1alpha2/#rollout-strategies) allow you control how Materialize transitions from the current generation to a new generation during an upgrade. We've added a new rollout strategy called `ManuallyPromote` which allows you to choose when to promote the new generation. This means that you can minimize the impact of potential downtime.
1045+
- **Manual Promotion** (<red>*Materialize Self-Managed only*</red>): [Rollout strategies](/self-managed-deployments/upgrading/materialize-instances/v1/#rollout-strategies) allow you control how Materialize transitions from the current generation to a new generation during an upgrade. We've added a new rollout strategy called `ManuallyPromote` which allows you to choose when to promote the new generation. This means that you can minimize the impact of potential downtime.
10461046

10471047
### Bug Fixes {#v26.4-bug-fixes}
10481048
- Fixed timestamp determination logic to handle empty read holds correctly.
@@ -1211,7 +1211,7 @@ use the new setting `rolloutStrategy` to specify either:
12111211
- `WaitUntilReady` (*Default*)
12121212
- `ImmediatelyPromoteCausingDowntime`
12131213

1214-
For more information, see [`rolloutStrategy`](/self-managed-deployments/upgrading/materialize-instances/v1alpha2/#rollout-strategies).
1214+
For more information, see [`rolloutStrategy`](/self-managed-deployments/upgrading/materialize-instances/v1/#rollout-strategies).
12151215

12161216
### Terraform helpers
12171217

doc/user/content/security/self-managed/authentication.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ The following example Kubernetes manifest includes configuration for
5151
SASL/SCRAM-SHA-256 authentication:
5252

5353
{{< tabs >}}
54-
{{< tab "v1alpha2 (v26.18+)" >}}
54+
{{< tab "v1 (v26.29+)" >}}
5555

5656
```hc {hl_lines="15 25"}
5757
apiVersion: v1
@@ -70,7 +70,7 @@ stringData:
7070
license_key: "..."
7171
external_login_password_mz_system: "enter_mz_system_password"
7272
---
73-
apiVersion: materialize.cloud/v1alpha2
73+
apiVersion: materialize.cloud/v1
7474
kind: Materialize
7575
metadata:
7676
name: 12345678-1234-1234-1234-123456789012
@@ -82,7 +82,7 @@ spec:
8282
```
8383

8484
{{< /tab >}}
85-
{{< tab "v1alpha1 (before v26.18)" >}}
85+
{{< tab "v1alpha1 (before v26.29)" >}}
8686

8787
```hc {hl_lines="15 25"}
8888
apiVersion: v1
@@ -135,7 +135,7 @@ The following example Kubernetes manifest includes configuration for password
135135
authentication:
136136

137137
{{< tabs >}}
138-
{{< tab "v1alpha2 (v26.18+)" >}}
138+
{{< tab "v1 (v26.29+)" >}}
139139

140140
```hc {hl_lines="15 25"}
141141
apiVersion: v1
@@ -154,7 +154,7 @@ stringData:
154154
license_key: "..."
155155
external_login_password_mz_system: "enter_mz_system_password"
156156
---
157-
apiVersion: materialize.cloud/v1alpha2
157+
apiVersion: materialize.cloud/v1
158158
kind: Materialize
159159
metadata:
160160
name: 12345678-1234-1234-1234-123456789012
@@ -166,7 +166,7 @@ spec:
166166
```
167167

168168
{{< /tab >}}
169-
{{< tab "v1alpha1 (before v26.18)" >}}
169+
{{< tab "v1alpha1 (before v26.29)" >}}
170170

171171
```hc {hl_lines="15 25"}
172172
apiVersion: v1

doc/user/content/self-managed-deployments/_index.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,10 @@ Materialize CR, see [Materialize CRD Field
158158
Descriptions](/self-managed-deployments/materialize-crd-field-descriptions/).
159159

160160
{{< tabs >}}
161-
{{< tab "v1alpha2 (v26.18+)" >}}
161+
{{< tab "v1 (v26.29+)" >}}
162162

163163
```yaml
164-
apiVersion: materialize.cloud/v1alpha2
164+
apiVersion: materialize.cloud/v1
165165
kind: Materialize
166166
metadata:
167167
name: 12345678-1234-1234-1234-123456789012
@@ -172,7 +172,7 @@ spec:
172172
```
173173

174174
{{< /tab >}}
175-
{{< tab "v1alpha1 (before v26.18)" >}}
175+
{{< tab "v1alpha1 (before v26.29)" >}}
176176

177177
```yaml
178178
apiVersion: materialize.cloud/v1alpha1
@@ -194,13 +194,13 @@ creates all required Kubernetes resources.
194194
#### Modifying the custom resource
195195

196196
{{< tabs >}}
197-
{{< tab "v1alpha2 (v26.18+)" >}}
197+
{{< tab "v1 (v26.29+)" >}}
198198

199199
To modify a custom resource, update the CRD with your changes.
200200
When you apply the CRD, the operator will roll out the changes.
201201

202202
{{< /tab >}}
203-
{{< tab "v1alpha1 (before v26.18)" >}}
203+
{{< tab "v1alpha1 (before v26.29)" >}}
204204

205205
To modify a custom resource, update the CRD with your changes, including the
206206
`requestRollout` field with a new UUID value. When you apply the CRD, the

doc/user/content/self-managed-deployments/configuration-system-parameters.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ Reference the ConfigMap in your Materialize custom resource by setting the
6868
`systemParameterConfigmapName` field to the name of your ConfigMap:
6969

7070
{{< tabs >}}
71-
{{< tab "v1alpha2 (v26.18+)" >}}
71+
{{< tab "v1 (v26.29+)" >}}
7272

7373
```yaml {hl_lines="9"}
74-
apiVersion: materialize.cloud/v1alpha2
74+
apiVersion: materialize.cloud/v1
7575
kind: Materialize
7676
metadata:
7777
name: 12345678-1234-1234-1234-123456789012
@@ -83,7 +83,7 @@ spec:
8383
```
8484
8585
{{< /tab >}}
86-
{{< tab "v1alpha1 (before v26.18)" >}}
86+
{{< tab "v1alpha1 (before v26.29)" >}}
8787
8888
```yaml {hl_lines="9-10"}
8989
apiVersion: materialize.cloud/v1alpha1
@@ -151,10 +151,10 @@ Materialize custom resource YAML and update it whenever you need to force a
151151
ConfigMap reload:
152152

153153
{{< tabs >}}
154-
{{< tab "v1alpha2 (v26.18+)" >}}
154+
{{< tab "v1 (v26.29+)" >}}
155155

156156
```yaml
157-
apiVersion: materialize.cloud/v1alpha2
157+
apiVersion: materialize.cloud/v1
158158
kind: Materialize
159159
metadata:
160160
name: 12345678-1234-1234-1234-123456789012
@@ -166,7 +166,7 @@ spec:
166166
```
167167

168168
{{< /tab >}}
169-
{{< tab "v1alpha1 (before v26.18)" >}}
169+
{{< tab "v1alpha1 (before v26.29)" >}}
170170

171171
```yaml
172172
apiVersion: materialize.cloud/v1alpha1

doc/user/content/self-managed-deployments/materialize-crd-field-descriptions/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ aliases:
1313

1414
Select the CRD API version for your Materialize deployment:
1515

16-
- [v1alpha2 (v26.18+)](/self-managed-deployments/materialize-crd-field-descriptions/v1alpha2/)
17-
- [v1alpha1 (before v26.18)](/self-managed-deployments/materialize-crd-field-descriptions/v1alpha1/)
16+
- [v1 (v26.29+)](/self-managed-deployments/materialize-crd-field-descriptions/v1/)
17+
- [v1alpha1 (before v26.29)](/self-managed-deployments/materialize-crd-field-descriptions/v1alpha1/)

doc/user/content/self-managed-deployments/materialize-crd-field-descriptions/v1alpha2.md renamed to doc/user/content/self-managed-deployments/materialize-crd-field-descriptions/v1.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: "v1alpha2"
3-
description: "Reference page on Materialize CRD Fields for the v1alpha2 API (v26.18+)"
2+
title: "v1"
3+
description: "Reference page on Materialize CRD Fields for the v1 API (v26.29+)"
44
menu:
55
main:
66
parent: "materialize-crd-field-descriptions"
77
weight: 10
88
---
99

10-
{{% self-managed/materialize-crd-descriptions-v1alpha2 %}}
10+
{{% self-managed/materialize-crd-descriptions-v1 %}}

doc/user/content/self-managed-deployments/materialize-crd-field-descriptions/v1alpha1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "v1alpha1"
3-
description: "Reference page on Materialize CRD Fields for the v1alpha1 API (before v26.18)"
3+
description: "Reference page on Materialize CRD Fields for the v1alpha1 API (before v26.29)"
44
menu:
55
main:
66
parent: "materialize-crd-field-descriptions"

doc/user/content/self-managed-deployments/upgrading/_index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,14 @@ helm upgrade -n materialize my-demo materialize/operator \
9595

9696
Select the instructions for your CRD API version:
9797

98-
- [v1alpha2 (v26.18+)](/self-managed-deployments/upgrading/materialize-instances/v1alpha2/)
99-
- [v1alpha1 (before v26.18)](/self-managed-deployments/upgrading/materialize-instances/v1alpha1/)
98+
- [v1 (v26.29+)](/self-managed-deployments/upgrading/materialize-instances/v1/)
99+
- [v1alpha1 (before v26.29)](/self-managed-deployments/upgrading/materialize-instances/v1alpha1/)
100100

101101
## Version Specific Upgrade Notes
102102

103-
### Upgrading to `v26.19` and later versions
103+
### Upgrading to `v26.29` and later versions
104104

105-
{{< include-md file="shared-content/self-managed/upgrade-notes/v26.19.md" >}}
105+
{{< include-md file="shared-content/self-managed/upgrade-notes/v26.29.md" >}}
106106

107107
### Upgrading to `v26.1` and later versions
108108

doc/user/content/self-managed-deployments/upgrading/materialize-instances/_index.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,40 +18,40 @@ Operator first. See [Upgrading the Helm Chart and Materialize Operator](/self-ma
1818

1919
## CRD API Versions
2020

21-
Starting in v26.19, the Materialize Operator supports two CRD API versions:
21+
Starting in v26.29, the Materialize Operator supports two CRD API versions:
2222

23-
- **v1alpha2** simplifies the upgrade process. Rollouts trigger automatically when spec fields change, removing the need to manually set a `requestRollout` UUID.
23+
- **v1** simplifies the upgrade process. Rollouts trigger automatically when spec fields change, removing the need to manually set a `requestRollout` UUID.
2424
- **v1alpha1** uses the original two-step upgrade process: first stage changes, then trigger a rollout with a new `requestRollout` UUID.
2525

26-
Switching to v1alpha2 is **opt-in**. Upgrading the operator to v26.19+ does not change your existing v1alpha1 CRs or their behavior. You can continue using v1alpha1 indefinitely. When you are ready, you can switch individual instances to v1alpha2 at your own pace.
26+
Switching to v1 is **opt-in**. Upgrading the operator to v26.29+ does not change your existing v1alpha1 CRs or their behavior. You can continue using v1alpha1 indefinitely. When you are ready, you can switch individual instances to v1 at your own pace.
2727

2828
{{< note >}}
29-
We recommend opting in to v1alpha2 at your convenience, as v1alpha2 behavior will become the default in the next major release.
29+
We recommend opting in to v1 at your convenience, as v1 behavior will become the default in the next major release.
3030
{{</ note >}}
3131

3232
Select the instructions for your CRD API version:
3333

34-
- [v1alpha2 (v26.19+)](/self-managed-deployments/upgrading/materialize-instances/v1alpha2/)
35-
- [v1alpha1 (before v26.19)](/self-managed-deployments/upgrading/materialize-instances/v1alpha1/)
34+
- [v1 (v26.29+)](/self-managed-deployments/upgrading/materialize-instances/v1/)
35+
- [v1alpha1 (before v26.29)](/self-managed-deployments/upgrading/materialize-instances/v1alpha1/)
3636

37-
## Switching from v1alpha1 to v1alpha2
37+
## Switching from v1alpha1 to v1
3838

39-
Switching to v1alpha2 is opt-in and does not trigger a rollout on its own. Before switching, ensure you have completed the prerequisites in the [v26.19 upgrade notes](/self-managed-deployments/upgrading/#upgrading-to-v2619-and-later-versions) (cert-manager, network/firewall changes).
39+
Switching to v1 is opt-in and does not trigger a rollout on its own. Before switching, ensure you have completed the prerequisites in the [v26.29 upgrade notes](/self-managed-deployments/upgrading/#upgrading-to-v2629-and-later-versions) (cert-manager, network/firewall changes), and have enabled the v1 CRD by setting the Helm value `operator.args.installV1CRD=true` on the operator. Without this value, the operator only installs the v1alpha1 CRD version, and the Kubernetes API server rejects v1 CRs.
4040

4141
### How it works
4242

43-
The v1alpha1 CRD remains the storage version. When you submit a v1alpha2 CR, the operator's conversion webhook automatically converts it to v1alpha1 for storage. During conversion, the webhook computes a SHA256 hash of the spec and derives a deterministic `requestRollout` UUID from it. This means:
43+
The v1alpha1 CRD remains the storage version. When you submit a v1 CR, the operator's conversion webhook automatically converts it to v1alpha1 for storage. During conversion, the webhook computes a SHA256 hash of the spec and derives a deterministic `requestRollout` UUID from it. This means:
4444

4545
- If the spec hasn't changed, the same UUID is generated, so **no unintended rollout is triggered** by switching API versions alone.
4646
- If the spec has changed, a different UUID is produced, automatically triggering a rollout.
4747

4848
### Using kubectl
4949

50-
To switch an existing instance to v1alpha2, apply your CR with the updated `apiVersion` and remove the `requestRollout` field:
50+
To switch an existing instance to v1, apply your CR with the updated `apiVersion` and remove the `requestRollout` field:
5151

5252
```shell
5353
kubectl apply -f - <<EOF
54-
apiVersion: materialize.cloud/v1alpha2
54+
apiVersion: materialize.cloud/v1
5555
kind: Materialize
5656
metadata:
5757
name: <instance-name>
@@ -69,15 +69,15 @@ Or patch the API version on an existing CR:
6969
kubectl patch materialize <instance-name> \
7070
-n <materialize-instance-namespace> \
7171
--type='merge' \
72-
-p '{"apiVersion":"materialize.cloud/v1alpha2"}'
72+
-p '{"apiVersion":"materialize.cloud/v1"}'
7373
```
7474

7575
### Using Terraform
7676

7777
If you are managing your Materialize instance with the [Materialize Terraform modules](https://github.com/MaterializeInc/materialize-terraform-self-managed), set:
7878

7979
```hcl
80-
crd_version = "v1alpha2"
80+
crd_version = "v1"
8181
request_rollout = null
8282
```
8383

0 commit comments

Comments
 (0)