apiVersion: k8s.keycloak.org/v2alpha1
kind: KeycloakRealmImport
metadata:
name: my-realm-kc
spec:
keycloakCRName: <name of the keycloak CR>
realm:
...
使用 Keycloak Operator,您可以對 Keycloak 部署執行領域匯入。
|
以下是一個領域匯入自訂資源 (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
的建議方式是利用匯出功能匯入和匯出領域。
將領域匯出到單一檔案。
將 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:
匯入支援參照環境變數的佔位符,更多資訊請參閱 匯入和匯出領域。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 位於相同的命名空間中。