FrameworkではOperatorをGo言語で作ることになっていますが、まだまだGoはハードルが高い人もいるし、そもそも状態を常時管理する必要が無いようなステートレスなコンテナにいちいちイチからOperatorを作るのは面倒です。Framework自体がOperatorを簡単に実装できるようにするフレームワークではありますが、そういった要件を考慮してさらに開発を簡単にするラッパーが開発されています。Operator前者は、既存のhelmチャートをOperatorに変換するもの、後者はAnsibleでOperatorを作るものです。KithelmはKubernetesの世界で既に広く使われているパッケージマネージャーであり、多くのhelmチャートが作られています。この資産、helmチャートからOperatorを作ることができれば便利そうですね。Managerによる管理対象にできるといったメリットがあります。公式ベージにTomcatのhelmチャートをOperator化する例があるので試してみたいと思います。cloneしてくるだけです。buildすることで、helmチャートをコンテナイメージに変換します。$IMAGEなお、Tomcatのhelmチャートは何故かHostPortを空けようとするのでOpenShift環境だと権限の関係でPodがデプロイされません。tarをダウンロードして、変更することで修正できます。以下に修正したものをアップロードしましたのでご使用ください。https://s3-ap-northeast-1.amazonaws.com/literalice-helm-charts/tomcat-0.1.0.tgzこれで、Operatorのコンテナイメージが作成されコンテナレジストリにPushされました。Operatorは、以下のようなCRが作成、変更、削除されたときにTomcatを指定通りにインストールしたりアンインストールします。build時に指定したKINDなどのパラメーターと、helmチャートのvalues.yamlに従い決定されます。2このCRをapplyすれば、TomcatがKubernetes上にプロビジョニングされるというわけですね。このCRを作成するためには、まずCRDを作成しなければなりません。サンプルのディレクトリには既に用意されているので、以下コマンドを適用するだけです。rbac.yaml次に、Operatorをインストールします。テンプレートが用意されているので、プレースホルダを先ほどビルドしたOperatorコンテナイメージに置換して使用します。43sOperatorでTomcatをインストールするこれで、Tomcatをインストールする準備ができました。以下のようにCRを適用すると、OperatorがTomcatをインストールしてくれるはずです。PodはOperatorで管理されているので、対応するCRをeditすることで設定を変更できます。Podのインスタンス数を確認してみます。5hこのように、Podが減少していることが分かります。Tomcatをアンインストールするには、対応するCRを削除します。OperatorをOLMで管理することもできます。OpenShiftの場合、v3.11からOLMの管理画面が付いているので、以下のように画面で動作を確認できます。管理画面からTomatをインストールしてみます。Server」を押下します。作成については、CRのYAMLを画面上でapplyできるだけですね。cr.yamlに相当する操作です。画面上でtomcatインスタンスの一覧が確認できます。コマンドラインからも、Tomcatが起動していることが確認できます。KitでOperatorを生成できます。Operatorによるサービスのインストール、設定は、エンドユーザーにとってkubectlで操作が完結する、複雑な設定が隠蔽されシンプルなCRで設定できるなどのメリットがあります。今helmチャートで管理しているサービスがあるなら、Operator化を検討してはいかがでしょうか。