Repository navigation
cks node groups - #14594
cks node groups#14594argrinberg wants to merge 4 commits into
Conversation
Node groups are pools of worker nodes of a CloudManaged Kubernetes cluster with their own service offering, template, Kubernetes labels, taints and autoscaling settings. Every cluster has a default node group holding the worker nodes of the cluster size. The nodes of the node groups are linked to them in the cluster VM map, along with their own labels and taints.
- New APIs to create, list, update, scale and delete the node groups of a cluster, and to update the labels and taints of a node. - Node group nodes are registered with the node group label, labels and taints through the kubelet; label and taint changes are applied to the existing nodes, merging the ones of the node group with the ones of each node. - The default node group is created with the cluster, and on startup for the existing clusters. It can not be deleted, keeps at least one node and only allows PreferNoSchedule taints so that the system pods can run. The cluster scale API applies to it and keeps it in sync. - Operations on different node groups of a cluster can run at the same time: the cluster stays Scaling while they are in progress, network rules and counters are updated under locks, failed scale ups only clean up their own nodes and failures move the node group to Error. - The cluster autoscaler is deployed with one --nodes argument per node group with autoscaling enabled. Node groups other than the default one require an autoscaler image supporting node groups, set by cloud.kubernetes.cluster.autoscaler.image. - The cluster response has the total number of worker nodes and the node groups of the cluster.
Adds a node groups tab to Kubernetes clusters to create, scale, update and delete node groups with their labels, taints and autoscaling settings, and to list the nodes of each node group and edit their own labels and taints. The cluster list shows the total number of worker nodes and the cluster scale dialog is labelled for the default node group.
|
Congratulations on your first Pull Request and welcome to the Apache CloudStack community! If you have any issues or are unsure about any anything please check our Contribution Guide (https://github.com/apache/cloudstack/blob/main/CONTRIBUTING.md)
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #14594 +/- ##
============================================
- Coverage 20.78% 20.75% -0.04%
- Complexity 21931 22010 +79
============================================
Files 6496 6513 +17
Lines 591657 593781 +2124
Branches 72592 72909 +317
============================================
+ Hits 122966 123227 +261
- Misses 455346 457175 +1829
- Partials 13345 13379 +34
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
This pull request has merge conflicts. Dear author, please fix the conflicts and sync your branch with the base branch. |
Description
Adds node groups (node pools) to CloudManaged CKS clusters. Every cluster gets a default node group holding the worker nodes of the cluster size; additional node groups have their own service offering, template, Kubernetes labels and taints, and autoscaling settings. Nodes can also have their own labels and taints on top of the ones of their node group.
createKubernetesClusterNodeGroup,listKubernetesClusterNodeGroups,updateKubernetesClusterNodeGroup,scaleKubernetesClusterNodeGroup,deleteKubernetesClusterNodeGroup,updateKubernetesClusterNodescaleKubernetesClusterkeeps working and applies to the default node group--nodesargument per autoscaled node group. Node groups other than the default one need an autoscaler image supporting node groups, set by the newcloud.kubernetes.cluster.autoscaler.imageglobal setting (the upstream image only supports the default node group)Types of changes
Screenshots (if appropriate):
How Has This Been Tested?
Documentation PR: apache/cloudstack-documentation#699