Skip to content
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

[ClusterClass Operations] Add rebase controller #638

Open
3 tasks
salasberryfin opened this issue Aug 6, 2024 · 0 comments
Open
3 tasks

[ClusterClass Operations] Add rebase controller #638

salasberryfin opened this issue Aug 6, 2024 · 0 comments

Comments

@salasberryfin
Copy link
Contributor

This is issue is part of the epic #387.

Description

Add new controller to manage rebase operations: how changes are applied to downstream clusters created using ClusterClass.

This proposal contains detailed information on what the specific of this operation are.

Features

The rebase operation makes use of Fleet's functionality for matching and applying changes to downstream cluster and Turtles will add ClusterClass integration on top of it (and adapt specifications where we see fit) which will be based on a number of new features that must be implemented together with the controller:

  • New ClusterUpgradeGroup type. The following sample definition can be used as base template.
// ClusterUpgradeGroupSpec defines the desired state of ClusterUpgradeGroup
type ClusterUpgradeGroupSpec struct {
	// +required
	ClassName string `json:"className"`

	// RolloutStrategy controls the rollout of bundles, by defining
	// partitions, canaries and percentages for cluster availability.
	// +optional
	RolloutStrategy *fleetv1.RolloutStrategy `json:"rolloutStrategy,omitempty"`

	// Targets refer to the clusters that should be upgraded.
	Targets []ClusterTargets `json:"targets,omitempty"`
}
  • Define ClusterTargets including selectors for controlling which objects will be affected by the rebase operation.
  • Prevent rebase conflicts where more than one ClusterUpgradeGroup include the same Cluster as ClusterTarget via validating webhooks.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant