- ホーム
- API Enriched
- Enhancements
- HTTP ロードバランサーの拡張機能
HTTP ロードバランサーの拡張機能
HTTP ロードバランサースキーマの拡充メタデータです。拡張定義については OpenAPI Extensions を参照してください。
拡充スキーマ
Section titled “拡充スキーマ”viewshttp_loadbalancer.*SpecType に一致するすべてのスキーマが拡充を受けます:
viewshttp_loadbalancerCreateSpecTypeviewshttp_loadbalancerReplaceSpecTypeviewshttp_loadbalancerGetSpecType
最小構成メタデータ
Section titled “最小構成メタデータ”x-f5xc-minimum-configuration 拡張は、最小限の実用的な HTTP ロードバランサーを作成するための包括的な CLI メタデータを提供します。
必須フィールド
Section titled “必須フィールド”| フィールド | 制約 | 説明 |
|---|---|---|
metadata.name | DNS ラベル形式:[a-z0-9]([-a-z0-9]*[a-z0-9])? | リソース名 |
metadata.namespace | DNS ラベル形式 | ネームスペース |
spec.domains | 配列、min_items: 1 | 提供するドメイン |
ロードバランサータイプ(OneOf 必須)
Section titled “ロードバランサータイプ(OneOf 必須)”以下のロードバランサータイプのいずれか 1 つを指定する必要があります:
| バリアント | 説明 |
|---|---|
spec.http | HTTP のみ |
spec.https | 手動証明書付き HTTPS |
spec.https_auto_cert | 自動証明書付き HTTPS |
spec.http_https | HTTP と HTTPS の両方 |
注意:ロードバランサータイプの OneOf グループは以下のように参照されます:
- 設定ファイルでは
lb_type(config/minimum_configs.yamlの短縮形) - OpenAPI 仕様のネイティブ拡張では
loadbalancer_type(ネイティブフィールド名)
API スキーマリファレンス:x-ves-oneof-field-loadbalancer_type: ["http", "https", "https_auto_cert", "http_https"]
最小実用構成
Section titled “最小実用構成”{ "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"}}] }}サーバー適用デフォルト値
Section titled “サーバー適用デフォルト値”x-f5xc-server-default: true とマークされたフィールドは、リクエストから省略された場合に F5 XC API サーバーによって default 値が適用されます。HTTP ロードバランサーには多数のサーバー適用デフォルト値があります。これは、ほとんどのセキュリティ機能とプロトコルオプションが無効または安全な状態をデフォルトとしているためです。
HTTPS 自動証明書のデフォルト値
Section titled “HTTPS 自動証明書のデフォルト値”https_auto_cert が指定された場合、省略されたフィールドに対してサーバーは以下のデフォルト値を適用します:
| フィールド | デフォルト値 | 型 | 説明 |
|---|---|---|---|
port | 443 | integer | HTTPS リスニングポート |
http_redirect | false | boolean | HTTP から HTTPS へのリダイレクト |
add_hsts | false | boolean | HTTP 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_timeout | 120000 | integer | 接続アイドルタイムアウト(ミリ秒、2 分) |
http_protocol_options.http_protocol_enable_v1_v2 | {} | object | HTTP/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_location | true | boolean | レスポンスにロケーションヘッダーを追加 |
system_default_timeouts | {} | object | システムデフォルトのタイムアウトを使用 |
service_policies_from_namespace | {} | object | ネームスペースからサービスポリシーを継承 |
default_sensitive_data_policy | {} | object | デフォルトの機密データポリシーを使用 |
相互排他的フィールドグループ
Section titled “相互排他的フィールドグループ”x-f5xc-conflicts-with とマークされたフィールドは OneOf パターンを示します。各グループから 1 つのフィールドのみ指定できます。
コア設定グループ
Section titled “コア設定グループ”| グループ名 | フィールド | 説明 |
|---|---|---|
lb_type | http、https、https_auto_cert、http_https | ロードバランサープロトコルタイプ |
advertising | advertise_on_public_default_vip、advertise_on_public、advertise_custom、do_not_advertise | ロードバランサーのアドバタイズ方法 |
load_balancing_algorithm | round_robin、least_request、ring_hash、random | トラフィック分散アルゴリズム |
HTTPS 設定グループ(10 グループ)
Section titled “HTTPS 設定グループ(10 グループ)”TLS 設定
Section titled “TLS 設定”| グループ名 | フィールド | 説明 |
|---|---|---|
tls_config | default_security、medium_security、low_security、custom_security | TLS セキュリティレベル |
mtls | no_mtls、use_mtls | 相互 TLS 有効または無効 |
プロトコルとヘッダー
Section titled “プロトコルとヘッダー”| グループ名 | フィールド | 説明 |
|---|---|---|
http_protocol | http_protocol_enable_v1_only、http_protocol_enable_v1_v2、http_protocol_enable_v2_only | HTTP プロトコルバージョン |
header_transformation | legacy_header_transformation、proper_header_transformation、preserve_case_header_transformation | HTTP ヘッダー変換タイプ |
server_name_header | default_header、append_server_name_header、pass_through_server_name_header | サーバー名ヘッダー処理 |
| グループ名 | フィールド | 説明 |
|---|---|---|
path_normalize | enable_path_normalize、disable_path_normalize | パス正規化の有効または無効 |
loadbalancer_choice | non_default_loadbalancer、default_loadbalancer | デフォルトまたは非デフォルトのロードバランサー |
coalescing | default_coalescing、disable_coalescing、enable_for_same_origin | HTTP/2 接続コアレッシングオプション |
セキュリティ機能グループ(11 グループ)
Section titled “セキュリティ機能グループ(11 グループ)”| グループ名 | フィールド | 説明 |
|---|---|---|
waf | disable_waf、enable_waf | Web アプリファイアウォール (WAF) |
bot_defense | disable_bot_defense、enable_bot_defense | Bot 検出と緩和 |
rate_limit | disable_rate_limit、enable_rate_limit | レート制限 |
api_discovery | disable_api_discovery、enable_api_discovery | API ディスカバリー |
api_testing | disable_api_testing、enable_api_testing | API テスト |
api_definition | disable_api_definition、enable_api_definition | API 定義 |
malware_protection | disable_malware_protection、enable_malware_protection | マルウェア対策 |
client_side_defense | disable_client_side_defense、enable_client_side_defense | クライアントサイド防御 |
ip_reputation | disable_ip_reputation、enable_ip_reputation | IP レピュテーション |
threat_mesh | disable_threat_mesh、enable_threat_mesh | スレットメッシュ |
malicious_user_detection | disable_malicious_user_detection、enable_malicious_user_detection | 悪意のあるユーザー検出 |
DDoS 対策グループ(4 グループ)
Section titled “DDoS 対策グループ(4 グループ)”| グループ名 | フィールド | 説明 |
|---|---|---|
ddos_mitigation | mitigation_block、mitigation_challenge、mitigation_none | DDoS 緩和アクション |
ddos_rps_threshold | default_rps_threshold、custom_rps_threshold | 1 秒あたりのリクエスト数しきい値 |
ddos_clientside_action | clientside_action_none、clientside_action_javascript、clientside_action_captcha | クライアントサイド DDoS 検証アクション |
ddos_policy | ddos_policy_none、ddos_policy_ref | DDoS ポリシー参照またはなし |
その他の設定グループ(6 グループ)
Section titled “その他の設定グループ(6 グループ)”| グループ名 | フィールド | 説明 |
|---|---|---|
challenge | no_challenge、js_challenge、captcha_challenge | Bot 検出のためのクライアントチャレンジタイプ |
user_identification | user_id_client_ip、user_identification | ユーザー識別方法 |
client_ip_headers | disable_trust_client_ip_headers、enable_trust_client_ip_headers | クライアント IP ヘッダーを信頼するかどうか |
timeouts | system_default_timeouts、custom_timeouts | システムデフォルトまたはカスタムタイムアウトを使用 |
service_policies_source | service_policies_from_namespace、active_service_policies | ネームスペースまたはアクティブリストからのサービスポリシー |
sensitive_data_policy | default_sensitive_data_policy、custom_sensitive_data_policy | デフォルトまたはカスタムの機密データポリシーを使用 |
OneOf バリアント推奨事項(将来の拡張)
Section titled “OneOf バリアント推奨事項(将来の拡張)”ステータス:http_loadbalancer スキーマにはまだ適用されていません。
最も一般的な OneOf グループの選択肢を示す x-f5xc-recommended-oneof-variant を含む healthcheck とは異なり、http_loadbalancer には現在この拡張が存在しません。
Healthcheck との比較
Section titled “Healthcheck との比較”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 にこの拡張を追加するには:
- F5 XC コンソールのデフォルト選択を確認する(例:UI でどの lb_type が事前選択されているか)
config/discovered_defaults.yamlに設定を追加する- 拡充パイプラインを再実行して拡張を適用する
追加時の想定される構造:
viewshttp_loadbalancerCreateSpecType: x-f5xc-recommended-oneof-variant: loadbalancer_type: "https_auto_cert" # 例 - 要確認この拡張により、ダウンストリームツールが設定オプションをユーザーに提示する際に、最もよく使用されるバリアントを事前選択できるようになります。
制約メタデータ
Section titled “制約メタデータ”x-f5xc-constraints とマークされたフィールドには、API 分析から検出された検証制約が含まれます。
| フィールド | minItems | maxItems | uniqueItems |
|---|---|---|---|
spec.domains | 1 | - | false |
spec.routes | 1 | 256 | false |
spec.blocked_clients | 1 | 128 | true |
spec.trusted_clients | 1 | 128 | true |
spec.data_guard_rules | 1 | 256 | true |
| フィールド | 最小値 | 最大値 | デフォルト | 説明 |
|---|---|---|---|---|
spec.https_auto_cert.port | 1 | 65535 | 443 | HTTPS ポート番号 |
spec.https_auto_cert.connection_idle_timeout | 1000 | 3600000 | 120000 | 接続アイドルタイムアウト(ミリ秒、1 秒〜1 時間) |
| フィールド | 値 | デフォルト | 説明 |
|---|---|---|---|
spec.https_auto_cert.tls_config | default_security、medium_security、low_security、custom_security | default_security | TLS セキュリティレベル |
spec.https_auto_cert.header_transformation_type | legacy_header_transformation、proper_header_transformation、preserve_case_header_transformation | legacy_header_transformation | HTTP ヘッダー変換 |
spec.https_auto_cert.http_protocol_options | http_protocol_enable_v1_only、http_protocol_enable_v1_v2、http_protocol_enable_v2_only | http_protocol_enable_v1_v2 | HTTP プロトコルバージョン |
spec.https_auto_cert.coalescing_options | default_coalescing、disable_coalescing、enable_for_same_origin | default_coalescing | HTTP/2 接続コアレッシング |
spec.load_balancing_algorithm | round_robin、least_request、ring_hash、random | round_robin | 負荷分散アルゴリズム |
spec.l7_ddos_protection.mitigation | mitigation_block、mitigation_challenge、mitigation_none | mitigation_block | レイヤー 7 DDoS 緩和アクション |
spec.l7_ddos_protection.rps_threshold | default_rps_threshold、custom_rps_threshold | default_rps_threshold | DDoS 検出の RPS しきい値 |
spec.l7_ddos_protection.clientside_action | clientside_action_none、clientside_action_javascript、clientside_action_captcha | clientside_action_none | クライアントサイド DDoS 検証 |
spec.challenge | no_challenge、js_challenge、captcha_challenge | no_challenge | クライアントチャレンジタイプ |
spec.advertising | advertise_on_public_default_vip、advertise_on_public、advertise_custom、do_not_advertise | advertise_on_public_default_vip | ロードバランサーのアドバタイズ |
ガイド付きワークフロー統合
Section titled “ガイド付きワークフロー統合”拡充パイプラインはスペックレベルで x-f5xc-guided-workflows メタデータを追加します。これらのワークフローは、AI アシスタントおよび CLI ツールが使用するステップバイステップのデプロイガイダンスを提供します。
HTTP ロードバランサーのデプロイ
Section titled “HTTP ロードバランサーのデプロイ”バックエンドオリジンプールを含む完全に設定された HTTP ロードバランサーを作成するための 5 ステップワークフロー(config/guided_workflows.yaml で定義):
| ステップ | アクション | リソース | 必須フィールド | オプション |
|---|---|---|---|---|
| 1 | オリジンプールの作成 | origin_pool | name、origin_servers、port | いいえ |
| 2 | ヘルスチェックの設定 | healthcheck | name、http_health_check | はい |
| 3 | ヘルスチェックのアタッチ | - | - | はい |
| 4 | HTTP ロードバランサーの作成 | http_loadbalancer | name、domains、http.port | いいえ |
| 5 | デプロイの確認 | - | - | いいえ |
前提条件:ターゲットテナントの有効なネームスペース、IP または DNS 経由でアクセス可能なバックエンドアプリケーション、SSL 証明書(HTTPS の場合はオプション)。
TLS を使用した HTTPS ロードバランサーのデプロイ
Section titled “TLS を使用した HTTPS ロードバランサーのデプロイ”SSL/TLS 終端を使用した HTTPS ロードバランサーを作成するための 7 ステップワークフロー:
| ステップ | アクション | リソース | 必須フィールド | オプション |
|---|---|---|---|---|
| 1 | SSL 証明書のアップロード | certificate | name、certificate_chain、private_key | いいえ |
| 2 | オリジンプールの作成 | origin_pool | name、origin_servers | いいえ |
| 3 | ヘルスチェックの設定 | healthcheck | - | はい |
| 4 | WAF ポリシーの設定 | app_firewall | - | はい |
| 5 | HTTPS ロードバランサーの作成 | http_loadbalancer | name、domains、https.tls_parameters | いいえ |
| 6 | WAF ポリシーのアタッチ | - | - | はい |
| 7 | HTTPS デプロイの確認 | - | - | いいえ |
前提条件:ターゲットテナントの有効なネームスペース、SSL 証明書と秘密鍵、アクセス可能なバックエンドアプリケーション。
ワークフローの利用
Section titled “ワークフローの利用”ダウンストリームツールはこれらのワークフローを使用して、マルチステップデプロイを通じてユーザーをガイドします:
- xcsh CLI:ワークフローをインタラクティブなガイドコマンドとして提示(例:
xcsh deploy http-lb) - VS Code 拡張機能:進捗追跡付きのサイドバーパネルにワークフローステップを表示
- AI アシスタント:ワークフローステップを順次実行し、各リソースを作成して依存関係を検証
OpenAPI 拡張リファレンス
Section titled “OpenAPI 拡張リファレンス”これらのベンダー拡張は、F5 XC 固有のメタデータを伝えるために標準の OpenAPI スキーマに追加されます。
x-f5xc-cli-domain
Section titled “x-f5xc-cli-domain”型:string
CLI およびツールの整理のためのドメイン分類を示します。
viewshttp_loadbalancerCreateSpecType: type: object x-f5xc-cli-domain: "virtual"x-f5xc-minimum-configuration
Section titled “x-f5xc-minimum-configuration”型: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: | ...x-f5xc-server-default
Section titled “x-f5xc-server-default”型:boolean
true の場合、付随する default 値が F5 XC API サーバーによって適用されることを示します。この拡張を持つフィールドは API リクエストから安全に省略できます — サーバーが自動的にデフォルト値を適用します。
disable_waf: type: object default: {} x-f5xc-server-default: truex-f5xc-conflicts-with
Section titled “x-f5xc-conflicts-with”型:array of strings
OneOf パターンを示すために、現在のフィールドと相互排他的なフィールド名をリストします。
advertise_custom: type: object x-f5xc-conflicts-with: - advertise_on_public - advertise_on_public_default_vip - do_not_advertisex-f5xc-constraints
Section titled “x-f5xc-constraints”型: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.99x-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"x-f5xc-example
Section titled “x-f5xc-example”型:any(フィールド型に一致)
ドキュメントとツール用の具体的なフィールド例を提供します。
name: type: string x-f5xc-example: "example-app"
domains: type: array x-f5xc-example: ["example.com", "www.example.com"]x-f5xc-required-for
Section titled “x-f5xc-required-for”型:array of strings
フラグを使用したコンテキスト固有の要件を示します: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"]データアクセス
Section titled “データアクセス”OpenAPI 仕様
Section titled “OpenAPI 仕様”| ファイル | 内容 |
|---|---|
docs/specifications/api/virtual.json | 拡充を含むすべての http_loadbalancer スキーマ |
docs/specifications/api/openapi.json | すべてのスキーマを含むマージ済み仕様 |
設定ファイル
Section titled “設定ファイル”| ファイル | 目的 |
|---|---|
config/minimum_configs.yaml | 最小構成メタデータのソース |
config/constraint_patterns.yaml | 制約パターン定義 |
config/guided_workflows.yaml | ガイド付きワークフローステップ定義 |
config/domain_descriptions.yaml | ドメインレベルの説明メタデータ |
拡充されたスキーマ
Section titled “拡充されたスキーマ”viewshttp_loadbalancerCreateSpecType- 作成操作スキーマviewshttp_loadbalancerReplaceSpecType- 更新操作スキーマviewshttp_loadbalancerGetSpecType- 読み取り操作スキーマ
関連ドキュメント
Section titled “関連ドキュメント”- 開発ガイド - OpenAPI Extensions - 拡張定義と使用方法
- Healthcheck の拡張機能 - Healthcheck スキーマの拡充(
x-f5xc-recommended-oneof-variantを含む) - オリジンプールの拡張機能 - オリジンプールスキーマの拡充
- 制約メタデータガイド - 詳細な制約検証ドキュメント
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 2.0.46 | 2026-04-18 | サーバー適用デフォルト値、ガイド付きワークフロー統合、および最小構成セクションの拡張を追加 |
| 2.0.45 | 2026-01-20 | http_loadbalancer 拡充ドキュメントの初版 |