Ir al contenido

Mejoras del balanceador de carga HTTP

Metadatos de enriquecimiento para esquemas de balanceador de carga HTTP. Consulte Extensiones OpenAPI para las definiciones de extensiones.

Todos los esquemas que coincidan con viewshttp_loadbalancer.*SpecType reciben enriquecimientos:

  • viewshttp_loadbalancerCreateSpecType
  • viewshttp_loadbalancerReplaceSpecType
  • viewshttp_loadbalancerGetSpecType

La extensión x-f5xc-minimum-configuration proporciona metadatos CLI completos para crear balanceadores de carga HTTP mínimamente viables.

CampoRestricciónDescripción
metadata.nameFormato de etiqueta DNS: [a-z0-9]([-a-z0-9]*[a-z0-9])?Nombre del recurso
metadata.namespaceFormato de etiqueta DNSEspacio de nombres
spec.domainsArray, min_items: 1Dominios a servir

Tipo de balanceador de carga (OneOf requerido)

Sección titulada «Tipo de balanceador de carga (OneOf requerido)»

Se debe especificar uno de los siguientes tipos de balanceador de carga:

VarianteDescripción
spec.httpSolo HTTP
spec.httpsHTTPS con certificado manual
spec.https_auto_certHTTPS con certificado automático
spec.http_httpsHTTP y HTTPS combinados

Nota: El grupo OneOf del tipo de balanceador de carga se denomina:

  • lb_type en los archivos de configuración (forma abreviada en config/minimum_configs.yaml)
  • loadbalancer_type en las extensiones nativas de la especificación OpenAPI (nombre de campo nativo)

Referencia del esquema API: x-ves-oneof-field-loadbalancer_type: ["http", "https", "https_auto_cert", "http_https"]

{
"metadata": {
"name": "example-app",
"namespace": "default"
},
"spec": {
"domains": ["example.com"],
"https_auto_cert": {
"port": 443,
"tls_config": {"default_security": {}}
},
"advertise_on_public_default_vip": {},
"routes": [{"prefix": "/", "origin_pool": {"pool_name": "backend-pool"}}]
}
}

Valores predeterminados aplicados por el servidor

Sección titulada «Valores predeterminados aplicados por el servidor»

Los campos marcados con x-f5xc-server-default: true tienen su valor default aplicado por el servidor API de F5 XC cuando se omiten de las solicitudes. El balanceador de carga HTTP tiene un gran número de valores predeterminados aplicados por el servidor porque la mayoría de las funciones de seguridad y opciones de protocolo tienen como valor predeterminado un estado deshabilitado o seguro.

Valores predeterminados de HTTPS con certificado automático

Sección titulada «Valores predeterminados de HTTPS con certificado automático»

Cuando se especifica https_auto_cert, el servidor aplica estos valores predeterminados para los campos omitidos:

CampoValor predeterminadoTipoDescripción
port443enteroPuerto de escucha HTTPS
http_redirectfalsebooleanoRedirección de HTTP a HTTPS
add_hstsfalsebooleanoEncabezado HTTP Strict Transport Security
tls_config.default_security{}objetoTLS 1.2+ con cifrados robustos
no_mtls{}objetoTLS mutuo deshabilitado
default_header{}objetoManejo predeterminado del encabezado de nombre de servidor
enable_path_normalize{}objetoNormalización de rutas habilitada
default_loadbalancer{}objetoConfiguración predeterminada del balanceador de carga
header_transformation_type.legacy_header_transformation{}objetoTransformación de encabezados heredada
connection_idle_timeout120000enteroTiempo de espera de conexión inactiva en milisegundos (2 minutos)
http_protocol_options.http_protocol_enable_v1_v2{}objetoHTTP/1.1 y HTTP/2 habilitados
coalescing_options.default_coalescing{}objetoCoalescencia de conexiones HTTP/2 predeterminada

Valores predeterminados de funciones de seguridad

Sección titulada «Valores predeterminados de funciones de seguridad»

Todas las funciones de seguridad están deshabilitadas de forma predeterminada cuando se omiten:

