第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) の例です。
apiVersion: k8s.keycloak.org/v2alpha1 kind: KeycloakRealmImport metadata: name: my-realm-kc spec: keycloakCRName: <name of the keycloak CR> realm: ...
この 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
を作成します。
apiVersion: k8s.keycloak.org/v2alpha1 kind: KeycloakRealmImport metadata: name: my-realm-kc spec: keycloakCRName: <name of the keycloak CR> realm: id: example-realm realm: example-realm displayName: ExampleRealm enabled: true
変更を適用します。
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}}'
インポートが正常に完了すると、出力は次の例のようになります。
CONDITION: Done STATUS: true MESSAGE: CONDITION: Started STATUS: false MESSAGE: CONDITION: HasErrors STATUS: false MESSAGE: