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):
| Field | Type | Description |
|---|---|---|
ejection | FallbackEjection | Ejection tunes passive outlier ejection of failing backends. Nil applies the per-field defaults documented on FallbackEjection. |
parentRefs | ParentReference[] | 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) |
retry | FallbackRetry | Retry tunes the retry behavior. Nil applies the per-field defaults documented on FallbackRetry. |
Response
200: OK201: Created202: 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):
| Field | Type | Description |
|---|---|---|
ejection | FallbackEjection | Ejection tunes passive outlier ejection of failing backends. Nil applies the per-field defaults documented on FallbackEjection. |
parentRefs | ParentReference[] | 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) |
retry | FallbackRetry | Retry tunes the retry behavior. Nil applies the per-field defaults documented on FallbackRetry. |
Response
200: OK201: Created
Update FallbackRoutingPolicy
PATCH/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies/{name}
Partially update the specified FallbackRoutingPolicy
Response
200: OK201: Created
Delete FallbackRoutingPolicy
DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/fallbackroutingpolicies/{name}
Delete a FallbackRoutingPolicy
Response
200: OK202: Accepted
Schema Reference
FallbackEjection
| Field | Type | Description |
|---|---|---|
maxEjectionTime | Duration | MaxEjectionTime 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
| Field | Type | Description |
|---|---|---|
numRetries | integer (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. |
perTryTimeout | Duration | PerTryTimeout 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. |
retriableStatusCodes | integer (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]. |