Zum Inhalt springen

HTTP LoadBalancer Erweiterungen

Anreicherungsmetadaten für HTTP-Load-Balancer-Schemata. Siehe OpenAPI-Erweiterungen für Erweiterungsdefinitionen.

Alle Schemata, die viewshttp_loadbalancer.*SpecType entsprechen, erhalten Anreicherungen:

  • viewshttp_loadbalancerCreateSpecType
  • viewshttp_loadbalancerReplaceSpecType
  • viewshttp_loadbalancerGetSpecType

Die Erweiterung x-f5xc-minimum-configuration stellt umfassende CLI-Metadaten für die Erstellung minimaler funktionsfähiger HTTP-Load-Balancer bereit.

FeldEinschränkungBeschreibung
metadata.nameDNS-Label-Format: [a-z0-9]([-a-z0-9]*[a-z0-9])?Ressourcenname
metadata.namespaceDNS-Label-FormatNamespace
spec.domainsArray, min_items: 1Zu bedienende Domains

Einer der folgenden Load-Balancer-Typen muss angegeben werden:

VarianteBeschreibung
spec.httpNur HTTP
spec.httpsHTTPS mit manuellem Zertifikat
spec.https_auto_certHTTPS mit automatischem Zertifikat
spec.http_httpsSowohl HTTP als auch HTTPS

Hinweis: Die OneOf-Gruppe für den Load-Balancer-Typ wird wie folgt bezeichnet:

  • lb_type in Konfigurationsdateien (Kurzform in config/minimum_configs.yaml)
  • loadbalancer_type in nativen OpenAPI-Spec-Erweiterungen (nativer Feldname)

API-Schema-Referenz: 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"}}]
}
}

Felder, die mit x-f5xc-server-default: true markiert sind, haben ihren default-Wert, der vom F5 XC API-Server angewendet wird, wenn er in Anfragen weggelassen wird. HTTP-Load-Balancer verfügt über eine große Anzahl serverseitig angewendeter Standardwerte, da die meisten Sicherheitsfunktionen und Protokolloptionen standardmäßig deaktiviert oder in einem sicheren Zustand sind.

Wenn https_auto_cert angegeben ist, wendet der Server diese Standardwerte für weggelassene Felder an:

FeldStandardwertTypBeschreibung
port443integerHTTPS-Listening-Port
http_redirectfalsebooleanHTTP-zu-HTTPS-Weiterleitung
add_hstsfalsebooleanHTTP Strict Transport Security-Header
tls_config.default_security{}objectTLS 1.2+ mit starken Verschlüsselungsverfahren
no_mtls{}objectMutual TLS deaktiviert
default_header{}objectStandard-Servername-Header-Behandlung
enable_path_normalize{}objectPfadnormalisierung aktiviert
default_loadbalancer{}objectStandard-Load-Balancer-Einstellungen
header_transformation_type.legacy_header_transformation{}objectLegacy-Header-Transformation
connection_idle_timeout120000integerVerbindungs-Leerlauf-Timeout in Millisekunden (2 Minuten)
http_protocol_options.http_protocol_enable_v1_v2{}objectHTTP/1.1 und HTTP/2 aktiviert
coalescing_options.default_coalescing{}objectStandard-HTTP/2-Verbindungskoaleszenz

Alle Sicherheitsfunktionen sind standardmäßig deaktiviert, wenn sie weggelassen werden:

FeldStandardwertBeschreibung
disable_waf{}Web-App-Firewall (WAF) deaktiviert
disable_bot_defense{}Bot-Abwehr deaktiviert
disable_rate_limit{}Ratenbegrenzung deaktiviert
disable_api_discovery{}API-Erkennung deaktiviert
disable_api_testing{}API-Tests deaktiviert
disable_api_definition{}API-Definition deaktiviert
disable_malware_protection{}Malware-Schutz deaktiviert
disable_client_side_defense{}Clientseitige Abwehr deaktiviert
disable_ip_reputation{}IP-Reputation deaktiviert
disable_threat_mesh{}Bedrohungsnetz deaktiviert
disable_malicious_user_detection{}Erkennung bösartiger Benutzer deaktiviert
FeldStandardwertBeschreibung
l7_ddos_protection.mitigation_block{}DDoS-Datenverkehr blockieren (Standard-Minderungsmaßnahme)
l7_ddos_protection.default_rps_threshold{}Standard-RPS-Schwellenwert verwenden
l7_ddos_protection.clientside_action_none{}Keine clientseitige DDoS-Validierung
l7_ddos_protection.ddos_policy_none{}Kein DDoS-Richtlinienverweis
no_challenge{}Keine Client-Herausforderung
user_id_client_ip{}Benutzer anhand der Client-IP identifizieren
disable_trust_client_ip_headers{}Client-IP-Headern nicht vertrauen
FeldStandardwertTypBeschreibung
advertise_on_public_default_vip{}objectAuf öffentlicher Standard-VIP bekanntmachen
round_robin{}objectRound-Robin-Lastverteilungsalgorithmus
add_locationtruebooleanLocation-Header zu Antworten hinzufügen
system_default_timeouts{}objectSystemstandard-Timeouts verwenden
service_policies_from_namespace{}objectDienstrichtlinien vom Namespace übernehmen
default_sensitive_data_policy{}objectStandard-Richtlinie für sensible Daten verwenden

