GitLabチャートへの依存

GitLab Operator(単に “Operator “とも呼ばれます)は、ADR 0004に記載されているように、GitLab Helm Charts(単に “Chart “とも呼ばれます)に依存しています。

GitLab Chartへの変更による影響の理解

OperatorがChartの新しいバージョンを取り込むとき、Chart内の変更も取り込みます。Chartの変更をサポートするために、Operatorに調整を加えなければならないことがあります。

たとえば、Chartマージリクエスト3278は、変更をサポートするためにNGINX RBACオブジェクトの更新とともに、NGINX Ingress Controllerイメージタグのバージョンを更新しました。これにより、master のパイプラインが壊れるという Operator のイシュー 1324が発生しました。この問題は Operatorマージリクエスト 655によって解決されました。

Chart マージ・リクエストが送信されたとき、理想的には、Operator の付随するマージ・リクエストが開かれ、Chart マージ・リクエストに依存するものとしてマークされる必要がありました。このアプローチにより、Chartへの変更がOperatorのコンテキストで考慮されるようになり、チームが2つのコンポーネントを可能な限りシームレスに連携させることができます。

GitLab Chart への変更による影響の評価

Chartに変更を提出する際には、オペレーションへの影響を考慮する必要があります。これは、Chartマージリクエストテンプレートの承認チェックリストに項目として含まれています。

Chartへの変更がOperatorに与える影響を評価するには、その変更がOperatorに自動的に取り込まれるかどうかを検討します。これを確実に達成する唯一の方法は、Operatorコードベースを手動で検査し、Chartからソースとなっているリソースへの関連参照を検索し、調整が必要な方法でOperatorが関連変更と相互作用するかどうかを確認することです。これをテストする自動メカニズムを提供することは、Chartイシュー4900で調査中です。

それまでの間、以下の例は、考えられる影響を特定するのに役立ちます:

  • .metadata.name などのリソースの名称やラベリングスキームの変更、および/または.metadata.labels
  • リソースグループやバージョンの変更。.apiVersion
  • サービスアカウント名またはRBACポリシーの変更
  • RedisやPostgreSQLのバージョンなど、Chartの依存関係のアップグレード
  • メジャーリリースや停止バージョンで導入された、チャートを破壊するような変更

自動的に取り込まれる変更の例は、Chartマージリクエスト3247です。これは、Operatorが直接操作しないリソースの内部に新しいフィールドを追加し、レンダリングされたHelmテンプレートからそれらを取得し、クラスターでそれらを調整するだけです。