As an operator I would like a convenient and consistent mechanism through which I can rollout updates to my control-plane and worker nodes.
As an operator I would like to inspect a rollout as it occurs, rollback changes if needed and view the rollout history.
Detailed Description
Motivated by kubectl rollout.
The idea is to create a new clusterctl sub-command: clusterctl rollout.
Issue/PR Tracker:
status.restart for MachineDeployments: https://github.com/kubernetes-sigs/cluster-api/pull/3838 pause/resume for MachineDeployments https://github.com/kubernetes-sigs/cluster-api/pull/4054status for MachineDeploymentsundo for MachineDeployments https://github.com/kubernetes-sigs/cluster-api/pull/4098history for MachineDeploymentsRelated:
Issue #3401
Issue #3203
/kind feature
+1 this feature makes sense, we might need a small RFE/proposal
Common usage patterns may include:
clusterctl rollout machinedeployment/my-cluster-md-0
clusterctl rollout kubeadmcontrolplane/my-cluster-control-plane
my-cluster-md-0-rev-1 beforehand:clusterctl rollout machinedeployment/my-cluster-md-0 --template dockermachinetemplate/my-cluster-md-0-rev-1
clusterctl rollout status machinedeployment/my-cluster-md-0
clusterctl rollout status kubeadmcontrolplane/my-cluster-control-plane
clusterctl rollout undo machinedeployment/my-cluster-md-0
clusterctl rollout undo machinedeployment/my-cluster-md-0 --to-revision=2
clusterctl rollout history machinedeployment/my-cluster-md-0
+1 this feature makes sense, we might need a small RFE/proposal
More than happy to put together a proposal and a POC if we agree that this is the right way to go about this.
cc @wfernandes @fabriziopandini
/milestone v0.4.0
+1 from me to the high level approach for a near term solution to the problem. It might make sense to also propose support in upstream Kubernetes/kubectl/kubebuilder for a sub-resource type interface so that we could eventually have direct support in kubectl similar to the way we have with the scale subresource today.
I'm ok with the proposal but I agree with @detiber that the long term solution is to make this to work in kubectl
I added a link to the proposal. PTAL
I'm going to start implementing a PoC -- focusing just on MachineDeployments for now.
I wanted to ask, if people are okay with having a top level command like clusterctl rolloutor would you prefer something else like (i) clusterctl experimental rollout (ii) clusterctl workload-cluster rollout (iii) ...?
@fabriziopandini @wfernandes,
clusterctl alpha <>? So we can follow the alpha phases we have in other tools
/area clusterctl
Most helpful comment
clusterctl alpha <>? So we can follow the alpha phases we have in other tools