クロスDC機能テスト

Keycloakアプリケーションの実際のクロスデータセンターセットアップにおけるKeycloakのクロスデータセンター機能を検証します。その一環として、現在keycloak-benchmark-crossdc-testsでホストされているテストスイートを作成しました。

CrossDCテストフレームワーク

現在のフレームワークは、以下のコンポーネントで構成されています。

テストスイートのルートディレクトリ

keycloak-benchmark/provision/rosa-cross-dc

テストランナー

JUnit5。

テストデータ

データセットプロバイダーを使用してください。

キャッシュメトリクス

ISPN Http REST clientを使用して、外部ISPNサーバーのキャッシュ統計にアクセスします。また、組み込みのInfinispanキャッシュについては、データセットプロバイダーに依存しています。

実行ターゲット

2つのKeycloakおよびInfinispanデータセンターのURLにアクセスできるCrossDCクラスター。

クロスDCクラスターを立ち上げるために、開発中に既存のROSA OCPクラスターベースのデプロイメントを使用します。

実行方法

テストを実行するには、テストスイートのルートディレクトリから以下のコマンドを実行します。

mvn clean install -DcrossDCTests \
  -Dmain.password=<PASSWORD> \(1)
  -Ddeployment.type=active-active|active-passive \(2)
  -Ddeployment.namespace=runner-keycloak \(3)
  -Dkubernetes.1.context=<CONTEXT_1> \(4)
  -Dkubernetes.2.context=<CONTEXT_1> (5)
1 Keycloakデプロイメントのメインパスワード
2 テスト対象のデプロイメントのタイプ。"active-active"または"active-passive"のいずれかです。省略した場合、デフォルトは"active-passive"です。
3 4および5で指定されたKubernetesクラスター内のKeycloakデプロイメントを含む名前空間。
4 クラスター1のKubeconfigコンテキスト
5 クラスター2のKubeconfigコンテキスト

または、ROSAスタイルのプロビジョニングセットアップを使用してMAIN_PASSWORDをオンザフライでフェッチする場合、run-crossdc-tests.sh(テストスイートのルートディレクトリにあります)ディレクトリを使用してテストを実行できます。

使用例

ACTIVE_ACTIVE=true|false \
DEPLOYMENT_NAMESPACE=runner-keycloak \
KUBERNETES_1_CONTEXT=<CONTEXT_1> \
KUBERNETES_2_CONTEXT=<CONTEXT_2> \
./run-crossdc-tests.sh