Skip to content

Remove request rollout#34904

Draft
alex-hunt-materialize wants to merge 4 commits intoMaterializeInc:mainfrom
alex-hunt-materialize:remove_request_rollout
Draft

Remove request rollout#34904
alex-hunt-materialize wants to merge 4 commits intoMaterializeInc:mainfrom
alex-hunt-materialize:remove_request_rollout

Conversation

@alex-hunt-materialize
Copy link
Contributor

@alex-hunt-materialize alex-hunt-materialize commented Feb 4, 2026

Introduces a new version of the Materialize CRD, which no longer requires the user to update a requestRollout field to trigger a rollout. Instead it hashes a subset of spec fields and a specific annotation in the CRD, and triggers a rollout when that hash changes.

Also removes several deprecated fields.

Motivation

Tips for reviewer

Checklist

  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.

@alex-hunt-materialize alex-hunt-materialize force-pushed the remove_request_rollout branch 8 times, most recently from b19aa54 to 725bc8a Compare February 11, 2026 13:10
@alex-hunt-materialize alex-hunt-materialize force-pushed the remove_request_rollout branch 7 times, most recently from 4e91281 to 3902b4f Compare February 24, 2026 16:37
@doy-materialize
Copy link
Contributor

this pr is kind of enormous, so it's going to take a bit to go through, but one thing i would like to see here is having the counterpart cloud pr ready and tested before this is merged, because i don't want to merge this and then be blocked from updating the cloud submodule for an extended amount of time while we make sure everything works there. (i'll still review this in the meantime though.)

/// If running in AWS, override the IAM role to use to give
/// environmentd access to the persist S3 bucket.
#[kube(deprecated)]
pub environmentd_iam_role_arn: Option<String>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this still in the v2 resource?

Copy link
Contributor Author

@alex-hunt-materialize alex-hunt-materialize Mar 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because I forgot to remove it. It requires extra code to move it to the annotations, and I didn't want to remove it until after I had that in place.

&PatchParams::default(),
&Patch::Merge(patch),
)
.await?;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how does this work? wouldn't this be reverted by the crd being rewritten every time orchestratord starts up?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean when orchestratord installs the CRDs? I don't think that includes the status.

};
let status = mz.status();

// TODO should this check be inside the else above?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's not immediately obvious to me whether it can get to a state of being ready to promote while having the version to promote to be invalid - i don't think it really harms things having it outside the else, unless i'm missing something?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's about thrashing the status, not about being ready to promote. When we're not ready to promote, each loop through we apply the status update on the else clause above, and then if we're not within the upgrade window we update the status again and bail.

I didn't make the change here, as I wanted to minimize the logic changes during this huge migration, but I think it should be moved inside the else above.

@kay-kim
Copy link
Contributor

kay-kim commented Mar 2, 2026

QQ: Does this mean the stuff abut using requestRollout https://materialize.com/docs/self-managed-deployments/upgrading/ will no longer be valid after this PR?

@alex-hunt-materialize
Copy link
Contributor Author

QQ: Does this mean the stuff abut using requestRollout https://materialize.com/docs/self-managed-deployments/upgrading/ will no longer be valid after this PR?

Good catch, I need to update those docs to use v1alpha2 and to remove the requestRollout stuff.

@alex-hunt-materialize alex-hunt-materialize marked this pull request as draft March 2, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants