Skip to content

Server-Applied Defaults

The F5 XC API uses enhanced metadata to distinguish between field requirement types, reducing the number of fields you must provide.

Available since v2.0.28

  1. User-Required Fields (x-f5xc-required-for.create: true)

    • Must be provided by user at creation time
    • Validation returns error if missing
    • Example: metadata.name, http_health_check.path
  2. Server-Defaulted Fields (x-f5xc-server-default: true)

    • Optional at creation time
    • Server applies default value if omitted
    • Validation returns warning with default value info
    • Example: healthcheck.jitter_percent defaults to 0
  3. Recommended Values (x-f5xc-recommended-value) - v2.0.32+

    • Suggested values matching F5 XC web UI defaults
    • Provides guidance without enforcing specific values
    • Example: spec.timeout recommended value is 3
  4. Schema-Required Fields (x-ves-required: true)

    • Must have non-zero value when API processes the request
    • Can be user-provided OR server-defaulted
FieldDefault Value
spec.jitter_percent0
spec.http_health_check.use_http2false
spec.http_health_check.headers{}
spec.http_health_check.expected_status_codes[] (accepts 200-299)
spec.http_health_check.request_headers_to_remove[]
FieldRecommended
spec.timeout3 seconds
spec.interval15 seconds
spec.unhealthy_threshold1 failure
spec.healthy_threshold3 successes
spec.jitter_percent30% (production)
{
"metadata": {
"name": "example-hc",
"namespace": "default"
},
"spec": {
"timeout": 3,
"interval": 15,
"unhealthy_threshold": 1,
"healthy_threshold": 3,
"http_health_check": {
"use_origin_server_name": {},
"path": "/health"
}
}
}

Server automatically applies: jitter_percent -> 0, use_http2 -> false, headers -> {}, expected_status_codes -> [].

FieldServer DefaultUI DefaultNote
spec.loadbalancer_algorithmROUND_ROBINLB_OVERRIDESee warning below
spec.endpoint_selectionDISTRIBUTED-Distributed selection
TLS to origin (spec.no_tls)Disabled-No TLS by default
Connection timeout2000 ms-2 second timeout
HTTP idle timeout300000 ms-5 minute timeout
Circuit breakerDefault enabled-Auto-enabled
Outlier detectionDisabled-Must enable explicitly
HTTP protocolAuto-negotiation-auto_http_config
Proxy protocolDisabled-Must enable explicitly
{
"metadata": {
"name": "example-origin-pool",
"namespace": "default"
},
"spec": {
"origin_servers": [
{
"public_ip": {
"ip": "192.0.2.1"
}
}
],
"port": 443,
"use_tls": {
"use_host_header_as_sni": {}
}
}
}

When validating parameters:

  • Missing user-required field -> Error: “Missing required field: metadata.name”
  • Missing server-default field -> Warning: “Field ‘jitter_percent’ will default to 0”
  • Recommended values -> Info: Returned in recommendedValues for guidance