apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
name: my-realm-kc
spec:
keycloakCRName: <name of the keycloak CR>
realm:
...
Keycloak Operatorを使用すると、Keycloak DeploymentのRealmインポートを実行できます。
|
以下は、Realm Import Custom Resource (CR) の例です。
apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
name: my-realm-kc
spec:
keycloakCRName: <name of the keycloak CR>
realm:
...
このCRは、keycloakCRName
フィールドで定義されているKeycloak Deployment CRと同じ名前空間に作成する必要があります。realm
フィールドは、完全なRealmRepresentationを受け入れます。
RealmRepresentation
を取得する推奨される方法は、エクスポート機能であるRealmのインポートとエクスポートを活用することです。
Realmを単一のファイルにエクスポートします。
JSONファイルをYAMLに変換します。
取得したYAMLファイルをrealm
キーの本文としてコピー&ペーストし、インデントが正しいことを確認してください。
kubectl
を使用して、正しいクラスタ名前空間に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
変更を適用します。
kubectl apply -f example-realm-import.yaml
実行中のインポートのステータスを確認するには、次のコマンドを入力します。
kubectl 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:
インポートは、環境変数を参照するプレースホルダーをサポートしています。詳細については、Realmのインポートとエクスポートを参照してください。KeycloakRealmImport
CRを使用すると、spec.placeholders
スタンザを介してこの機能を活用できます。例:
apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
name: my-realm-kc
spec:
keycloakCRName: <name of the keycloak CR>
placeholders:
ENV_KEY:
secret:
name: SECRET_NAME
key: SECRET_KEY
...
上記の例では、プレースホルダーの置換が有効になり、キーENV_KEY
を持つ環境変数が、Secret SECRET_NAME
のキーSECRET_KEY
の値から作成されます。現在、Secretsのみがサポートされており、それらはKeycloak CRと同じ名前空間にある必要があります。