コンテンツにスキップ

HTTP ロードバランサーの拡張機能

HTTP ロードバランサースキーマの拡充メタデータです。拡張定義については OpenAPI Extensions を参照してください。

viewshttp_loadbalancer.*SpecType に一致するすべてのスキーマが拡充を受けます:

  • viewshttp_loadbalancerCreateSpecType
  • viewshttp_loadbalancerReplaceSpecType
  • viewshttp_loadbalancerGetSpecType

x-f5xc-minimum-configuration 拡張は、最小限の実用的な HTTP ロードバランサーを作成するための包括的な CLI メタデータを提供します。

フィールド制約説明
metadata.nameDNS ラベル形式:[a-z0-9]([-a-z0-9]*[a-z0-9])?リソース名
metadata.namespaceDNS ラベル形式ネームスペース
spec.domains配列、min_items: 1提供するドメイン

ロードバランサータイプ(OneOf 必須)

Section titled “ロードバランサータイプ(OneOf 必須)”

以下のロードバランサータイプのいずれか 1 つを指定する必要があります:

バリアント説明
spec.httpHTTP のみ
spec.https手動証明書付き HTTPS
spec.https_auto_cert自動証明書付き HTTPS
spec.http_httpsHTTP と HTTPS の両方

注意:ロードバランサータイプの OneOf グループは以下のように参照されます:

  • 設定ファイルでは lb_typeconfig/minimum_configs.yaml の短縮形)
  • OpenAPI 仕様のネイティブ拡張では loadbalancer_type(ネイティブフィールド名)

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"}}]
}
}

x-f5xc-server-default: true とマークされたフィールドは、リクエストから省略された場合に F5 XC API サーバーによって default 値が適用されます。HTTP ロードバランサーには多数のサーバー適用デフォルト値があります。これは、ほとんどのセキュリティ機能とプロトコルオプションが無効または安全な状態をデフォルトとしているためです。

HTTPS 自動証明書のデフォルト値

Section titled “HTTPS 自動証明書のデフォルト値”

https_auto_cert が指定された場合、省略されたフィールドに対してサーバーは以下のデフォルト値を適用します:

フィールドデフォルト値説明
port443integerHTTPS リスニングポート
http_redirectfalsebooleanHTTP から HTTPS へのリダイレクト
add_hstsfalsebooleanHTTP Strict Transport Security ヘッダー
tls_config.default_security{}object強力な暗号スイートを使用した TLS 1.2 以上
no_mtls{}object相互 TLS 無効
default_header{}objectデフォルトのサーバー名ヘッダー処理
enable_path_normalize{}objectパス正規化有効
default_loadbalancer{}objectデフォルトのロードバランサー設定
header_transformation_type.legacy_header_transformation{}objectレガシーヘッダー変換
connection_idle_timeout120000integer接続アイドルタイムアウト(ミリ秒、2 分)
http_protocol_options.http_protocol_enable_v1_v2{}objectHTTP/1.1 および HTTP/2 有効
coalescing_options.default_coalescing{}objectデフォルトの HTTP/2 接続コアレッシング

セキュリティ機能のデフォルト値

Section titled “セキュリティ機能のデフォルト値”

すべてのセキュリティ機能は、省略された場合にデフォルトで無効になります:

フィールドデフォルト値説明
disable_waf{}Web アプリファイアウォール (WAF) 無効
disable_bot_defense{}Bot 防御無効
disable_rate_limit{}レート制限無効
disable_api_discovery{}API ディスカバリー無効
disable_api_testing{}API テスト無効
disable_api_definition{}API 定義無効
disable_malware_protection{}マルウェア対策無効
disable_client_side_defense{}クライアントサイド防御無効
disable_ip_reputation{}IP レピュテーション無効
disable_threat_mesh{}スレットメッシュ無効
disable_malicious_user_detection{}悪意のあるユーザー検出無効

DDoS 対策とアクセス制御のデフォルト値

Section titled “DDoS 対策とアクセス制御のデフォルト値”
フィールドデフォルト値説明
l7_ddos_protection.mitigation_block{}DDoS トラフィックをブロック(デフォルトの緩和アクション)
l7_ddos_protection.default_rps_threshold{}デフォルトの RPS しきい値を使用
l7_ddos_protection.clientside_action_none{}クライアントサイド DDoS 検証なし
l7_ddos_protection.ddos_policy_none{}DDoS ポリシー参照なし
no_challenge{}クライアントチャレンジなし
user_id_client_ip{}クライアント IP によるユーザー識別
disable_trust_client_ip_headers{}クライアント IP ヘッダーを信頼しない

その他のサーバー適用デフォルト値

Section titled “その他のサーバー適用デフォルト値”
フィールドデフォルト値説明
advertise_on_public_default_vip{}objectパブリックデフォルト VIP でアドバタイズ
round_robin{}objectラウンドロビン負荷分散アルゴリズム
add_locationtruebooleanレスポンスにロケーションヘッダーを追加
system_default_timeouts{}objectシステムデフォルトのタイムアウトを使用
service_policies_from_namespace{}objectネームスペースからサービスポリシーを継承
default_sensitive_data_policy{}objectデフォルトの機密データポリシーを使用

相互排他的フィールドグループ

Section titled “相互排他的フィールドグループ”

x-f5xc-conflicts-with とマークされたフィールドは OneOf パターンを示します。各グループから 1 つのフィールドのみ指定できます。

グループ名フィールド説明
lb_typehttphttpshttps_auto_certhttp_httpsロードバランサープロトコルタイプ
advertisingadvertise_on_public_default_vipadvertise_on_publicadvertise_customdo_not_advertiseロードバランサーのアドバタイズ方法
load_balancing_algorithmround_robinleast_requestring_hashrandomトラフィック分散アルゴリズム

HTTPS 設定グループ(10 グループ)

Section titled “HTTPS 設定グループ(10 グループ)”
グループ名フィールド説明
tls_configdefault_securitymedium_securitylow_securitycustom_securityTLS セキュリティレベル
mtlsno_mtlsuse_mtls相互 TLS 有効または無効
グループ名フィールド説明
http_protocolhttp_protocol_enable_v1_onlyhttp_protocol_enable_v1_v2http_protocol_enable_v2_onlyHTTP プロトコルバージョン
header_transformationlegacy_header_transformationproper_header_transformationpreserve_case_header_transformationHTTP ヘッダー変換タイプ
server_name_headerdefault_headerappend_server_name_headerpass_through_server_name_headerサーバー名ヘッダー処理
グループ名フィールド説明
path_normalizeenable_path_normalizedisable_path_normalizeパス正規化の有効または無効
loadbalancer_choicenon_default_loadbalancerdefault_loadbalancerデフォルトまたは非デフォルトのロードバランサー
coalescingdefault_coalescingdisable_coalescingenable_for_same_originHTTP/2 接続コアレッシングオプション

セキュリティ機能グループ(11 グループ)

Section titled “セキュリティ機能グループ(11 グループ)”
グループ名フィールド説明
wafdisable_wafenable_wafWeb アプリファイアウォール (WAF)
bot_defensedisable_bot_defenseenable_bot_defenseBot 検出と緩和
rate_limitdisable_rate_limitenable_rate_limitレート制限
api_discoverydisable_api_discoveryenable_api_discoveryAPI ディスカバリー
api_testingdisable_api_testingenable_api_testingAPI テスト
api_definitiondisable_api_definitionenable_api_definitionAPI 定義
malware_protectiondisable_malware_protectionenable_malware_protectionマルウェア対策
client_side_defensedisable_client_side_defenseenable_client_side_defenseクライアントサイド防御
ip_reputationdisable_ip_reputationenable_ip_reputationIP レピュテーション
threat_meshdisable_threat_meshenable_threat_meshスレットメッシュ
malicious_user_detectiondisable_malicious_user_detectionenable_malicious_user_detection悪意のあるユーザー検出

DDoS 対策グループ(4 グループ)

Section titled “DDoS 対策グループ(4 グループ)”
グループ名フィールド説明
ddos_mitigationmitigation_blockmitigation_challengemitigation_noneDDoS 緩和アクション
ddos_rps_thresholddefault_rps_thresholdcustom_rps_threshold1 秒あたりのリクエスト数しきい値
ddos_clientside_actionclientside_action_noneclientside_action_javascriptclientside_action_captchaクライアントサイド DDoS 検証アクション
ddos_policyddos_policy_noneddos_policy_refDDoS ポリシー参照またはなし

その他の設定グループ(6 グループ)

Section titled “その他の設定グループ(6 グループ)”
グループ名フィールド説明
challengeno_challengejs_challengecaptcha_challengeBot 検出のためのクライアントチャレンジタイプ
user_identificationuser_id_client_ipuser_identificationユーザー識別方法
client_ip_headersdisable_trust_client_ip_headersenable_trust_client_ip_headersクライアント IP ヘッダーを信頼するかどうか
timeoutssystem_default_timeoutscustom_timeoutsシステムデフォルトまたはカスタムタイムアウトを使用
service_policies_sourceservice_policies_from_namespaceactive_service_policiesネームスペースまたはアクティブリストからのサービスポリシー
sensitive_data_policydefault_sensitive_data_policycustom_sensitive_data_policyデフォルトまたはカスタムの機密データポリシーを使用

OneOf バリアント推奨事項(将来の拡張)

Section titled “OneOf バリアント推奨事項(将来の拡張)”

ステータス:http_loadbalancer スキーマにはまだ適用されていません。

最も一般的な OneOf グループの選択肢を示す x-f5xc-recommended-oneof-variant を含む healthcheck とは異なり、http_loadbalancer には現在この拡張が存在しません。

Healthcheck(実装済み):

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

HTTP ロードバランサー(未実装):

viewshttp_loadbalancerCreateSpecType:
x-f5xc-recommended-oneof-variant: null # 推奨される lb_type バリアントを示す予定

http_loadbalancer にこの拡張を追加するには:

  1. F5 XC コンソールのデフォルト選択を確認する(例:UI でどの lb_type が事前選択されているか)
  2. config/discovered_defaults.yaml に設定を追加する
  3. 拡充パイプラインを再実行して拡張を適用する

追加時の想定される構造

viewshttp_loadbalancerCreateSpecType:
x-f5xc-recommended-oneof-variant:
loadbalancer_type: "https_auto_cert" # 例 - 要確認

この拡張により、ダウンストリームツールが設定オプションをユーザーに提示する際に、最もよく使用されるバリアントを事前選択できるようになります。

x-f5xc-constraints とマークされたフィールドには、API 分析から検出された検証制約が含まれます。

フィールドminItemsmaxItemsuniqueItems
spec.domains1-false
spec.routes1256false
spec.blocked_clients1128true
spec.trusted_clients1128true
spec.data_guard_rules1256true
フィールド最小値最大値デフォルト説明
spec.https_auto_cert.port165535443HTTPS ポート番号
spec.https_auto_cert.connection_idle_timeout10003600000120000接続アイドルタイムアウト(ミリ秒、1 秒〜1 時間)
フィールドデフォルト説明
spec.https_auto_cert.tls_configdefault_securitymedium_securitylow_securitycustom_securitydefault_securityTLS セキュリティレベル
spec.https_auto_cert.header_transformation_typelegacy_header_transformationproper_header_transformationpreserve_case_header_transformationlegacy_header_transformationHTTP ヘッダー変換
spec.https_auto_cert.http_protocol_optionshttp_protocol_enable_v1_onlyhttp_protocol_enable_v1_v2http_protocol_enable_v2_onlyhttp_protocol_enable_v1_v2HTTP プロトコルバージョン
spec.https_auto_cert.coalescing_optionsdefault_coalescingdisable_coalescingenable_for_same_origindefault_coalescingHTTP/2 接続コアレッシング
spec.load_balancing_algorithmround_robinleast_requestring_hashrandomround_robin負荷分散アルゴリズム
spec.l7_ddos_protection.mitigationmitigation_blockmitigation_challengemitigation_nonemitigation_blockレイヤー 7 DDoS 緩和アクション
spec.l7_ddos_protection.rps_thresholddefault_rps_thresholdcustom_rps_thresholddefault_rps_thresholdDDoS 検出の RPS しきい値
spec.l7_ddos_protection.clientside_actionclientside_action_noneclientside_action_javascriptclientside_action_captchaclientside_action_noneクライアントサイド DDoS 検証
spec.challengeno_challengejs_challengecaptcha_challengeno_challengeクライアントチャレンジタイプ
spec.advertisingadvertise_on_public_default_vipadvertise_on_publicadvertise_customdo_not_advertiseadvertise_on_public_default_vipロードバランサーのアドバタイズ

拡充パイプラインはスペックレベルで x-f5xc-guided-workflows メタデータを追加します。これらのワークフローは、AI アシスタントおよび CLI ツールが使用するステップバイステップのデプロイガイダンスを提供します。

HTTP ロードバランサーのデプロイ

Section titled “HTTP ロードバランサーのデプロイ”

バックエンドオリジンプールを含む完全に設定された HTTP ロードバランサーを作成するための 5 ステップワークフロー(config/guided_workflows.yaml で定義):

ステップアクションリソース必須フィールドオプション
1オリジンプールの作成origin_poolnameorigin_serversportいいえ
2ヘルスチェックの設定healthchecknamehttp_health_checkはい
3ヘルスチェックのアタッチ--はい
4HTTP ロードバランサーの作成http_loadbalancernamedomainshttp.portいいえ
5デプロイの確認--いいえ

前提条件:ターゲットテナントの有効なネームスペース、IP または DNS 経由でアクセス可能なバックエンドアプリケーション、SSL 証明書(HTTPS の場合はオプション)。

TLS を使用した HTTPS ロードバランサーのデプロイ

Section titled “TLS を使用した HTTPS ロードバランサーのデプロイ”

SSL/TLS 終端を使用した HTTPS ロードバランサーを作成するための 7 ステップワークフロー:

ステップアクションリソース必須フィールドオプション
1SSL 証明書のアップロードcertificatenamecertificate_chainprivate_keyいいえ
2オリジンプールの作成origin_poolnameorigin_serversいいえ
3ヘルスチェックの設定healthcheck-はい
4WAF ポリシーの設定app_firewall-はい
5HTTPS ロードバランサーの作成http_loadbalancernamedomainshttps.tls_parametersいいえ
6WAF ポリシーのアタッチ--はい
7HTTPS デプロイの確認--いいえ

前提条件:ターゲットテナントの有効なネームスペース、SSL 証明書と秘密鍵、アクセス可能なバックエンドアプリケーション。

ダウンストリームツールはこれらのワークフローを使用して、マルチステップデプロイを通じてユーザーをガイドします:

  • xcsh CLI:ワークフローをインタラクティブなガイドコマンドとして提示(例:xcsh deploy http-lb
  • VS Code 拡張機能:進捗追跡付きのサイドバーパネルにワークフローステップを表示
  • AI アシスタント:ワークフローステップを順次実行し、各リソースを作成して依存関係を検証

これらのベンダー拡張は、F5 XC 固有のメタデータを伝えるために標準の OpenAPI スキーマに追加されます。

string

CLI およびツールの整理のためのドメイン分類を示します。

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

object

最小限の実用的な設定を作成するための包括的なメタデータを提供します。以下を含みます:

  • 説明
  • 制約付きの必須フィールド
  • 相互排他的グループ
  • 設定例(YAML、JSON)
  • 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: |
...

boolean

true の場合、付随する default 値が F5 XC API サーバーによって適用されることを示します。この拡張を持つフィールドは API リクエストから安全に省略できます — サーバーが自動的にデフォルト値を適用します。

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

array of strings

OneOf パターンを示すために、現在のフィールドと相互排他的なフィールド名をリストします。

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

object

配列サイズ制限、整数範囲、一意性要件、および検出メタデータを含む検証制約を提供します。

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 および x-f5xc-description-medium

Section titled “x-f5xc-description-short および x-f5xc-description-medium”

string

異なるユースケース向けの代替説明の長さを提供します:

  • x-f5xc-description-short:最大 60 文字(CLI 列、バッジ)
  • x-f5xc-description-medium:最大 150 文字(ツールチップ、サマリー)
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"

any(フィールド型に一致)

ドキュメントとツール用の具体的なフィールド例を提供します。

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

array of strings

フラグを使用したコンテキスト固有の要件を示します:minimum_configcreateupdateread

metadata.name:
type: string
x-f5xc-required-for: ["minimum_config", "create"]
metadata.uid:
type: string
x-f5xc-required-for: ["read"]
ファイル内容
docs/specifications/api/virtual.json拡充を含むすべての http_loadbalancer スキーマ
docs/specifications/api/openapi.jsonすべてのスキーマを含むマージ済み仕様
ファイル目的
config/minimum_configs.yaml最小構成メタデータのソース
config/constraint_patterns.yaml制約パターン定義
config/guided_workflows.yamlガイド付きワークフローステップ定義
config/domain_descriptions.yamlドメインレベルの説明メタデータ
  • viewshttp_loadbalancerCreateSpecType - 作成操作スキーマ
  • viewshttp_loadbalancerReplaceSpecType - 更新操作スキーマ
  • viewshttp_loadbalancerGetSpecType - 読み取り操作スキーマ
バージョン日付変更内容
2.0.462026-04-18サーバー適用デフォルト値、ガイド付きワークフロー統合、および最小構成セクションの拡張を追加
2.0.452026-01-20http_loadbalancer 拡充ドキュメントの初版