Uploaded image for project: 'OpenShift Request For Enhancement'
  1. OpenShift Request For Enhancement
  2. RFE-2025

Add flag to force machine rollout through machinesets

XMLWordPrintable

    • False
    • False
    • Undefined

      1. Proposed title of this feature request

      machineset-controller allows users to enable machine rollout to reconcile changes made to the machineset spec.

      2. What is the nature and description of the request?

      Currently, any changes made to a MachineSet does not recreate Machines that it owns.
      This means modifying MachineSets requires anywhere from additional automation (at best) to error-prone and tedious manual intervention with cluster-admin-like permissions (at worst) in order for Machines and Nodes to reflect the spec on the MachineSet.

      I am only requesting an option available to the user to enable this functionality.
      The feature does not need to be enabled by default, be we need the feature to exist.

      The field could be called something like `redeploy-all-machines: true`.

      See discussion is CoreOS slack: https://coreos.slack.com/archives/CBZHF4DHC/p1627490899255400?thread_ts=1627490372.251200&cid=CBZHF4DHC

      3. Why does the customer need this? (List the business requirements here)

      Firstly, dealing with the numbers at scale.

      With a small number of nodes and full cluster-admin privileges to a cluster, recreating nodes isn't too much of a burden.
      As clusters grow to reach current 3.x usage, the quantities involved (currently 24 clusters, as many as 78 MachineSets in a single cluster, as many as 93 nodes in a single cluster) are unmanageable to manually refresh Machines for changes to take effect, when it is something the machinset-controller could do easily, in a controlled and completely automated fashion.

      Second: lack of permissions in higher environments

      Admins who may have cluster-admin permissions in lower environments lack the necessary permissions to manually delete machines or modify machinesets in higher environments.
      This means customers need to write automated scripts that could run within the context of a change-control process.
      But this level of effort is additional customer overhead when the core automation for machineset creation already exists in machineset-controller, and it could simply redeploy all machines with the administrators permission.

      The implementation need not be complicated.
      I understand updates only conditionally trigger reboots or rebuilds of nodes only when required.
      We do not need to perform that logic here. A simple 'oc delete machine' is sufficient, as the machineset-controller then spawns the Machine with the latest spec.

      4. List any affected packages or components.

      machineset-controller

              rh-ee-smodeel Subin M
              ancollin@redhat.com Andrew Collins
              Votes:
              2 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated:
                Resolved: