3.2. Keycloak CR の移行
Keycloak CR は、すべてのサーバー設定オプションをサポートするようになりました。関連するすべてのオプションを、CR 仕様で、直接ファーストクラスシチズンフィールドとして使用できます。CR のすべてのオプションは、サーバーオプションと同じ命名規則に準拠しています。これにより、ベアメタルデプロイメントと Operator デプロイメント間のエクスペリエンスがシームレスになります。
さらに、SPI プロバイダー設定など、CR に不足しているオプションを additionalOptions フィールドで定義できます。また、サポートされる代替フィールドが CR のファーストクラスシチズンフィールドとして存在しない場合は、podTemplate (テクノロジープレビューのフィールド) を使用して、Kubernetes デプロイメントの RAW Pod テンプレートを変更することもできます。
以下は、Operator を通じて Red Hat build of Keycloak をデプロイするための Keycloak CR の例を示しています。
apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
name: example-kc
spec:
instances: 1
db:
vendor: postgres
host: postgres-db
usernameSecret:
name: keycloak-db-secret
key: username
passwordSecret:
name: keycloak-db-secret
key: password
http:
tlsSecret: example-tls-secret
hostname:
hostname: test.keycloak.org
additionalOptions:
- name: spi-connections-http-client--default--connection-pool-size
value: 20
CLI 設定との類似点に注目してください。
./kc.sh start --db=postgres --db-url-host=postgres-db --db-username=user --db-password=pass --https-certificate-file=mycertfile --https-certificate-key-file=myprivatekey --hostname=test.keycloak.org --spi-connections-http-client--default--connection-pool-size=20
3.2.1. データベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Keycloak は、以前に Red Hat Single Sign-On 7.6 で使用されていたのと同じデータベースインスタンスを使用できます。データベーススキーマは、Red Hat build of Keycloak が初めてデータベースに接続するときに自動的に移行されます。
Red Hat Single Sign-On 7.6 Operator によって管理される組み込みデータベースの移行は、サポートされていません。
Red Hat Single Sign-On 7.6 Operator では、外部データベース接続はシークレットを使用して設定していました。次に例を示します。
apiVersion: v1
kind: Secret
metadata:
name: keycloak-db-secret
namespace: keycloak
labels:
app: sso
stringData:
POSTGRES_DATABASE: kc-db-name
POSTGRES_EXTERNAL_ADDRESS: my-postgres-hostname
POSTGRES_EXTERNAL_PORT: 5432
POSTGRES_USERNAME: user
POSTGRES_PASSWORD: pass
type: Opaque
Red Hat build of Keycloak では、データベースは、シークレットとして参照される認証情報を使用して Keycloak CR に直接設定されます。次に例を示します。
apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
name: example-kc
spec:
db:
vendor: postgres
host: my-postgres-hostname
port: 5432
usernameSecret:
name: keycloak-db-secret
key: username
passwordSecret:
name: keycloak-db-secret
key: password
...
apiVersion: v1
kind: Secret
metadata:
name: keycloak-db-secret
stringData:
username: "user"
password: "pass"
type: Opaque
Red Hat Single Sign-On 7.6 Operator は PostgreSQL データベースのみをサポートしていました。一方、Red Hat build of Keycloak Operator はサーバーでサポートされているすべてのデータベースベンダーをサポートしています。