Supported API Resources
Nova supports scheduling the following standard Kubernetes objects:
- configmaps
- namespaces
- persistentvolumeclaims
- pods
- secrets
- serviceaccounts
- services
- daemonsets
- deployments
- replicasets
- statefulsets
- horizontalpodautoscalers
- cronjobs
- jobs
- ingressclasses
- ingresses
- networkpolicies
- clusterrolebindings
- clusterroles
- rolebindings
- roles
- mutatingwebhookconfigurations
- validatingwebhookconfigurations
- priorityclasses
- resourceclaimtemplates
- resourceclaims
- customresourcedefinitions
Nova also supports scheduling custom resource objects defined by CRDs. If a custom resource object uses compute resources, Nova needs to be able to determine the object's resource requirements to perform capacity-aware placement. Nova currently recognizes the resource requirements for the following AI-related custom resource objects:
- NIMCaches, NIMServices; handled on the target workload cluster by NVIDIA NIM Operator
- RayClusters, RayServices, and RayJobs; handled on the target workload cluster by KubeRay
- DynamoGraphDeployments; handled on the target workload cluster by NVIDIA Dynamo
- LeaderWorkerSet; handled on the target workload cluster by Kubernetes LeaderWorkerSet Operator
- InferenceService; handled on the target workload cluster by KServe
Note that special care must be taken when Nova is used to place mutatingwebhookconfigurations or validatingwebhookconfigurations objects. While webhooks scheduled by Nova on target workload cluster(s) work as expected, the webhook versions deployed on the Nova control plane always fail, since no pods run directly on the Nova CP. Hence, webhooks submitted for Nova scheduling should have failurePolicy set to Ignore and timeoutSeconds set to (say) 1. Nova can replace those values in the version it places on the target workload cluster(s) via per-cluster field overrides included the placement policy.