CampoValor predeterminadoDescripción
disable_waf{}Firewall de aplicaciones web (WAF) deshabilitado
disable_bot_defense{}Defensa contra bots deshabilitada
disable_rate_limit{}Limitación de velocidad deshabilitada
disable_api_discovery{}Descubrimiento de API deshabilitado
disable_api_testing{}Pruebas de API deshabilitadas
disable_api_definition{}Definición de API deshabilitada
disable_malware_protection{}Protección contra malware deshabilitada
disable_client_side_defense{}Defensa del lado del cliente deshabilitada
disable_ip_reputation{}Reputación de IP deshabilitada
disable_threat_mesh{}Malla de amenazas deshabilitada
disable_malicious_user_detection{}Detección de usuarios maliciosos deshabilitada

Valores predeterminados de Protección DDoS y control de acceso

Sección titulada «Valores predeterminados de Protección DDoS y control de acceso»
CampoValor predeterminadoDescripción
l7_ddos_protection.mitigation_block{}Bloquear tráfico DDoS (acción de mitigación predeterminada)
l7_ddos_protection.default_rps_threshold{}Usar umbral RPS predeterminado
l7_ddos_protection.clientside_action_none{}Sin validación DDoS del lado del cliente
l7_ddos_protection.ddos_policy_none{}Sin referencia de política DDoS
no_challenge{}Sin desafío al cliente
user_id_client_ip{}Identificar usuarios por IP del cliente
disable_trust_client_ip_headers{}No confiar en los encabezados de IP del cliente

Otros valores predeterminados aplicados por el servidor

Sección titulada «Otros valores predeterminados aplicados por el servidor»
CampoValor predeterminadoTipoDescripción
advertise_on_public_default_vip{}objetoAnunciar en VIP público predeterminado
round_robin{}objetoAlgoritmo de balanceo de carga round-robin
add_locationtruebooleanoAgregar encabezado de ubicación a las respuestas
system_default_timeouts{}objetoUsar tiempos de espera predeterminados del sistema
service_policies_from_namespace{}objetoHeredar políticas de servicio del espacio de nombres
default_sensitive_data_policy{}objetoUsar política de datos sensibles predeterminada

Los campos marcados con x-f5xc-conflicts-with indican patrones OneOf. Solo se puede especificar un campo de cada grupo.

Nombre del grupoCamposDescripción
lb_typehttp, https, https_auto_cert, http_httpsTipo de protocolo del balanceador de carga
advertisingadvertise_on_public_default_vip, advertise_on_public, advertise_custom, do_not_advertiseCómo anunciar el balanceador de carga
load_balancing_algorithmround_robin, least_request, ring_hash, randomAlgoritmo de distribución de tráfico
Nombre del grupoCamposDescripción
tls_configdefault_security, medium_security, low_security, custom_securityNivel de seguridad TLS
mtlsno_mtls, use_mtlsTLS mutuo habilitado o deshabilitado
Nombre del grupoCamposDescripción
http_protocolhttp_protocol_enable_v1_only, http_protocol_enable_v1_v2, http_protocol_enable_v2_onlyVersiones del protocolo HTTP
header_transformationlegacy_header_transformation, proper_header_transformation, preserve_case_header_transformationTipo de transformación de encabezados HTTP
server_name_headerdefault_header, append_server_name_header, pass_through_server_name_headerManejo del encabezado de nombre de servidor
Nombre del grupoCamposDescripción
path_normalizeenable_path_normalize, disable_path_normalizeNormalización de rutas habilitada o deshabilitada
loadbalancer_choicenon_default_loadbalancer, default_loadbalancerBalanceador de carga predeterminado o no predeterminado
coalescingdefault_coalescing, disable_coalescing, enable_for_same_originOpciones de coalescencia de conexiones HTTP/2

Grupos de funciones de seguridad (11 grupos)

