Skip to content

CKS: change the service offering, root disk size and affinity groups of a cluster's nodes, restarting them a few at a time #14615

Open

Description

@bhouse-nexthop

problem

The service offering, root disk size and affinity groups of the nodes of an existing CKS (CloudManaged) Kubernetes cluster can't be changed in a way that keeps the workloads running:

  • scaleKubernetesCluster with a new service offering (serviceofferingid or nodeofferings) changes every node of the type at once, with no cordon or drain.
  • The root disk size of the nodes is fixed at creation. A node that runs out of disk can only be grown by hand, one volume at a time, outside CKS.
  • The affinity groups of the nodes are set at creation. Changing them needs each VM stopped by hand, and CKS keeps creating new nodes with the old groups.

There's no supported way to move the nodes of a cluster to new settings a few at a time, for example to spread the workers over hosts with an anti-affinity group, or to give the control plane more memory.

versions

Apache CloudStack main (24.0), CKS with CloudManaged clusters. Not specific to a hypervisor or a storage type.

The steps to reproduce the bug

  1. Create a CKS cluster with 3 workers.
  2. Try to give the workers a larger root disk, a different service offering than the control nodes, or a new anti-affinity group.
  3. There is no API for the root disk or the affinity groups. The scale changes the offering of every worker at once, without draining them.

What to do about it?

Let updateKubernetesCluster set the service offering, root disk size and affinity groups of each node type (control, worker, etcd). New nodes get these settings. With rollout=true, the existing nodes that differ are restarted with them a few at a time: each node is cordoned and drained, its VM is stopped, changed and started, and the node is uncordoned once Kubernetes reports it Ready again. The rollout can be resumed if it stops, and other operations are refused while it runs.

Activity

  1. github-actions commented on Nov 9, 2026

    @github-actions

    Warning

    threat detection engine error
    The threat detection engine encountered an error and could not complete analysis. This is a tooling failure, not a security finding.

    What happened

    The threat detection engine failed to produce results.

    Review the workflow run logs for details.

    🎯 Triage report

    The request is to change the service offering, root disk size and affinity groups of each node type in an existing CKS cluster, applying them with a rolling restart. Today the offering change applies to all nodes at once without a drain, root disk size is fixed at creation, and affinity groups can only be set at creation. The reporter proposes updateKubernetesCluster support with a resumable, cordon-drain-restart rollout. A pull request (#14616) is already open for this.

    📊 Assessment

    Dimension Value Reasoning
    Type type:new-feature New capability for node settings and rolling restarts
    Component component:cks Changes to CKS cluster node settings
    Severity n/a Not a bug report
    Labels type:new-feature, component:cks
    Coding agent Not suitable Large design change; an open PR (#14616) already covers it

    🔗 Similar issues

    💡 Notes and suggestions

    Generated by Daily Issue Triage · copilot · haiku55 · ~4 AIC · ⊞ 3.8K · ◷

    Add this agentic workflow to your repo

    To install this agentic workflow, run

    gh aw add githubnext/agentics/workflows/daily-issue-triage.md@139fa09ef17cde4135e696ff8e7af09bc5ddfa6e
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions