Cluster-api: clusterctl rollout

Created on 3 Aug 2020  路  10Comments  路  Source: kubernetes-sigs/cluster-api

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:

Related:
Issue #3401
Issue #3203

/kind feature

areclusterctl kinfeature

Most helpful comment

clusterctl alpha <>? So we can follow the alpha phases we have in other tools

All 10 comments

+1 this feature makes sense, we might need a small RFE/proposal

Common usage patterns may include:

  1. Immediate Rollouts:
clusterctl rollout machinedeployment/my-cluster-md-0
clusterctl rollout kubeadmcontrolplane/my-cluster-control-plane
  1. Rollout based on specific infra machine template. For example, modify the existing MachineDeployment to reference the new infra (e.g. docker) machine template resource. It's assumed that the user has created the my-cluster-md-0-rev-1 beforehand:
clusterctl rollout machinedeployment/my-cluster-md-0 --template dockermachinetemplate/my-cluster-md-0-rev-1
  1. Monitor status:
clusterctl rollout status machinedeployment/my-cluster-md-0
clusterctl rollout status kubeadmcontrolplane/my-cluster-control-plane
  1. Rollback to the previous deployment or a specific revision:
clusterctl rollout undo machinedeployment/my-cluster-md-0
clusterctl  rollout undo machinedeployment/my-cluster-md-0 --to-revision=2         
  1. History:
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

Was this page helpful?
0 / 5 - 0 ratings