apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
name: my-realm-kc
spec:
keycloakCRName: <name of the keycloak CR>
realm:
...
使用 Keycloak Operator,您可以为 Keycloak 部署执行 realm 导入。
|
以下是 Realm 导入自定义资源 (CR) 的示例
apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
name: my-realm-kc
spec:
keycloakCRName: <name of the keycloak CR>
realm:
...
此 CR 应与 Keycloak 部署 CR 在同一命名空间中创建,并在字段 keycloakCRName
中定义。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
...
在上面的示例中,将启用占位符替换,并将从 Secret SECRET_NAME
的 SECRET_KEY
键的值创建一个键为 ENV_KEY
的环境变量。目前仅支持 Secret,并且它们必须与 Keycloak CR 位于同一命名空间中。