29.2. 検出可能サービスの条件
3scale が OpenShift (OCP) クラスターの API サービスを検出できるためには、その OCP は以下に示す各要素の条件を満たしている必要があります。
Content-Type ヘッダー
API 仕様の Content-Type ヘッダーの値は、以下のいずれかでなければなりません。
-
application/swagger+json -
application/vnd.oai.openapi+json -
application/json
OpenShift Service Object YAML 定義
OpenShift Service Object YAML 定義には、以下のメタデータが含まれている必要があります。
-
discovery.3scale.netラベル (必須):true に設定します。検出が必要なすべてのサービスを探すために 3scale がセレクター定義を実行する際に、このラベルが使用されます。 また、以下のアノテーションが含まれている必要があります。
discovery.3scale.net/discovery-version(オプション): 3scale の検出プロセスのバージョン。discovery.3scale.net/scheme(必須): サービスをホストする URL のスキーム部分。設定可能な値は http および https です。discovery.3scale.net/port(必須): クラスター内のサービスのポート番号。discovery.3scale.net/path(オプション): サービスをホストする URL の相対ベースパス。パスがルート (/) の場合には、このアノテーションを省略することができます。discovery.3scale.net/description-path: サービスの OpenAPI サービス記述ドキュメントへのパス。以下に例を示します。
metadata: annotations: discovery.3scale.net/scheme: "https" discovery.3scale.net/port: '8081' discovery.3scale.net/path: "/api" discovery.3scale.net/description-path: "/api/openapi/json" labels: discovery.3scale.net: "true" name: i-task-api namespace: fuse管理者権限を持つ OpenShift ユーザーであれば、OpenShift のコンソールで API サービスの YAML ファイルを表示することができます。
- Applications > Services の順に選択します。
-
サービスを選択し (例:
i-task-api)、その Details のページを表示します。 - Actions > Edit YAML の順に選択し、YAML ファイルを開きます。
- ファイルの表示を終えたら、Cancel を選択します。
-
ovs-networkpolicy プラグインを持つクラスター
-
OpenShift と 3scale プロジェクト間のトラフィックを許可する場合、
ovs-networkpolicyプラグインを持つクラスターには、アプリケーションプロジェクト内で作成された NetworkPolicy オブジェクトが必要です。 - NetworkPolicy オブジェクトの設定についての詳細は、Networking の ネットワークポリシー を参照してください。