11.3. カスタムリソースを使用した Red Hat Single Sign-On のインストール
Operator を使用して Keycloak カスタムリソースを作成して、Red Hat Single Sign-On のインストールを自動化できます。カスタムリソースを使用して Red Hat Single Sign-On をインストールする際に、ここに説明されているコンポーネントおよびサービスを作成し、続いて表示されるグラフで示唆します。
-
keycloak-db-secret
- データベースのユーザー名、パスワード、および外部アドレスなどのプロパティーを保存します (外部データベースに接続する場合)。 -
credentials-<CR-Name>
- Red Hat Single Sign-On 管理コンソールにログインする管理者のユーザー名とパスワードです (<CR-Name>
はKeycloak
カスタムリソース名に基づいています)。 -
keycloak
- 高可用性サポートのある StatefulSet として実装される Keycloak デプロイメント仕様 -
keycloak-postgresql
- PostgreSQL データベースインストールを開始します。 -
keycloak-discovery
サービス -JDBC_PING
検出を実行します。 -
keycloak
サービス - HTTPS 経由で Red Hat Single Sign-On への接続 (HTTP はサポートされていません) -
keycloak-postgresql
サービス - 内部および外部 (使用されている場合) のデータベースインスタンスを接続します。 -
keycloak
ルート - OpenShift から Red Hat Single Sign-On 管理コンソールにアクセスするための URL
Operator コンポーネントおよびサービスがどのように対話するか
11.3.1. Keycloak カスタムリソース
Keycloak カスタムリソースは、インストールのパラメーターを定義する YAML ファイルです。このファイルには、3 つのプロパティーが含まれます。
-
instances
- 高可用性モードで実行中のインスタンス数を制御します。 -
externalAccess
-enabled
がTrue
の場合、Operator は Red Hat Single Sign-On クラスターの OpenShift のルートを作成します。Route に自動選択されるホスト名を上書きするようにhost
を設定できます。 -
externalDatabase
- 外部でホストされているデータベースに接続するため。このトピックは、本ガイドの 外部データベース のセクションで説明しています。false に設定すると、テスト目的でのみ使用され、組み込み PostgreSQL データベースがインストールされます。externalDatabase:false は実稼働環境ではサポートされていないことに注意してください。
Keycloak カスタムリソースの YAML ファイルのサンプル
apiVersion: keycloak.org/v1alpha1 kind: Keycloak metadata: name: example-sso labels: app: sso spec: instances: 1 externalAccess: enabled: True
apiVersion: keycloak.org/v1alpha1
kind: Keycloak
metadata:
name: example-sso
labels:
app: sso
spec:
instances: 1
externalAccess:
enabled: True
YAML ファイルを更新しても、Red Hat Single Sign-On 管理コンソールに表示される変更は更新できますが、管理コンソールへの変更はカスタムリソースを更新しません。
11.3.2. OpenShift での Keycloak カスタムリソースの作成
OpenShift では、カスタムリソースを使用して管理コンソールの URL であるルートを作成し、管理コンソールのユーザー名とパスワードを保持するシークレットを検索します。
前提条件
- このカスタムリソースの YAML ファイルがある。
- cluster-admin パーミッション、または管理者によって付与される同等のレベルのパーミッションがある。
手順
YAML ファイルを使用してルートを作成します (
oc create -f <filename>.yaml -n <namespace>
)。以下は例になります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc create -f sso.yaml -n sso
$ oc create -f sso.yaml -n sso keycloak.keycloak.org/example-sso created
ルートは OpenShift に作成されます。
- OpenShift Web コンソールにログインします。
Networking
、Routes
を選択し、Keycloak を検索します。OpenShift Web コンソールのルート画面
Keycloak ルートのある画面で、
Location
の下にある URL をクリックします。Red Hat Single Sign-On の管理コンソールのログイン画面が表示されます。
管理コンソールのログイン画面
OpenShift Web コンソールで管理コンソールのユーザー名およびパスワードを確認します。
Workloads
でSecrets
をクリックし、Keycloak を検索します。OpenShift Web コンソールのシークレット画面
管理コンソールのログイン画面に、ユーザー名とパスワードを入力します。
管理コンソールのログイン画面
次に、Keycloak カスタムリソースによってインストールされた Red Hat Single Sign-On のインスタンスにログインしている。レルム、クライアント、およびユーザーのカスタムリソースを作成できます。
Red Hat Single Sign-On マスターレルム
カスタムリソースのステータスを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe keycloak <CR-name>
$ oc describe keycloak <CR-name>
結果
Operator がカスタムリソースを処理した後に、以下のコマンドでステータスを表示します。
oc describe keycloak <CR-name>
$ oc describe keycloak <CR-name>
Keycloak カスタムリソースのステータス
Name: example-keycloak Namespace: keycloak Labels: app=sso Annotations: <none> API Version: keycloak.org/v1alpha1 Kind: Keycloak Spec: External Access: Enabled: true Instances: 1 Status: Credential Secret: credential-example-keycloak Internal URL: https://<External URL to the deployed instance> Message: Phase: reconciling Ready: true Secondary Resources: Deployment: keycloak-postgresql Persistent Volume Claim: keycloak-postgresql-claim Prometheus Rule: keycloak Route: keycloak Secret: credential-example-keycloak keycloak-db-secret Service: keycloak-postgresql keycloak keycloak-discovery Service Monitor: keycloak Stateful Set: keycloak Version: Events:
Name: example-keycloak
Namespace: keycloak
Labels: app=sso
Annotations: <none>
API Version: keycloak.org/v1alpha1
Kind: Keycloak
Spec:
External Access:
Enabled: true
Instances: 1
Status:
Credential Secret: credential-example-keycloak
Internal URL: https://<External URL to the deployed instance>
Message:
Phase: reconciling
Ready: true
Secondary Resources:
Deployment:
keycloak-postgresql
Persistent Volume Claim:
keycloak-postgresql-claim
Prometheus Rule:
keycloak
Route:
keycloak
Secret:
credential-example-keycloak
keycloak-db-secret
Service:
keycloak-postgresql
keycloak
keycloak-discovery
Service Monitor:
keycloak
Stateful Set:
keycloak
Version:
Events:
関連資料
- Red Hat Single Sign-On のインストールが完了すると、レルムカスタムリソースを作成 する準備が整います。
- 外部データベースはサポートされているオプションであり、Keycloak カスタムリソースで有効にする必要があります。このオプションはテストでのみ無効にし、実稼働環境に切り替えるときに有効にすることができます。外部データベースへの接続 を参照してください。