カスタム Keycloak イメージの使用

Keycloak コンテナのカスタマイズと最適化の方法

Operator を使用したカスタム Keycloak イメージ

Keycloak カスタムリソース (CR) を使用すると、Keycloak サーバー用のカスタムコンテナイメージを指定できます。

Operator と Operand の完全な互換性を確保するために、カスタムイメージで使用する Keycloak リリースのバージョンが Operator のバージョンと一致していることを確認してください。

ベストプラクティス

デフォルトの Keycloak イメージを使用する場合、サーバーは Pod が起動するたびにコストのかかる再拡張を実行します。この遅延を避けるために、イメージのビルド時に拡張機能を組み込んだカスタムイメージを提供できます。

カスタムイメージを使用すると、コンテナのビルド中に Keycloak のビルド時設定と拡張機能を指定することもできます。

最適化されたカスタムイメージを使用する場合、health-enabled および metrics-enabled オプションは Containerfile で明示的に設定する必要があります。

そのようなイメージの構築方法については、コンテナでの Keycloak の実行 を参照してください。

カスタム Keycloak イメージの提供

カスタムイメージを提供するには、この例に示すように Keycloak CR で image フィールドを定義します。

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  instances: 1
  image: quay.io/my-company/my-keycloak:latest
  http:
    tlsSecret: example-tls-secret
  hostname:
    hostname: test.keycloak.org
カスタムイメージでは、専用フィールドまたは additionalOptions を介して渡されるすべてのビルド時オプションは無視されます。
Operator は、カスタムイメージで指定された構成オプションを認識しません。Operator の認識を必要とする構成、つまりサービスとプローブを構成する際に反映される TLS および HTTP(S) 設定には、Keycloak CR を使用してください。

非最適化カスタムイメージ

プレ拡張イメージを使用することがベストプラクティスとされていますが、非最適化カスタムイメージまたは拡張イメージでビルド時プロパティを使用したい場合も可能です。この例に示すように、startOptimized フィールドを false に設定するだけです。

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  instances: 1
  image: quay.io/my-company/my-keycloak:latest
  startOptimized: false
  http:
    tlsSecret: example-tls-secret
  hostname:
    hostname: test.keycloak.org

これにより、起動のたびに再拡張のコストが発生することに注意してください。

このページについて