Smart Filter Syntax

Krust includes a powerful structured filter engine that works across all 28 resource types. Type filters directly in the search box — autocomplete suggestions appear as you type.

Basics

TypeSyntaxExample
FreetextAny wordnginx
Key:Valuekey:valuestatus:running
Comparisonfield>N / field<Nrestarts>5
Negationkey:!valuestatus:!running
CombineSpace = ANDstatus:crash ns:prod

Shared Filters

These work on every resource type:

FilterExampleDescription
name:name:nginxName contains value
ns:ns:productionNamespace contains value
label:label:app=nginxLabel exact match (key=value)
label:label:appHas label with key
annotation:annotation:prometheusHas annotation with key
age>age>7dOlder than 7 days
age<age<2hYounger than 2 hours

Duration units: s (seconds), m (minutes), h (hours), d (days).

Pod Filters

Status

FilterDescription
status:runningPhase = Running
status:pendingPhase = Pending
status:succeededPhase = Succeeded
status:crashCrashLoopBackOff
status:oomOOMKilled
status:errorFailed / Unknown / Waiting
status:unhealthyAll non-healthy states combined

Resource-specific

FilterExampleDescription
node:node:worker-1Pods on a specific node
image:image:nginxImage contains value
restarts>restarts>5More than N restarts
cpu>cpu>80CPU usage above N%
mem>mem>60Memory usage above N%

Workload Filters

For Deployments, StatefulSets, and DaemonSets:

FilterDescription
status:runningready ≥ desired
status:degradedready < desired
status:progressing0 < ready < desired
status:unhealthyready < desired
replicas>3Desired replicas above threshold

Job & CronJob Filters

FilterDescription
status:activeCurrently running
status:completeSucceeded
status:failedFailed

Service Filters

FilterDescription
type:lbLoadBalancer
type:npNodePort
type:clusterClusterIP

Negation

Prefix any value with ! to negate the match:

FilterDescription
status:!runningAll pods NOT in Running phase
ns:!kube-systemResources NOT in kube-system
label:!appResources WITHOUT the "app" label
type:!lbServices that are NOT LoadBalancer

Combining Filters

Separate filters with spaces — all conditions must match (AND logic):

status:crash ns:production              # Crashing pods in production
status:degraded label:app=api           # Degraded deployments with app=api
name:api age>7d restarts>10             # Old API pods with many restarts
status:!running ns:!kube-system cpu>50  # Non-running pods outside kube-system

Autocomplete

As you type, Krust suggests matching filter keys and values:

Press Tab or click a suggestion to accept it.

Tips