23.2. 更新された設定に対する更新ストラテジーの決定
ローリング更新が可能かどうかを確認するには、更新互換性コマンドを実行します。
- 古い設定で必要なメタデータを生成します。
- 新しい設定でメタデータをチェックして、更新ストラテジーを決定します。
このコマンドは現在、限定された機能のみを提供します。現時点では、ローリング更新が可能かどうかを判断するために、Red Hat build of Keycloak のバージョンと、組み込まれた Infinispan のみが考慮されます。上記に変更がなければ、ローリング更新が可能であることが報告されます。
現在のバージョンでは、設定の変更はまだ検証されておらず、すべての設定変更がローリング更新の対象となると想定されています。カスタム拡張機能やテーマの変更にも同様に適用されます。
これを使用する代表的なユースケースとしては、Red Hat build of Keycloak のテーマやカスタム拡張機能を変更する際にローリングアップデートを行う場合や、Red Hat build of Keycloak のバージョン自体が変更されており、まだローリングアップデートが許可されていない場合にのみ、再作成アップデートを実行するように場合などです。
これらのコマンドを使用する場合は、現在存在する制限事項を認識している必要がありますが、メタデータファイルの内部動作や構造に依存しないようにしてください。今後の内部ロジックの改善によるメリットを得るためにも、ローリングアップデートの可否判断には、check
コマンドの終了コードのみをもとに判断するようにしてください。
23.2.1. メタデータの生成 リンクのコピーリンクがクリップボードにコピーされました!
メタデータを生成するには、同じ Red Hat build of Keycloak バージョンと設定オプションを使用して、次のコマンドを実行します。
現在のデプロイメントからメタデータを生成して保存します。
bin/kc.[sh|bat] update-compatibility metadata --file=/path/to/file.json
bin/kc.[sh|bat] update-compatibility metadata --file=/path/to/file.json
このコマンドは、start
コマンドで使用されるオプションをすべて使用できます。このコマンドは、デバッグの目的で、JSON 形式でメタデータをコンソールに表示します。--file
パラメーターを使用すると、メタデータをファイルに保存できます。このファイルを後続の check
コマンドで使用します。
上記のコマンドを実行する際は、環境変数か CLI 引数かに関係なく、すべての設定オプションが含まれていることを確認してください。
設定オプションを省略すると、メタデータが不完全になり、次のステップで間違った結果が報告される可能性があります。
23.2.2. メタデータの確認 リンクのコピーリンクがクリップボードにコピーされました!
このコマンドは、前のコマンドによって生成されたメタデータをチェックして、現在の設定と Red Hat build of Keycloak と比較します。新しい Red Hat build of Keycloak バージョンにアップグレードする場合は、このコマンドを新しいバージョンで実行する必要があります。
以前のデプロイメントからのメタデータを確認します。
bin/kc.[sh|bat] update-compatibility check --file=/path/to/file.json
bin/kc.[sh|bat] update-compatibility check --file=/path/to/file.json
- コマンドを実行する際は、環境変数か CLI 引数かに関係なく、すべての設定オプションが含まれていることを確認してください。
- 正しい Red Hat build of Keycloak バージョンが使用されていることを確認します。
これらの要件を満たさない場合、結果は不正確になります。
コマンドは結果をコンソールに出力します。たとえば、ローリング更新が可能な場合は、次のように表示されます。
ローリング更新が可能であることを示すメッセージ
[OK] Rolling Update is available.
[OK] Rolling Update is available.
ローリング更新が不可能な場合、このコマンドで互換性がない旨の情報が表示されます。
ローリング更新が不可能であることを示すメッセージ
[keycloak] Rolling Update is not available. 'keycloak.version' is incompatible: 26.2.0 -> 26.2.1
[keycloak] Rolling Update is not available. 'keycloak.version' is incompatible: 26.2.0 -> 26.2.1
- 1
- この例では、Keycloak バージョン
26.2.0
はバージョン26.2.1
と互換性がなく、ローリング更新は実行できません。
コマンド終了コード
コマンドの終了コードを使用して、自動化パイプラインの更新タイプを判別します。
終了コード | 説明 |
---|---|
| ローリング更新が可能です。 |
| 予期しないエラーが発生しました (メタデータファイルが見つからないか破損しているなど)。 |
| 無効な CLI オプションです。 |
| ローリング更新はできません。新しい設定を適用する前に、デプロイメントをシャットダウンする必要があります。 |
|
ローリング更新はできません。 |