-
Notifications
You must be signed in to change notification settings - Fork 482
docs: Add rollout guidance for Self-Managed auth #34202
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -26,14 +26,14 @@ used: | |
|
|
||
| Password authentication requires users to log in with a password. | ||
|
|
||
| To configure Self-Managed Materialize for password authentication: | ||
| To configure Self-Managed Materialize for password authentication, update the following fields in the [Materialize CR](/installation/appendix-materialize-crd-field-descriptions/): | ||
|
|
||
| Configuration | Description | ||
| ---------------| ------------ | ||
| `spec.authenticatorKind` | Set to `Password` to enable password authentication. | ||
| `external_login_password_mz_system` | To the Kubernetes Secret referenced by `spec.backendSecretName`, add the secret key `external_login_password_mz_system`. This is the password for the `mz_system` user [^1], who is the only user initially available when password authentication is enabled. | ||
| `external_login_password_mz_system` | Set to the Kubernetes Secret referenced by `spec.backendSecretName`, add the secret key `external_login_password_mz_system`. This is the password for the `mz_system` user [^1], who is the only user initially available when password authentication is enabled. | ||
|
|
||
| For example, if using Kind, in the `sample-materialize.yaml` file: | ||
| An example Materialize CR YAML file: | ||
|
|
||
| ```hc {hl_lines="14 24"} | ||
| apiVersion: v1 | ||
|
|
@@ -92,14 +92,14 @@ SASL/SCRAM-SHA-256 authentication is a challenge-response authentication mechani | |
| that provides security for **PostgreSQL wire protocol connections**. It is | ||
| compatible with PostgreSQL clients that support SCRAM-SHA-256. | ||
|
|
||
| To configure Self-Managed Materialize for SASL/SCRAM authentication: | ||
| To configure Self-Managed Materialize for SASL/SCRAM authentication, update the following fields in the [Materialize CR](/installation/appendix-materialize-crd-field-descriptions/): | ||
|
||
|
|
||
| | Configuration | Description | ||
| |---------------| ------------ | ||
| |`spec.authenticatorKind` | Set to `Sasl` to enable SASL/SCRAM-SHA-256 authentication for PostgreSQL connections. | ||
| |`external_login_password_mz_system` | To the Kubernetes Secret referenced by `spec.backendSecretName`, add the secret key `external_login_password_mz_system`. This is the password for the `mz_system` user [^1], who is the only user initially available when SASL authentication is enabled. | ||
| |`external_login_password_mz_system` | Set to the Kubernetes Secret referenced by `spec.backendSecretName`, add the secret key `external_login_password_mz_system`. This is the password for the `mz_system` user [^1], who is the only user initially available when SASL authentication is enabled. | ||
|
|
||
| For example, if using Kind, in the `sample-materialize.yaml` file: | ||
| An example Materialize CR YAML file: | ||
|
|
||
| ```hc {hl_lines="14 24"} | ||
| apiVersion: v1 | ||
|
|
@@ -148,6 +148,25 @@ When SASL authentication is enabled: | |
| This hybrid approach provides maximum security for SQL connections while maintaining | ||
| compatibility with web-based tools. | ||
|
|
||
| ## Deploying authentication | ||
|
|
||
| Using the configured Materialize CR YAML file, we recommend rolling out the changes by adding the following fields: | ||
| ```yaml | ||
| spec: | ||
| ... | ||
| requestRollout: <SOME_NEW_UUID> # Generate new UUID for rollout | ||
| forceRollout: <SOME_NEW_UUID> # Rollout without requiring a version change | ||
| # Tears down the prior version and restarts the current Materialize instance | ||
| rolloutStrategy: ImmediatelyPromoteCausingDowntime | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jubrad and @sidsaw-mz ... any concerns about using the ImmediatelyPromoteCausingDowntime strategy here? |
||
| ``` | ||
|
|
||
| For more information on rollout configuration, view our [installation overview](/installation/#rollout-configuration). | ||
|
|
||
| {{< warning >}} | ||
|
||
| Ensure that the `authenticatorKind` field is set for any future version upgrades or rollouts of the Materialize CR. Having it undefined will reset `authenticationKind` to `None`. | ||
| {{< /warning >}} | ||
|
|
||
|
|
||
| ## Enabling RBAC | ||
|
|
||
| {{< include-md file="shared-content/enable-rbac.md" >}} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So ... let's remove the link here ... because that page just gives all the fields ... and we're giving the specific fields here.
We could go "For all Materialize CR settings, see ... "