Sección titulada «Grupos de funciones de seguridad (11 grupos)»
Nombre del grupoCamposDescripción
wafdisable_waf, enable_wafFirewall de aplicaciones web (WAF)
bot_defensedisable_bot_defense, enable_bot_defenseDetección y mitigación de bots
rate_limitdisable_rate_limit, enable_rate_limitLimitación de velocidad
api_discoverydisable_api_discovery, enable_api_discoveryDescubrimiento de API
api_testingdisable_api_testing, enable_api_testingPruebas de API
api_definitiondisable_api_definition, enable_api_definitionDefinición de API
malware_protectiondisable_malware_protection, enable_malware_protectionProtección contra malware
client_side_defensedisable_client_side_defense, enable_client_side_defenseDefensa del lado del cliente
ip_reputationdisable_ip_reputation, enable_ip_reputationReputación de IP
threat_meshdisable_threat_mesh, enable_threat_meshMalla de amenazas
malicious_user_detectiondisable_malicious_user_detection, enable_malicious_user_detectionDetección de usuarios maliciosos
Nombre del grupoCamposDescripción
ddos_mitigationmitigation_block, mitigation_challenge, mitigation_noneAcción de mitigación DDoS
ddos_rps_thresholddefault_rps_threshold, custom_rps_thresholdUmbral de solicitudes por segundo
ddos_clientside_actionclientside_action_none, clientside_action_javascript, clientside_action_captchaAcción de validación DDoS del lado del cliente
ddos_policyddos_policy_none, ddos_policy_refReferencia de política DDoS o ninguna
Nombre del grupoCamposDescripción
challengeno_challenge, js_challenge, captcha_challengeTipo de desafío al cliente para detección de bots
user_identificationuser_id_client_ip, user_identificationMétodo de identificación de usuarios
client_ip_headersdisable_trust_client_ip_headers, enable_trust_client_ip_headersConfiar o no en los encabezados de IP del cliente
timeoutssystem_default_timeouts, custom_timeoutsUsar tiempos de espera predeterminados del sistema o personalizados
service_policies_sourceservice_policies_from_namespace, active_service_policiesPolíticas de servicio del espacio de nombres o lista activa
sensitive_data_policydefault_sensitive_data_policy, custom_sensitive_data_policyUsar política de datos sensibles predeterminada o personalizada

Recomendaciones de variantes OneOf (Extensión futura)

Sección titulada «Recomendaciones de variantes OneOf (Extensión futura)»

Estado: Aún no aplicado a los esquemas de http_loadbalancer.

A diferencia del healthcheck, que incluye x-f5xc-recommended-oneof-variant para indicar la elección más común para los grupos OneOf, http_loadbalancer actualmente carece de esta extensión.

Healthcheck (implementado):

viewshealthcheckCreateSpecType:
x-f5xc-recommended-oneof-variant:
health_check: "http_health_check"

HTTP LoadBalancer (aún no implementado):

viewshttp_loadbalancerCreateSpecType:
x-f5xc-recommended-oneof-variant: null # Would indicate recommended lb_type variant

Para agregar esta extensión para http_loadbalancer:

  1. Observar las selecciones predeterminadas de la consola F5 XC (por ejemplo, qué lb_type está preseleccionado en la interfaz de usuario)
  2. Agregar configuración a config/discovered_defaults.yaml
  3. Volver a ejecutar el pipeline de enriquecimiento para aplicar la extensión

Estructura esperada cuando se agregue:

viewshttp_loadbalancerCreateSpecType:
x-f5xc-recommended-oneof-variant:
loadbalancer_type: "https_auto_cert" # Example - requires verification

Esta extensión permitiría a las herramientas downstream preseleccionar la variante más utilizada al presentar opciones de configuración a los usuarios.

Los campos marcados con x-f5xc-constraints incluyen restricciones de validación descubiertas a partir del análisis de la API.

CampominItemsmaxItemsuniqueItems
spec.domains1-false
spec.routes1256false
spec.blocked_clients1128true
spec.trusted_clients1128true
spec.data_guard_rules1256true
CampoMínimoMáximoPredeterminadoDescripción
spec.https_auto_cert.port165535443Número de puerto HTTPS
spec.https_auto_cert.connection_idle_timeout10003600000120000Tiempo de espera de conexión inactiva (milisegundos, de 1s a 1h)
CampoValoresPredeterminadoDescripción
spec.https_auto_cert.tls_configdefault_security, medium_security, low_security, custom_securitydefault_securityNivel de seguridad TLS
spec.https_auto_cert.header_transformation_typelegacy_header_transformation, proper_header_transformation, preserve_case_header_transformationlegacy_header_transformationTransformación de encabezados HTTP
spec.https_auto_cert.http_protocol_optionshttp_protocol_enable_v1_only, http_protocol_enable_v1_v2, http_protocol_enable_v2_onlyhttp_protocol_enable_v1_v2Versiones del protocolo HTTP
spec.https_auto_cert.coalescing_optionsdefault_coalescing, disable_coalescing, enable_for_same_origindefault_coalescingCoalescencia de conexiones HTTP/2
spec.load_balancing_algorithmround_robin, least_request, ring_hash, randomround_robinAlgoritmo de balanceo de carga
spec.l7_ddos_protection.mitigationmitigation_block, mitigation_challenge, mitigation_nonemitigation_blockAcción de mitigación DDoS de capa 7
spec.l7_ddos_protection.rps_thresholddefault_rps_threshold, custom_rps_thresholddefault_rps_thresholdUmbral RPS para la detección de DDoS
spec.l7_ddos_protection.clientside_actionclientside_action_none, clientside_action_javascript, clientside_action_captchaclientside_action_noneValidación DDoS del lado del cliente
spec.challengeno_challenge, js_challenge, captcha_challengeno_challengeTipo de desafío al cliente
spec.advertisingadvertise_on_public_default_vip, advertise_on_public, advertise_custom, do_not_advertiseadvertise_on_public_default_vipAnuncio del balanceador de carga

El pipeline de enriquecimiento agrega metadatos x-f5xc-guided-workflows a nivel de especificación. Estos flujos de trabajo proporcionan orientación de despliegue paso a paso consumida por asistentes de IA y herramientas CLI.

Un flujo de trabajo de 5 pasos para crear un balanceador de carga HTTP completamente configurado con pool de origen backend (definido en config/guided_workflows.yaml):

PasoAcciónRecursoCampos requeridosOpcional
1Crear pool de origenorigin_poolname, origin_servers, portNo
2Configurar verificación de estadohealthcheckname, http_health_check
3Adjuntar verificación de estado--
4Crear balanceador de carga HTTPhttp_loadbalancername, domains, http.portNo
5Verificar despliegue--No

Prerrequisitos: Espacio de nombres válido en el tenant de destino, aplicación backend accesible mediante IP o DNS, certificado SSL (opcional para HTTPS).

Desplegar balanceador de carga HTTPS con TLS

Sección titulada «Desplegar balanceador de carga HTTPS con TLS»

Un flujo de trabajo de 7 pasos para crear un balanceador de carga HTTPS con terminación SSL/TLS:

PasoAcciónRecursoCampos requeridosOpcional
1Cargar certificado SSLcertificatename, certificate_chain, private_keyNo
2Crear pool de origenorigin_poolname, origin_serversNo
3Configurar verificación de estadohealthcheck-
4Configurar política WAFapp_firewall-
5Crear balanceador de carga HTTPShttp_loadbalancername, domains, https.tls_parametersNo
6Adjuntar política WAF--
7Verificar despliegue HTTPS--No

Prerrequisitos: Espacio de nombres válido en el tenant de destino, certificado SSL y clave privada, aplicación backend accesible.

Las herramientas downstream utilizan estos flujos de trabajo para guiar a los usuarios a través de despliegues de múltiples pasos:

  • xcsh CLI: Presenta los flujos de trabajo como comandos guiados interactivos (por ejemplo, xcsh deploy http-lb)
  • VS Code Extensión: Muestra los pasos del flujo de trabajo en un panel lateral con seguimiento del progreso
  • Asistentes de IA: Siguen los pasos del flujo de trabajo secuencialmente, creando cada recurso y validando dependencias

Estas extensiones de proveedor se agregan al esquema OpenAPI estándar para transmitir metadatos específicos de F5 XC.

Tipo: string

Indica la clasificación de dominio para la organización de CLI y herramientas.

viewshttp_loadbalancerCreateSpecType:
type: object
x-f5xc-cli-domain: "virtual"

Tipo: object

Proporciona metadatos completos para crear configuraciones mínimas viables. Incluye:

  • Descripción
  • Campos requeridos con restricciones
  • Grupos mutuamente exclusivos
  • Configuraciones de ejemplo (YAML, JSON)
  • Ejemplos de comandos curl
viewshttp_loadbalancerCreateSpecType:
type: object
x-f5xc-minimum-configuration:
description: "HTTP/HTTPS load balancer for distributing traffic across origin pools"
required_fields:
- "metadata.name"
- "metadata.namespace"
- "spec.domains"
mutually_exclusive_groups:
- name: "lb_type"
fields: ["spec.http", "spec.https", "spec.https_auto_cert", "spec.http_https"]
reason: "Choose exactly one load balancer type"
example_yaml: |
...
example_json: |
...
example_curl: |
...

Tipo: boolean

Cuando es true, indica que el valor default que lo acompaña es aplicado por el servidor API de F5 XC. Los campos con esta extensión pueden omitirse de forma segura en las solicitudes de la API — el servidor aplica el valor predeterminado automáticamente.

disable_waf:
type: object
default: {}
x-f5xc-server-default: true

Tipo: array of strings

Lista los nombres de campos que son mutuamente exclusivos con el campo actual, indicando patrones OneOf.

advertise_custom:
type: object
x-f5xc-conflicts-with:
- advertise_on_public
- advertise_on_public_default_vip
- do_not_advertise

Tipo: object

Proporciona restricciones de validación que incluyen límites de tamaño de arrays, rangos de enteros, requisitos de unicidad y metadatos de descubrimiento.

routes:
type: array
x-f5xc-constraints:
constraintType: "array"
minItems: 1
maxItems: 256
uniqueItems: false
metadata:
source: "discovery"
confidence: 0.99
validatedAt: "2026-01-19T12:00:00Z"
port:
type: integer
x-f5xc-constraints:
constraintType: "number"
minimum: 1
maximum: 65535
metadata:
source: "discovery"
confidence: 0.99

x-f5xc-description-short y x-f5xc-description-medium

Sección titulada «x-f5xc-description-short y x-f5xc-description-medium»

Tipo: string

Proporciona longitudes de descripción alternativas para diferentes casos de uso:

  • x-f5xc-description-short: máximo 60 caracteres (columnas CLI, insignias)
  • x-f5xc-description-medium: máximo 150 caracteres (tooltips, resúmenes)
domains:
type: array
description: "List of domains the load balancer will serve"
x-f5xc-description-short: "Domains to serve"
x-f5xc-description-medium: "List of domains for which the load balancer accepts traffic"

Tipo: any (coincide con el tipo de campo)

Proporciona ejemplos concretos de campos para documentación y herramientas.

name:
type: string
x-f5xc-example: "example-app"
domains:
type: array
x-f5xc-example: ["example.com", "www.example.com"]

Tipo: array of strings

Indica requisitos específicos del contexto utilizando indicadores: minimum_config, create, update, read.

metadata.name:
type: string
x-f5xc-required-for: ["minimum_config", "create"]
metadata.uid:
type: string
x-f5xc-required-for: ["read"]
ArchivoContenido
docs/specifications/api/virtual.jsonTodos los esquemas http_loadbalancer con enriquecimientos
docs/specifications/api/openapi.jsonEspecificación combinada con todos los esquemas
ArchivoPropósito
config/minimum_configs.yamlFuente de metadatos de configuración mínima
config/constraint_patterns.yamlDefiniciones de patrones de restricciones
config/guided_workflows.yamlDefiniciones de pasos de flujos de trabajo guiados
config/domain_descriptions.yamlMetadatos de descripción a nivel de dominio
  • viewshttp_loadbalancerCreateSpecType - Esquema de operación de creación
  • viewshttp_loadbalancerReplaceSpecType - Esquema de operación de actualización
  • viewshttp_loadbalancerGetSpecType - Esquema de operación de lectura
VersiónFechaCambios
2.0.462026-04-18Se agregaron valores predeterminados aplicados por el servidor, integración de flujos de trabajo guiados y sección de configuración mínima ampliada
2.0.452026-01-20Documentación inicial de enriquecimientos de http_loadbalancer