Felder, die mit x-f5xc-conflicts-with markiert sind, weisen auf OneOf-Muster hin. Aus jeder Gruppe kann nur ein Feld angegeben werden.

GruppennameFelderBeschreibung
lb_typehttp, https, https_auto_cert, http_httpsLoad-Balancer-Protokolltyp
advertisingadvertise_on_public_default_vip, advertise_on_public, advertise_custom, do_not_advertiseArt der Load-Balancer-Bekanntmachung
load_balancing_algorithmround_robin, least_request, ring_hash, randomDatenverkehrsverteilungsalgorithmus
GruppennameFelderBeschreibung
tls_configdefault_security, medium_security, low_security, custom_securityTLS-Sicherheitsstufe
mtlsno_mtls, use_mtlsMutual TLS aktiviert oder deaktiviert
GruppennameFelderBeschreibung
http_protocolhttp_protocol_enable_v1_only, http_protocol_enable_v1_v2, http_protocol_enable_v2_onlyHTTP-Protokollversionen
header_transformationlegacy_header_transformation, proper_header_transformation, preserve_case_header_transformationHTTP-Header-Transformationstyp
server_name_headerdefault_header, append_server_name_header, pass_through_server_name_headerServername-Header-Behandlung
GruppennameFelderBeschreibung
path_normalizeenable_path_normalize, disable_path_normalizePfadnormalisierung aktiviert oder deaktiviert
loadbalancer_choicenon_default_loadbalancer, default_loadbalancerStandard- oder Nicht-Standard-Load-Balancer
coalescingdefault_coalescing, disable_coalescing, enable_for_same_originHTTP/2-Verbindungskoaleszenz-Optionen
GruppennameFelderBeschreibung
wafdisable_waf, enable_wafWeb-App-Firewall (WAF)
bot_defensedisable_bot_defense, enable_bot_defenseBot-Erkennung und -Minderung
rate_limitdisable_rate_limit, enable_rate_limitRatenbegrenzung
api_discoverydisable_api_discovery, enable_api_discoveryAPI-Erkennung
api_testingdisable_api_testing, enable_api_testingAPI-Tests
api_definitiondisable_api_definition, enable_api_definitionAPI-Definition
malware_protectiondisable_malware_protection, enable_malware_protectionMalware-Schutz
client_side_defensedisable_client_side_defense, enable_client_side_defenseClientseitige Abwehr
ip_reputationdisable_ip_reputation, enable_ip_reputationIP-Reputation
threat_meshdisable_threat_mesh, enable_threat_meshBedrohungsnetz
malicious_user_detectiondisable_malicious_user_detection, enable_malicious_user_detectionErkennung bösartiger Benutzer
GruppennameFelderBeschreibung
ddos_mitigationmitigation_block, mitigation_challenge, mitigation_noneDDoS-Minderungsmaßnahme
ddos_rps_thresholddefault_rps_threshold, custom_rps_thresholdAnfragen-pro-Sekunde-Schwellenwert
ddos_clientside_actionclientside_action_none, clientside_action_javascript, clientside_action_captchaClientseitige DDoS-Validierungsmaßnahme
ddos_policyddos_policy_none, ddos_policy_refDDoS-Richtlinienverweis oder keiner
GruppennameFelderBeschreibung
challengeno_challenge, js_challenge, captcha_challengeClient-Herausforderungstyp zur Bot-Erkennung
user_identificationuser_id_client_ip, user_identificationBenutzeridentifikationsmethode
client_ip_headersdisable_trust_client_ip_headers, enable_trust_client_ip_headersClient-IP-Headern vertrauen oder nicht
timeoutssystem_default_timeouts, custom_timeoutsSystemstandard- oder benutzerdefinierte Timeouts verwenden
service_policies_sourceservice_policies_from_namespace, active_service_policiesDienstrichtlinien aus Namespace oder aktiver Liste
sensitive_data_policydefault_sensitive_data_policy, custom_sensitive_data_policyStandard- oder benutzerdefinierte Richtlinie für sensible Daten verwenden

OneOf-Variantenempfehlungen (Zukünftige Erweiterung)

Abschnitt betitelt „OneOf-Variantenempfehlungen (Zukünftige Erweiterung)“

Status: Noch nicht auf http_loadbalancer-Schemata angewendet.

Im Gegensatz zu healthcheck, das x-f5xc-recommended-oneof-variant enthält, um die häufigste Auswahl für OneOf-Gruppen anzugeben, fehlt http_loadbalancer derzeit diese Erweiterung.

Healthcheck (implementiert):

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

HTTP LoadBalancer (noch nicht implementiert):

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

Um diese Erweiterung für http_loadbalancer hinzuzufügen:

  1. Standardauswahl der F5 XC Konsole beobachten (z. B. welcher lb_type in der Benutzeroberfläche vorausgewählt ist)
  2. Konfiguration zu config/discovered_defaults.yaml hinzufügen
  3. Anreicherungspipeline erneut ausführen, um die Erweiterung anzuwenden

Erwartete Struktur nach dem Hinzufügen:

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

Diese Erweiterung würde nachgelagerten Werkzeugen ermöglichen, die am häufigsten verwendete Variante vorzuwählen, wenn Konfigurationsoptionen für Benutzer präsentiert werden.

Felder, die mit x-f5xc-constraints markiert sind, enthalten Validierungseinschränkungen, die aus der API-Analyse ermittelt wurden.

FeldminItemsmaxItemsuniqueItems
spec.domains1-false
spec.routes1256false
spec.blocked_clients1128true
spec.trusted_clients1128true
spec.data_guard_rules1256true
FeldMinimumMaximumStandardBeschreibung
spec.https_auto_cert.port165535443HTTPS-Portnummer
spec.https_auto_cert.connection_idle_timeout10003600000120000Verbindungs-Leerlauf-Timeout (Millisekunden, 1s bis 1h)
FeldWerteStandardBeschreibung
spec.https_auto_cert.tls_configdefault_security, medium_security, low_security, custom_securitydefault_securityTLS-Sicherheitsstufe
spec.https_auto_cert.header_transformation_typelegacy_header_transformation, proper_header_transformation, preserve_case_header_transformationlegacy_header_transformationHTTP-Header-Transformation
spec.https_auto_cert.http_protocol_optionshttp_protocol_enable_v1_only, http_protocol_enable_v1_v2, http_protocol_enable_v2_onlyhttp_protocol_enable_v1_v2HTTP-Protokollversionen
spec.https_auto_cert.coalescing_optionsdefault_coalescing, disable_coalescing, enable_for_same_origindefault_coalescingHTTP/2-Verbindungskoaleszenz
spec.load_balancing_algorithmround_robin, least_request, ring_hash, randomround_robinLastverteilungsalgorithmus
spec.l7_ddos_protection.mitigationmitigation_block, mitigation_challenge, mitigation_nonemitigation_blockLayer-7-DDoS-Minderungsmaßnahme
spec.l7_ddos_protection.rps_thresholddefault_rps_threshold, custom_rps_thresholddefault_rps_thresholdRPS-Schwellenwert für DDoS-Erkennung
spec.l7_ddos_protection.clientside_actionclientside_action_none, clientside_action_javascript, clientside_action_captchaclientside_action_noneClientseitige DDoS-Validierung
spec.challengeno_challenge, js_challenge, captcha_challengeno_challengeClient-Herausforderungstyp
spec.advertisingadvertise_on_public_default_vip, advertise_on_public, advertise_custom, do_not_advertiseadvertise_on_public_default_vipLoad-Balancer-Bekanntmachung

Die Anreicherungspipeline fügt x-f5xc-guided-workflows-Metadaten auf Spec-Ebene hinzu. Diese Workflows bieten schrittweise Bereitstellungsanleitungen, die von KI-Assistenten und CLI-Werkzeugen genutzt werden.

Ein 5-stufiger Workflow zum Erstellen eines vollständig konfigurierten HTTP-Load-Balancers mit Backend-Ursprungsserver-Pool (definiert in config/guided_workflows.yaml):

SchrittAktionRessourcePflichtfelderOptional
1Ursprungsserver-Pool erstellenorigin_poolname, origin_servers, portNein
2Health Check konfigurierenhealthcheckname, http_health_checkJa
3Health Check anhängen--Ja
4HTTP-Load-Balancer erstellenhttp_loadbalancername, domains, http.portNein
5Bereitstellung überprüfen--Nein

Voraussetzungen: Gültiger Namespace im Ziel-Tenant, Backend-Anwendung über IP oder DNS erreichbar, SSL-Zertifikat (optional für HTTPS).

Ein 7-stufiger Workflow zum Erstellen eines HTTPS-Load-Balancers mit SSL/TLS-Terminierung:

SchrittAktionRessourcePflichtfelderOptional
1SSL-Zertifikat hochladencertificatename, certificate_chain, private_keyNein
2Ursprungsserver-Pool erstellenorigin_poolname, origin_serversNein
3Health Check konfigurierenhealthcheck-Ja
4WAF-Richtlinie konfigurierenapp_firewall-Ja
5HTTPS-Load-Balancer erstellenhttp_loadbalancername, domains, https.tls_parametersNein
6WAF-Richtlinie anhängen--Ja
7HTTPS-Bereitstellung überprüfen--Nein

Voraussetzungen: Gültiger Namespace im Ziel-Tenant, SSL-Zertifikat und privater Schlüssel, Backend-Anwendung erreichbar.

Nachgelagerte Werkzeuge nutzen diese Workflows, um Benutzer durch mehrstufige Bereitstellungen zu führen:

  • xcsh CLI: Präsentiert Workflows als interaktive geführte Befehle (z. B. xcsh deploy http-lb)
  • VS Code Erweiterung: Zeigt Workflow-Schritte in einem Seitenleistenpanel mit Fortschrittsverfolgung an
  • KI-Assistenten: Folgen Workflow-Schritten sequenziell, erstellen jede Ressource und validieren Abhängigkeiten

Diese Vendor-Erweiterungen werden zum Standard-OpenAPI-Schema hinzugefügt, um F5 XC-spezifische Metadaten zu übermitteln.

Typ: string

Gibt die Domänenklassifikation für CLI- und Werkzeugorganisation an.

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

Typ: object

Stellt umfassende Metadaten für die Erstellung minimaler funktionsfähiger Konfigurationen bereit. Enthält:

  • Beschreibung
  • Pflichtfelder mit Einschränkungen
  • Sich gegenseitig ausschließende Gruppen
  • Beispielkonfigurationen (YAML, JSON)
  • curl-Befehlsbeispiele
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: |
...

Typ: boolean

Wenn true, gibt an, dass der begleitende default-Wert vom F5 XC API-Server erzwungen wird. Felder mit dieser Erweiterung können sicher aus API-Anfragen weggelassen werden — der Server wendet den Standardwert automatisch an.

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

Typ: array of strings

Listet Feldnamen auf, die sich gegenseitig mit dem aktuellen Feld ausschließen und OneOf-Muster anzeigen.

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

Typ: object

Stellt Validierungseinschränkungen bereit, einschließlich Array-Größenlimits, Integer-Bereiche, Eindeutigkeitsanforderungen und Erkennungsmetadaten.

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 und x-f5xc-description-medium

Abschnitt betitelt „x-f5xc-description-short und x-f5xc-description-medium“

Typ: string

Stellt alternative Beschreibungslängen für verschiedene Anwendungsfälle bereit:

  • x-f5xc-description-short: Maximal 60 Zeichen (CLI-Spalten, Badges)
  • x-f5xc-description-medium: Maximal 150 Zeichen (Tooltips, Zusammenfassungen)
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"

Typ: any (entspricht dem Feldtyp)

Stellt konkrete Feldbeispiele für Dokumentation und Werkzeuge bereit.

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

Typ: array of strings

Gibt kontextspezifische Anforderungen mithilfe von Flags an: 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"]
DateiInhalt
docs/specifications/api/virtual.jsonAlle http_loadbalancer-Schemata mit Anreicherungen
docs/specifications/api/openapi.jsonZusammengeführte Spezifikation mit allen Schemata
DateiZweck
config/minimum_configs.yamlQuelle der Mindestkonfigurationsmetadaten
config/constraint_patterns.yamlEinschränkungsmusterdefinitionen
config/guided_workflows.yamlSchrittdefinitionen für geführte Workflows
config/domain_descriptions.yamlDomänenebene-Beschreibungsmetadaten
  • viewshttp_loadbalancerCreateSpecType - Schema für Erstellungsoperationen
  • viewshttp_loadbalancerReplaceSpecType - Schema für Aktualisierungsoperationen
  • viewshttp_loadbalancerGetSpecType - Schema für Leseoperationen
VersionDatumÄnderungen
2.0.462026-04-18Serverseitig angewendete Standardwerte, Integration des geführten Workflows und erweiterter Abschnitt zur Mindestkonfiguration hinzugefügt
2.0.452026-01-20Erste Dokumentation der http_loadbalancer-Anreicherungen