Getting startedGuidesReferenceChangelog
Apoxy:// Docs / Reference / FallbackRoutingPolicy

FallbackRoutingPolicy

API reference for fallbackroutingpolicies (clrk.apoxy.dev/v1alpha1)

API Group: clrk.apoxy.dev/v1alpha1

Operations

List FallbackRoutingPolicy

GET/apis/clrk.apoxy.dev/v1alpha1/fallbackroutingpolicies

List FallbackRoutingPolicy

Response

  • 200: OK

List FallbackRoutingPolicy

GET/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies

List FallbackRoutingPolicy

Response

  • 200: OK

Create FallbackRoutingPolicy

POST/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies

Create a FallbackRoutingPolicy

Request Body

Spec fields (FallbackRoutingPolicySpec):

FieldTypeDescription
ejectionFallbackEjectionEjection tunes passive outlier ejection of failing backends. Nil applies the per-field defaults documented on FallbackEjection.
parentRefsParentReference[]ParentRefs attaches this policy to AIProviderRoutes. Attachment changes how the referenced routes' rules distribute traffic across their BackendRefs: without a policy, BackendRef.Weight splits traffic and each request gets a single attempt; with one, BackendRefs list ORDER becomes the fallback priority — the first viable backend serves all traffic while healthy, and a failed attempt retries against the next, walking the list in order (weights are ignored). Whole-route attachment only for now; sectionName scoping may follow. (required)
retryFallbackRetryRetry tunes the retry behavior. Nil applies the per-field defaults documented on FallbackRetry.

Response

  • 200: OK
  • 201: Created
  • 202: Accepted

Delete All FallbackRoutingPolicy

DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies

Delete collection of FallbackRoutingPolicy

Response

  • 200: OK

Get FallbackRoutingPolicy

GET/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies/{name}

Get the specified FallbackRoutingPolicy

Response

  • 200: OK

Replace FallbackRoutingPolicy

PUT/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies/{name}

Replace the specified FallbackRoutingPolicy

Request Body

Spec fields (FallbackRoutingPolicySpec):

FieldTypeDescription
ejectionFallbackEjectionEjection tunes passive outlier ejection of failing backends. Nil applies the per-field defaults documented on FallbackEjection.
parentRefsParentReference[]ParentRefs attaches this policy to AIProviderRoutes. Attachment changes how the referenced routes' rules distribute traffic across their BackendRefs: without a policy, BackendRef.Weight splits traffic and each request gets a single attempt; with one, BackendRefs list ORDER becomes the fallback priority — the first viable backend serves all traffic while healthy, and a failed attempt retries against the next, walking the list in order (weights are ignored). Whole-route attachment only for now; sectionName scoping may follow. (required)
retryFallbackRetryRetry tunes the retry behavior. Nil applies the per-field defaults documented on FallbackRetry.

Response

  • 200: OK
  • 201: Created

Update FallbackRoutingPolicy

PATCH/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies/{name}

Partially update the specified FallbackRoutingPolicy

Response

  • 200: OK
  • 201: Created

Delete FallbackRoutingPolicy

DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies/{name}

Delete a FallbackRoutingPolicy

Response

  • 200: OK
  • 202: Accepted

Schema Reference

FallbackEjection

FieldTypeDescription
maxEjectionTimeDurationMaxEjectionTime caps how long a failing backend stays ejected. Ejection durations grow linearly with the backend's ejection count (30s, 60s, 90s, ...) and the count never decays, so without a cap a backend that flapped for a while keeps serving 5-minute (Envoy's default cap) blackout windows even after it recovers — there is no active probing, the expiry of this timer is what puts the backend back in rotation. Values below the 30s base ejection time also lower the base, so the very first ejection honors the cap too. Defaults to Envoy's 300s.

FallbackRetry

FieldTypeDescription
numRetriesinteger (int32)NumRetries caps the number of retry attempts after the first. Defaults to one fewer than the rule's viable backend count, capped at 5.
perTryTimeoutDurationPerTryTimeout bounds each individual attempt. Unset means no per-attempt bound — streaming LLM responses routinely outlive any reasonable fixed timeout, and a retry can only fire before response headers arrive, so leaving this unset never strands a stream.
retriableStatusCodesinteger (int32)[]RetriableStatusCodes lists upstream HTTP status codes that trigger a retry, in addition to connection failures and stream resets (always retried). Defaults to [429, 503].