Metadados de enriquecimento para esquemas relacionados a origin_pool. Consulte Extensões OpenAPI para definições de extensões.
Todos os esquemas que correspondem a origin_pool.*SpecType recebem enriquecimentos:
origin_poolCreateSpecType
origin_poolReplaceSpecType
origin_poolGetSpecType
| Campo | Obrigatório Para | Observações |
|---|
metadata.name | Todas as operações | 1-63 caracteres, alfanumérico minúsculo, padrão: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ |
metadata.namespace | Todas as operações | Identificador de namespace |
spec.origin_servers | Criação | Mínimo de 1 item |
spec.port | Criação | 1-65535, sem padrão do servidor |
"name": "my-origin-pool",
"dns_name": "backend.example.com"
Campos marcados com x-f5xc-server-default: true têm seu valor default aplicado pelo servidor da API F5 XC quando omitidos das requisições.
| Campo | Valor Padrão | Tipo | Descrição |
|---|
no_tls | {} | object | TLS para a origem desativado |
healthcheck | [] | array | Nenhuma verificação de integridade configurada |
loadbalancer_algorithm | ROUND_ROBIN | enum | Balanceamento de carga round-robin |
endpoint_selection | DISTRIBUTED | enum | Usar todos os endpoints (local + remoto) |
Quando advanced_options não é especificado, o servidor se comporta como se estes valores estivessem definidos:
| Campo | Valor Padrão | Tipo | Descrição |
|---|
connection_timeout | 2000 | integer | Tempo limite de conexão em milissegundos |
http_idle_timeout | 300000 | integer | Tempo limite de inatividade HTTP em milissegundos (5 min) |
same_as_endpoint_port | {} | object | Verificação de integridade usa a porta do endpoint |
default_circuit_breaker | {} | object | Configurações padrão do circuit breaker |
disable_outlier_detection | {} | object | Detecção de outlier desativada |
no_panic_threshold | {} | object | Sem limiar de pânico |
disable_subsets | {} | object | Balanceamento de carga por subconjunto desativado |
auto_http_config | {} | object | Negociação automática de protocolo HTTP |
disable_proxy_protocol | {} | object | Protocolo proxy desativado |
disable_lb_source_ip_persistance | {} | object | Persistência de IP de origem do LB desativada |
| Caminho | Valor Padrão | Descrição |
|---|
origin_servers[].labels | {} | Objeto de labels vazio |
origin_servers[].public_name.refresh_interval | 0 | Usar atualização de DNS padrão do sistema |
A interface web do F5 XC pré-seleciona valores diferentes dos que a API aplica quando os campos são omitidos.
| Campo | Pré-selecionado na UI | Aplicado pelo Servidor | Observação |
|---|
loadbalancer_algorithm | LB_OVERRIDE | ROUND_ROBIN | Recursos criados pela UI e pela API diferem quando o campo é omitido |
| Valor | Descrição | Observações |
|---|
ROUND_ROBIN | Cada endpoint saudável é selecionado em ordem round-robin | Padrão do servidor |
LEAST_REQUEST | Endpoint com menos requisições ativas é selecionado | |
RING_HASH | Hashing consistente usando ring hash dos nomes dos endpoints | |
RANDOM | Seleção aleatória de endpoint saudável | |
LB_OVERRIDE | Política de hash herdada do balanceador de carga pai | Padrão da UI |
| Valor | Descrição | Observações |
|---|
DISTRIBUTED | Considerar endpoints remotos e locais | Padrão do servidor |
LOCAL_ONLY | Apenas endpoints locais são utilizados | |
LOCAL_PREFERRED | Preferir local, recorrer ao remoto se indisponível | |
Grupos de campos mutuamente exclusivos. Apenas UM campo de cada grupo pode ser especificado:
| Grupo | Campos | Padrão do Servidor |
|---|
| Configuração de Porta | port, automatic_port, lb_port | port (explícito) |
| TLS para a Origem | no_tls, use_tls | no_tls |
| Porta de Verificação de Integridade | same_as_endpoint_port, health_check_port | same_as_endpoint_port |
| Circuit Breaker | default_circuit_breaker, disable_circuit_breaker, circuit_breaker | default_circuit_breaker |
| Detecção de Outlier | disable_outlier_detection, outlier_detection | disable_outlier_detection |
| Limiar de Pânico | no_panic_threshold, panic_threshold | no_panic_threshold |
| LB por Subconjunto | disable_subsets, enable_subsets | disable_subsets |
| Protocolo HTTP | auto_http_config, http1_config, http2_options | auto_http_config |
| Protocolo Proxy | disable_proxy_protocol, proxy_protocol_v1, proxy_protocol_v2 | disable_proxy_protocol |
| IP de Origem do LB | disable_lb_source_ip_persistance, enable_lb_source_ip_persistance | disable_lb_source_ip_persistance |
| Pool de Conexões | enable_conn_pool_reuse, disable_conn_pool_reuse | enable_conn_pool_reuse |
| Campo | Tipo | Restrição |
|---|
spec.port | integer | 1-65535 |
spec.advanced_options.connection_timeout | integer | 0-1.800.000 ms |
spec.advanced_options.http_idle_timeout | integer | 0-600.000 ms |
spec.advanced_options.panic_threshold | integer | 0-100 (percentual) |
metadata.name | string | 1-63 caracteres, padrão: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ |
O console web do F5 XC apresenta 15 opções de configuração para pools de origem:
| # | Rótulo na UI | Caminho do Campo na API | Tipo | Padrão do Servidor |
|---|
| 1 | Porta do Servidor de Origem | spec.[port|automatic_port|lb_port] | OneOf | port (explícito) |
| 2 | Reutilização de Pool de Conexões | spec.[enable_conn_pool_reuse|disable_conn_pool_reuse] | OneOf | enable_conn_pool_reuse |
| 3 | Porta de Verificação de Integridade | spec.advanced_options.[same_as_endpoint_port|health_check_port] | OneOf | same_as_endpoint_port |
| 4 | Algoritmo do Balanceador de Carga | spec.loadbalancer_algorithm | enum | ROUND_ROBIN |
| 5 | Seleção de Endpoint | spec.endpoint_selection | enum | DISTRIBUTED |
| 6 | TLS para a Origem | spec.[no_tls|use_tls] | OneOf | no_tls |
| 7 | Tempo Limite de Conexão | spec.advanced_options.connection_timeout | integer | 2000 ms |
| 8 | Tempo Limite de Inatividade HTTP | spec.advanced_options.http_idle_timeout | integer | 300000 ms |
| 9 | Circuit Breaker | spec.advanced_options.[default_circuit_breaker|disable_circuit_breaker|circuit_breaker] | OneOf | default_circuit_breaker |
| 10 | Detecção de Outlier | spec.advanced_options.[disable_outlier_detection|outlier_detection] | OneOf | disable_outlier_detection |
| 11 | Limiar de Pânico | spec.advanced_options.[no_panic_threshold|panic_threshold] | OneOf | no_panic_threshold |
| 12 | Balanceamento de Carga por Subconjunto | spec.advanced_options.[disable_subsets|enable_subsets] | OneOf | disable_subsets |
| 13 | Protocolo HTTP | spec.advanced_options.[auto_http_config|http1_config|http2_options] | OneOf | auto_http_config |
| 14 | Protocolo Proxy | spec.advanced_options.[disable_proxy_protocol|proxy_protocol_v1|proxy_protocol_v2] | OneOf | disable_proxy_protocol |
| 15 | Persistência de IP de Origem do LB | spec.advanced_options.[disable_lb_source_ip_persistance|enable_lb_source_ip_persistance] | OneOf | disable_lb_source_ip_persistance |
| Arquivo | Conteúdo |
|---|
docs/specifications/api/virtual.json | origin_poolCreateSpecType, origin_poolReplaceSpecType, origin_poolGetSpecType |
docs/specifications/api/openapi.json | Especificação consolidada com todos os esquemas |
defaults.resources.origin_pool
├── server_applied # Campos com x-f5xc-server-default: true
├── recommended # Campos com x-f5xc-recommended-value
├── advanced_options # Padrões de advanced_options aninhados
├── oneof_choices # Seleções padrão de OneOf
└── ui_vs_server # Discrepâncias entre UI e servidor
Os servidores de origem podem ser especificados usando diferentes variantes de tipo. O tipo determina quais campos adicionais são obrigatórios.
| Tipo | Descrição | Campos Obrigatórios | Status |
|---|
public_name | Servidor de origem com nome DNS público | dns_name | ✅ Completo |
public_ip | Servidor de origem com endereço IP público | ip (IPv4) | ✅ Completo |
"dns_name": "backend.example.com"
Os seguintes tipos de servidores de origem requerem o desenvolvimento da lógica de recurso “site” antes da implementação:
| Tipo | Descrição | Campos Obrigatórios | Status |
|---|
private_ip | Servidor de origem com IP privado/público e informações de site | ip, site_locator, network_choice, snat_pool | 🔲 Pendente lógica de site |
private_name | Servidor de origem com nome DNS e informações de site | dns_name, site_locator, network_choice, snat_pool | 🔲 Pendente lógica de site |
k8s_service | Serviço Kubernetes com informações de site | service_name, site_locator, network_choice | 🔲 Pendente lógica de site |
consul_service | Serviço HashiCorp Consul com informações de site | service_name, site_locator, network_choice | 🔲 Pendente lógica de site |
Antes que esses tipos possam ser completamente documentados:
- Descoberta de Recursos de Site - Documentar o esquema do recurso
site e os padrões de site_locator
- Enum de Escolha de Rede - Documentar os valores restritos de
network_choice (site_local_inside, site_local_outside, etc.)
- Opções de Pool SNAT - Documentar os padrões de configuração do pool SNAT
- Referências Entre Recursos - Definir como origin_pool referencia recursos de site
- Placeholder de configuração:
config/discovered_defaults.yaml → origin_pool.origin_server_types.enums
- Sprint relacionado: Enriquecimentos de esquema de recursos de site
| Versão | Data | Alterações |
|---|
| 2.1.2 | 2026-01-18 | Adicionada seção de tipos de servidores de origem com public_name/public_ip; marcadores TODO para tipos dependentes de site |
| 2.1.1 | 2026-01-18 | Reescrito como referência pura de API; exemplos de código downstream removidos |
| 2.1.0 | 2026-01-18 | Atualizado para estrutura unificada de padrões no validation.json |
| 2.0.33 | 2026-01-17 | Documentação inicial de melhorias no pool de origem |