# PriorityClass definitions for NPU preempt/reclaim scheduling
#
# priorityClassName controls who can preempt whom:
# - Higher value can preempt lower value (strictly greater)
# - Same value cannot preempt each other
#
# preemptionPolicy controls whether a Pod can preempt others:
# - PreemptLowerPriority (default): can preempt lower priority pods
# - Never: cannot preempt anyone, can only wait for free resources
#
# volcano.sh/preemptible annotation controls whether a Pod can be preempted:
# - "true": can be preempted (Pod-level default)
# - "false": cannot be preempted (PodGroup-level default)
# - Pod-level annotation overrides PodGroup-level annotation
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: npu-high-priority
value: 1000
preemptionPolicy: PreemptLowerPriority
globalDefault: false
description: "NPU high priority: can preempt lower priority tasks"
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: npu-low-priority
value: 100
preemptionPolicy: Never
globalDefault: false
description: "NPU low priority: cannot preempt others, can be preempted"