openkruise/rollouts

[Feature] Support specifying batch index for rolling

Somefive opened this issue · 1 comments

By far, in the spec of Rollout, we can only specify the steps of the rolling process but cannot set which step we want to reached. In the case that the Rollout process needs to be managed by upper layer system, like App Delivery Tools / GitOps Tools / Business Platform, we need to set all the steps before the desired step to use no duration to allow a direct rolling.

For example, if we have a rolling process that contains 5 steps

steps:
  - weight: 5
  - weight: 10
  - weight: 20
  - weight: 50
  - weight: 100

If we want to let the rolling to reach the 4th step and stop there, we need to write

steps:
  - weight: 5
    pause:
      duration: 0
  - weight: 10
    pause:
      duration: 0
  - weight: 20
    pause:
      duration: 0
  - weight: 50
    pause: {}
  - weight: 100

This might not be a very convenient way especially when user needs to interact with the whole spec of the rollout object directly.

If we can support a more convenient way to do that, like directly specifying the desired step id or index, it could make it easier for the interaction like

stepIndex: 3
steps:
  - weight: 5
  - weight: 10
  - weight: 20
  - weight: 50
  - weight: 100

BTW, the currentStepIndex in the status field could also be an alternative place for changing step index. As in kubectl v1.26, we could use kubectl edit --subresource=status to edit the status of the Kubernetes resources.

/assign @veophi