検討された代替案

この段落では、考えられるいくつかの代替案と、それらが現在のアプローチとどのように異なるかについて説明します。

Docker Compose
  • このセットアップは、仮想マシンのセットアップが不要なため、より最小限の構成になります。

  • Docker Composeは、実際のDocker実行時にはCPU制限をサポートしますが、Podmanではサポートしません。

  • Docker Composeはテンプレートをサポートしていないため、異なるCPU制限を持つさまざまなセットアップのカスタマイズは困難ですが、Helm for minikubeではそのようなテンプレートが利用可能です。Grafanaスタックの場合、カスタマイズ可能な優れたHelmテンプレートがありますが、Docker Composeにはそのような方法はありません。

決定: minikubeを使用しますが、アドホックテスト用の最小限のセットアップとして、またコミュニティ向けの小規模なソリューションを可能にするために、Docker Composeも維持します。(2022年5月にAlexander Schwartzが提案)

範囲: Docker Composeには、Keycloakとデータベースのみが含まれ、監視スタックは含まれず、CPU制限も課しません。

OpenShift Local(旧称CodeReady Containers)
  • Minishiftと同じ機能を持ち、オペレーターサポートがすでにインストールされています。自動的にセットアップできます(開発者がRed Hatアカウントに登録し、プルシークレットを取得する場合)。

  • OpenShiftスタイルの監視は、標準の監視機能/オペレーター、およびおそらく追加の拡張機能を使用してインストールできます。一方、HelmチャートはOpenShiftオペレーターよりも構成可能であるように思われます。

  • Keycloak Javaオペレーターのチームは、minikubeでテストするために取り組んでおり、オペレーターハブ機能はシェルスクリプトで数分以内にインストールできます。これにより、このセットアップのためにMinishiftでKeycloakオペレーターを実行することも可能になります。

  • OpenShift Localは常にVMを使用し、CPUとRAMの使用量に関してよりヘビーウェイトになります。OpenShiftをインストールすることは、コミュニティ貢献者にとってより大きなステップです。長期的には、OpenShiftとminikubeの両方のセットアップを維持することは、より高いメンテナンスコストになる可能性があります。OpenShift Localをゼロからインストールするには、Minishiftをインストールするよりもはるかに時間がかかります。OpenShiftには、ダウンロードしてコンテナを起動する必要があるオペレーターが多数付属しており、依存関係を待機するためです。

  • minikubeには、コンテナをローカルで軽量にビルドし、実行中のminikubeインスタンスに提供するメカニズムがあります。OpenShiftの代替案は、バイナリビルドになります。

決定: 当面はminikubeを使用します。必要に応じてOpenShift(Localまたは通常)にデプロイするために、後でHelmスクリプトに追加のパラメーター化を追加します。最初のOpenShiftデプロイメントが完了したら、後で決定を再検討します。(2022年5月にAlexander Schwartzが提案)