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

Add Tolerations support to HCP KubeVirt NodePools

XMLWordPrintable

    • None
    • Product / Portfolio Work
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      1. Proposed title of this feature request

      Enable Tolerations support in NodePool API for KubeVirt Platform

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

      The request is a functional enhancement to the hypershift.openshift.io API.

      Currently, the NodePool specification for the KubeVirt platform allows users to define a nodeSelector under spec.platform.kubevirt. This allows KubeVirt Virtual Machines (which serve as the nodes for the Hosted Cluster) to be placed on specific management nodes. However, the API lacks a corresponding tolerations field.

      In Kubernetes, nodeSelector and tolerations work in tandem. If a management node is "tainted" to reserve it for specific workloads, a pod (or in this case, a KubeVirt VM) cannot be scheduled on that node unless it has a matching toleration. This RFE proposes adding a tolerations field to the NodePool.spec.platform.kubevirt schema that propagates down to the underlying VirtualMachine objects.

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

      • Workload Isolation & Multi-tenancy: Customers running multiple Hosted Control Plane (HCP) clusters need to guarantee that Cluster A's nodes never share physical hardware with Cluster B. This is achieved by tainting nodes for specific tenants.
      • Infrastructure Cost Management: Customers often designate "Infra Nodes" specifically for HCP workloads. To prevent regular application pods from "stealing" resources from these nodes, the nodes are tainted. Without tolerations support, HCP cannot utilize this dedicated infrastructure.
      • Strict Scheduling Policy: Large enterprises often have security or compliance policies requiring that "Management" resources be strictly separated from "Data Plane" resources. Taints are the standard mechanism to enforce this; without tolerations, the KubeVirt-based NodePools remain in a Pending state indefinitely.

       

      4. List any affected packages or components.
      Hosted Control Plane

      Additional Info:

      oc explain np.spec.platform.kubevirt.nodeSelector
      GROUP:      hypershift.openshift.io
      KIND:       NodePool
      VERSION:    v1beta1FIELD: nodeSelector <map[string]string>
      DESCRIPTION:
          NodeSelector is a selector which must be true for the kubevirt
          VirtualMachine to fit on a node.
          Selector which must match a node's labels for the VM to be scheduled on that
          node. More info:
          https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ 

              racedoro@redhat.com Ramon Acedo
              rhn-support-dpateriy Divyam Pateriya
              None
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                None
                None