GitLabが管理するクラスター・リソースの追跡(非推奨)
GitLabは、クラスターにデプロイしたリソースを追跡するためにインベントリオブジェクトを使用します。インベントリオブジェクトは、管理オブジェクトのリストを含むConfigMap
。管理されるリソースはcli-utils.sigs.k8s.io/inventory-id
アノテーションを使います。
インベントリオブジェクトのデフォルトの場所
エージェント設定ファイルでは、プロジェクトのリストを指定します。例えば
gitops:
manifest_projects:
- id: gitlab-org/cluster-integration/gitlab-agent
default_namespace: my-ns
エージェントは、manifest_projects
リスト内のすべての項目に対してインベントリ・オブジェクトを作成します。インベントリ・オブジェクトは、default_namespace
に指定したネームスペースに格納されます。
インベントリオブジェクトの名前と場所は、以下に基づいています:
-
default_namespace
このパラメータを指定しない場合、インベントリ・オブジェクトはdefault
ネームスペースに格納されます。 -
name
は、マニフェストを持つプロジェクトの ID とエージェントの ID です。
default_namespace
パラメータを変更したり、マニフェストを別のプロジェクトに移動したりすると、エージェントは既存のインベントリオブジェクトを見つけることができません。インベントリオブジェクトの場所を変更
インベントリ・オブジェクトのネームスペースおよび名前を設定できます。このアクションは、クラスター内のオブジェクトの場所を変更します。
-
インベントリ・オブジェクト・テンプレート (
ConfigMap
オブジェクト) を作成します。例えばapiVersion: v1 kind: ConfigMap metadata: name: unique-name-for-the-inventory namespace: my-project-namespace labels: cli-utils.sigs.k8s.io/inventory-id: unique-name-for-the-inventory
-
namespace
とname
.name
将来、同じネームスペースにある他のインベントリ・オブジェクトと競合しないように、.NETname
がname
一意であることをname
確認してname
ください。 -
cli-utils.sigs.k8s.io/inventory-id
の値が一意であることを確認します。この値は、このインベントリ・オブジェクトによって追跡されるオブジェクトに使用されます。config.k8s.io/owning-inventory
アノテーションはこの値に設定されます。値は
name
と一致する必要はありませんが、同じ値に設定すると便利です。 - マニフェストファイルを含むファイルを 1 つの論理グループとして保存します。
inventory_policy
オプション
マニフェストの変更が、GitLabインベントリオブジェクトによって追跡されないリソースに影響することがあります。
既存のリソースや以前追跡されていなかったリソースを上書きしたときのエージェントの動作を変更するには、inventory_policy
の値を変更します。
inventory_policy 値 | 説明 |
---|---|
must_match | デフォルトのポリシー。更新するには、ライブ・オブジェクトのconfig.k8s.io/owning-inventory アノテーションが、対応するインベントリ・オブジェクトのcli-utils.sigs.k8s.io/inventory-id ラベルと同じ値に設定されている必要があります。値が一致しない場合、またはオブジェクトが注釈を持たない場合、オブジェクトは更新されず、エラーがレポーターされます。 |
adopt_if_no_inventory | オブジェクトにconfig.k8s.io/owning-inventory 注釈がない場合は、そのオブジェクトを採用します。GitOps機能を使って既存のオブジェクトの管理を始めたい場合は、このモードを使います。予期しない採用を避けるために、すべてのオブジェクトが採用されたら、設定をデフォルトのmust_match モードに戻してください。 |
adopt_all |
config.k8s.io/owning-inventory アノテーションが別の値に設定されていても、オブジェクトを採用します。あるエージェントから別のエージェントへ、または他のツールからエージェントへ、オブジェクトのセットをマイグレーションする場合、このモードを使用します。予期しない採用を避けるため、すべてのオブジェクトが採用された後、設定をデフォルトのmust_match モードに戻します。 |