第3章 Red Hat build of Keycloak レルムのインポート
3.1. Red Hat build of Keycloak レルムのインポート リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak Operator を使用すると、Keycloak デプロイメントのレルムのインポートを実行できます。
- Red Hat build of Keycloak に同じ名前のレルムがすでに存在する場合、上書きされません。
- Realm Import CR は、新しいレルムの作成のみをサポートし、それらの更新や削除は行いません。Red Hat build of Keycloak で直接実行されたレルムへの変更は、CR に同期されません。
3.1.1. レルムインポートカスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下は、レルムインポートカスタムリソース (CR) の例です。
この CR は、フィールド keycloakCRName
で定義された Keycloak デプロイメント CR と同じ namespace に作成する必要があります。realm
フィールドは、完全な RealmRepresentation を受け入れます。
RealmRepresentation
を取得するには、エクスポート機能 レルムのインポートとエクスポート を利用することを推奨します。
- レルムを単一のファイルにエクスポートします。
- JSON ファイルを YAML に変換します。
-
取得した YAML ファイルをコピーして
realm
キーのボディーとして貼り付け、インデントが正しいことを確認します。
3.1.2. Realm Import CR の適用 リンクのコピーリンクがクリップボードにコピーされました!
oc
を使用して、正しいクラスター namespace に CR を作成します。
YAML ファイル example-realm-import.yaml
を作成します。
変更を適用します。
oc apply -f example-realm-import.yaml
oc apply -f example-realm-import.yaml
実行中のインポートのステータスを確認するには、次のコマンドを入力します。
oc get keycloakrealmimports/my-realm-kc -o go-template='{{range .status.conditions}}CONDITION: {{.type}}{{"\n"}} STATUS: {{.status}}{{"\n"}} MESSAGE: {{.message}}{{"\n"}}{{end}}'
oc get keycloakrealmimports/my-realm-kc -o go-template='{{range .status.conditions}}CONDITION: {{.type}}{{"\n"}} STATUS: {{.status}}{{"\n"}} MESSAGE: {{.message}}{{"\n"}}{{end}}'
インポートが正常に完了すると、出力は次の例のようになります。
3.1.3. プレースホルダー リンクのコピーリンクがクリップボードにコピーされました!
インポートでは、環境変数を参照するプレースホルダーがサポートされます。詳細は、レルムのインポートとエクスポート を参照してください。KeycloakRealmImport
CR を使用すると、spec.placeholders
スタンザを介してこの機能を利用できます。次に例を示します。
上記の例では、プレースホルダーの置換が有効になり、SECRET_NAME’s value for key `SECRET_KEY
シークレットから ENV_KEY
キーを持つ環境変数が作成されます。現在、Secrets のみがサポートされており、Keycloak CR と同じ namespace に存在する必要があります。
3.1.4. セキュリティーに関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
KeycloakRealmImport CR を作成または編集できるすべてのユーザーは、namespace レベル admin である必要があります。
プレースホルダーの置換により、機密性の高い変数であっても、すべての環境変数にアクセスできます。