errormatch

package
v0.22.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package errormatch provides types and functions for matching job failure signals: exit codes, termination messages, and Kubernetes conditions.

ExitCodeMatcher supports In/NotIn set membership against container exit codes. Exit code 0 never matches. RegexMatcher holds a pattern string that callers compile at construction time and pass to MatchPattern.

Condition constants (ConditionOOMKilled, ConditionEvicted, ConditionDeadlineExceeded) and the KnownConditions map are provided for config validation. Non-pod conditions (ConditionPreempted, ConditionLeaseReturned, ConditionLeaseExpired, ConditionAppError) are also defined here for use by the retry engine but are not included in KnownConditions.

The failure-category constants (CategoryInternal, CategoryPreemption) and the Subcategory constants name the classifications that Armada hard-codes on self-generated errors. The operator categorizer never assigns them. Errors in CategoryPreemption carry the scheduler's preemption type string as their subcategory.

Index

Constants

View Source
const (
	ConditionOOMKilled        = "OOMKilled"
	ConditionEvicted          = "Evicted"
	ConditionDeadlineExceeded = "DeadlineExceeded"
)

Condition constants derived from KubernetesReason. OOMKilled is a container-level condition (container.State.Terminated.Reason). Evicted and DeadlineExceeded are pod-level conditions (pod.Status.Reason).

View Source
const (
	ConditionPreempted     = "Preempted"
	ConditionLeaseReturned = "LeaseReturned"
	ConditionLeaseExpired  = "LeaseExpired"
	ConditionAppError      = "AppError"
)

Condition constants for non-pod error types (used by the retry engine). These are not observable from Kubernetes pod status, so the executor categorizer cannot match them. ConditionAppError is the catch-all for a PodError whose KubernetesReason is AppError (i.e. container failed without a recognised pod-level reason).

View Source
const (
	CategoryInternal   = "internal"   // Armada-generated failures
	CategoryPreemption = "preemption" // runs that Armada preempts
)

Failure categories that Armada hard-codes at the Error-construction site. The operator categorizer does not assign them.

View Source
const (
	SubcategoryJobCreationFailed = "job-creation-failed" // executor failed to build the runnable job from the lease
	SubcategoryPodMissing        = "pod-missing"         // reconciliation: pod vanished from Kubernetes for an active run
	SubcategoryLeaseExpired      = "lease-expired"       // run cancelled because its executor went stale or was lost
	SubcategoryMaxRunsExceeded   = "max-runs-exceeded"   // job exhausted its run attempts
	SubcategoryJobRejected       = "job-rejected"        // submitcheck or validation rejected the job
	SubcategoryStuckTerminating  = "stuck-terminating"   // node issue: the pod will not terminate
	SubcategoryExternallyDeleted = "externally-deleted"  // pod deleted by something other than Armada
	SubcategoryIssueHandlerError = "issue-handler-error" // pod unexpectedly changed state mid issue-handling
	SubcategoryActiveDeadline    = "active-deadline"     // pod exceeded its user-set activeDeadlineSeconds
)

Variables

KnownConditions is the set of condition strings accepted by the executor error categorizer. Only conditions that map to real Kubernetes reason strings are included.

Functions

func MatchExitCode

func MatchExitCode(matcher *ExitCodeMatcher, exitCode int32) bool

MatchExitCode returns true if the exit code matches the matcher. Exit code 0 never matches (successful containers are not failures).

func MatchPattern

func MatchPattern(re *regexp.Regexp, value string) bool

MatchPattern returns true if the value matches the compiled regex. Empty values never match.

Types

type ExitCodeMatcher

type ExitCodeMatcher struct {
	Operator ExitCodeOperator `yaml:"operator"`
	Values   []int32          `yaml:"values"`
}

ExitCodeMatcher specifies an operator and a set of exit code values.

type ExitCodeOperator

type ExitCodeOperator string

ExitCodeOperator is a set membership operator: In or NotIn.

const (
	ExitCodeOperatorIn    ExitCodeOperator = "In"
	ExitCodeOperatorNotIn ExitCodeOperator = "NotIn"
)

type PodEventMatcher added in v0.22.5

type PodEventMatcher struct {
	// Regexp must match the event message.
	Regexp string `yaml:"regexp"`
	// Reason, when set, must equal the event reason exactly.
	Reason string `yaml:"reason,omitempty"`
	// Type must equal the event type: Normal or Warning.
	Type string `yaml:"type"`
}

PodEventMatcher matches one Kubernetes event on the pod. The fields mirror the failedPodChecks PodEventCheck so existing check configs migrate by copy.

type RegexMatcher

type RegexMatcher struct {
	Pattern string `yaml:"pattern"`
}

RegexMatcher specifies a regex pattern as a string.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL