Skip to content

Argo Workflows Priority Quick Fix - Workflow Priority Classes

DodaTech Updated 2026-06-26 1 min read

Argo Workflows priority classes control which workflows run first when cluster resources are constrained. Incorrect priority configuration causes low-priority workflows to block critical ones. This guide covers the fix.

Quick Fix

Wrong

spec:
  priority: 100

The issue: using raw priority value without defining a PriorityClass. Kubernetes ignores arbitrary priority values unless a PriorityClass exists. The workflow runs at default priority.

---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 1000
globalDefault: false
---
apiVersion: argoproj.io/v1alpha1
kind: Workflow
spec:
  priorityClassName: high-priority
# Expected output after applying the fix
# PriorityClass "high-priority" created (value: 1000)
# Workflow scheduled with priority 1000
# Higher-priority workflows run before lower-priority ones
# Critical workflows not blocked by batch jobs

Prevention

  • Define PriorityClass resources before referencing them in workflows
  • Use priorityClassName instead of raw priority value
  • Create distinct priority levels (critical, normal, batch)
  • Set globalDefault: false on non-default priority classes
  • Monitor preemption with kubectl get events --field-selector reason=Preempting

DodaTech Tools

Doda Browser's priority dashboard shows workflow priority distribution and scheduling preemption. DodaZIP archives priority configurations for capacity planning. Durga Antivirus Pro validates priority class configurations.

FAQ

What happens when a higher-priority workflow needs resources?

Kubernetes may preempt lower-priority pods to free resources for the higher-priority workflow if preemption is enabled in the cluster. ||| Can I change a workflow's priority after submission? No, priority is set at submission time. Create a new workflow with the desired priority and cancel the old one to change priority. ||| How do I prevent low-priority workflows from starving? Use PriorityClass with proper values and set resource quotas per priority level. Configure the Kubernetes scheduler with appropriate preemption policies.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro