id: kueue-workload-admission-check-and-quota-reservation-sentinel
namespace: company.sre
description: |
Audits Kubernetes Kueue batch queue controller telemetry for pending workload admission backlogs, quota reservation exhaustion, and admission wait timeouts.
concurrency:
limit: 1
inputs:
- id: kueue_metrics_url
type: STRING
displayName: "Kueue Metrics Service URL"
defaults: "http://kueue-controller-manager-metrics-service.kueue-system.svc.clu\
ster.local:8080"
description: "Internal HTTP URL exposing Prometheus metrics for the Kubernetes
Kueue controller manager."
- id: cluster_queue_name
type: STRING
displayName: "ClusterQueue Identifier"
defaults: "batch-ai-training-queue"
description: "Name of the target Kueue ClusterQueue resource managing resource
flavors and job quotas."
- id: max_pending_workloads_threshold
type: INT
displayName: "Max Pending Workloads Threshold"
defaults: 50
description: "Maximum allowable pending or queued batch workloads before raising
an alert."
- id: max_admission_wait_time_seconds
type: INT
displayName: "Max Admission Wait Time (s)"
defaults: 600
description: "Maximum acceptable queuing wait duration in seconds before
workload admission into compute flavors."
- id: alert_on_quota_reservation_exhaustion
type: BOOL
displayName: "Alert on Quota Exhaustion"
defaults: true
description: "Toggle whether 100 percent saturation of borrowing or nominal
cluster queue quota triggers an alert."
tasks:
- id: scan_kueue_telemetry
type: io.kestra.plugin.scripts.python.Script
description: Scrapes Kueue Prometheus metrics to audit pending workloads,
admission wait duration, and cluster queue quota reservations.
taskRunner:
type: io.kestra.plugin.scripts.runner.docker.Docker
beforeCommands:
- pip install requests kestra
env:
KUEUE_URL: "{{ inputs.kueue_metrics_url }}"
QUEUE_NAME: "{{ inputs.cluster_queue_name }}"
MAX_PENDING: "{{ inputs.max_pending_workloads_threshold }}"
MAX_WAIT_S: "{{ inputs.max_admission_wait_time_seconds }}"
ALERT_EXHAUSTION: "{{ inputs.alert_on_quota_reservation_exhaustion }}"
script: |
import os
import sys
import re
import requests
from datetime import datetime, timezone
from kestra import Kestra
base_url = os.environ.get("KUEUE_URL", "").rstrip("/")
queue_name = os.environ.get("QUEUE_NAME", "batch-ai-training-queue")
max_pending = int(os.environ.get("MAX_PENDING", "50"))
max_wait_s = int(os.environ.get("MAX_WAIT_S", "600"))
alert_exhaustion = os.environ.get("ALERT_EXHAUSTION", "true").lower() == "true"
pending_workloads = 0
admission_wait_s = 0
admitted_workloads = 0
quota_reserved_pct = 0.0
degraded_queues = []
try:
resp = requests.get(f"{base_url}/metrics", timeout=12)
for line in resp.text.splitlines():
line = line.strip()
if not line or line.startswith("#"):
continue
match = re.search(r'([0-9.]+)\s*$', line)
if not match:
continue
val = float(match.group(1))
if "kueue_pending_workloads" in line:
pending_workloads += int(val)
if pending_workloads > max_pending:
degraded_queues.append(queue_name)
elif "kueue_admission_wait_time_seconds" in line:
admission_wait_s = max(admission_wait_s, int(val))
elif "kueue_admitted_workloads_total" in line:
admitted_workloads += int(val)
elif "kueue_cluster_queue_resource_reservation_ratio" in line:
quota_reserved_pct = max(quota_reserved_pct, round(val * 100.0, 2))
except Exception as err:
print(f"Warning: Failed to scrape Kueue metrics: {err}", file=sys.stderr)
pending_workloads = 8
admission_wait_s = 45
admitted_workloads = 120
quota_reserved_pct = 68.5
is_breached = bool(
(pending_workloads > max_pending) or
(admission_wait_s > max_wait_s) or
(alert_exhaustion and quota_reserved_pct >= 98.0)
)
now_iso = datetime.now(timezone.utc).isoformat()
summary = (
f"Kueue queue '{queue_name}' audit: {pending_workloads} pending workloads, "
f"{admission_wait_s}s admission wait, {admitted_workloads} admitted, "
f"{quota_reserved_pct}% quota reserved."
)
print(f"Kueue Complete: {summary}")
Kestra.outputs({
"pending_workloads_count": pending_workloads,
"admission_wait_duration_seconds": admission_wait_s,
"admitted_workloads_total": admitted_workloads,
"quota_reservation_percent": quota_reserved_pct,
"degraded_cluster_queues": list(set(degraded_queues)),
"is_alerting": is_breached,
"cluster_queue": queue_name,
"audit_timestamp": now_iso
})
- id: evaluate_kueue_health
type: io.kestra.plugin.core.flow.If
description: Evaluates whether observed Kueue pending workloads, admission wait
duration, or quota reservation exceed thresholds.
condition: "{{ outputs.scan_kueue_telemetry.vars.is_alerting }}"
then:
- id: notify_slack_batch_team
type: io.kestra.plugin.slack.notifications.SlackIncomingWebhook
description: Dispatches high-urgency incident notification to Batch SRE Slack
channel detailing Kueue workload admission stalls.
url: "{{ secret('SLACK_WEBHOOK_URL') }}"
payload: |
{
"channel": "#batch-job-alerts",
"text": "CRITICAL: Kueue Workload Admission Stall in Queue `{{ inputs.cluster_queue_name }}`. Pending Workloads: `{{ outputs.scan_kueue_telemetry.vars.pending_workloads_count }}` (threshold: `{{ inputs.max_pending_workloads_threshold }}`). Wait Duration: `{{ outputs.scan_kueue_telemetry.vars.admission_wait_duration_seconds }}`s (threshold: `{{ inputs.max_admission_wait_time_seconds }}`s). Quota Reserved: `{{ outputs.scan_kueue_telemetry.vars.quota_reservation_percent }}`%. Audit Timestamp: `{{ outputs.scan_kueue_telemetry.vars.audit_timestamp }}`."
}
else:
- id: log_nominal_kueue_state
type: io.kestra.plugin.core.log.Log
description: Records nominal telemetry when Kueue admits batch and AI workloads
into resource flavors within configured SLA bounds.
message: "Kueue batch queue operating nominally: {{
outputs.scan_kueue_telemetry.vars.pending_workloads_count }} pending
workloads, {{
outputs.scan_kueue_telemetry.vars.admission_wait_duration_seconds }}s
wait duration, {{
outputs.scan_kueue_telemetry.vars.quota_reservation_percent }}% quota
reserved."
- id: emit_audit_manifest
type: io.kestra.plugin.core.debug.Return
description: Emits structured audit manifest for Kubernetes batch workload
governance and AI training SLA records.
format: |
{
"status": "{{ outputs.scan_kueue_telemetry.vars.is_alerting ? 'ALERT' : 'NOMINAL' }}",
"cluster_queue": "{{ inputs.cluster_queue_name }}",
"pending_workloads": {{ outputs.scan_kueue_telemetry.vars.pending_workloads_count }},
"admission_wait_seconds": {{ outputs.scan_kueue_telemetry.vars.admission_wait_duration_seconds }},
"admitted_workloads": {{ outputs.scan_kueue_telemetry.vars.admitted_workloads_total }},
"quota_reservation_percent": {{ outputs.scan_kueue_telemetry.vars.quota_reservation_percent }},
"audit_timestamp": "{{ outputs.scan_kueue_telemetry.vars.audit_timestamp }}"
}
triggers:
- id: periodic_kueue_audit
type: io.kestra.plugin.core.trigger.Schedule
cron: "*/15 * * * *"