Skip to content

Conversation

@tillrohrmann
Copy link
Contributor

This commit bumps the kube, k8s-openapi and schemars dependency to the latest versions
and updates the code to use the new APIs.

tillrohrmann and others added 7 commits December 23, 2025 01:38
This commit adds support for operator driven cluster provisioning. This feature is by default
disabled. It needs to be enabled via spec.clusterProvisioning.enabled: true. If this feature
is enabled, the operator will provision the cluster by calling the provision_cluster gRPC endpoint
of restate-0 with the default values (provisioning the cluster with the values it was configured
with). To avoid reprovisioning a cluster, we then update status.provisioned to true. This will
prevent future reconciliation loops from reprovisioning the cluster.

If the operator driven cluster provisioning is enabled, then we require that Restate server's
auto-provisioning is disabled. Hence, we fail if auto-provision = false is not found in the configuration
as this can lead to split brain situations.

For existing clusters where users update the CR to enable the operator driven cluster provisioning, the
operator will run the grpc provision call again. If it goes against a provisioned cluster, nothing will
happen. However, there is small risk that this call might reprovision restate-0 if it lost its disk or
wasn't provisioned before. Therefore, users need to be careful with this feature when enabling it for an
existing RestateCluster.

As part of this change, we also bumped the Rust edition to 2024 be able
to use let chaining.

This fixes restatedev#55.
- Add spec.clusterProvisioning section to README with field documentation
- Add warning about disabling other provisioning methods when using
  operator-managed provisioning
- Update all examples to use clusterProvisioning.enabled: true with
  auto-provision = false (minimal, Raft, S3, MinIO)
- Update auto-provision config documentation to emphasize it must be
  false when using operator-managed provisioning

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Updating the opentelemetry dependencies required using the new APIs ot instantiate the
SDK tracer.
If the provisioning grpc call fails, then we don't wait the default requeue duration
but requeue after 5s to retry the provisioning call faster.
This commit bumps the kube, k8s-openapi and schemars dependency to the latest versions
and updates the code to use the new APIs.
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.

1 participant