GitLab이 관리하는 클러스터 자원 추적 (사용 중단됨)

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
caution
이 기능은 GitLab 16.2에서 사용이 중단되었습니다. GitOps로 클러스터 자원을 관리하려면 Flux 통합을 사용해야 합니다.

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입니다.
caution
에이전트는 default_namespace 매개변수를 변경하거나 다른 프로젝트로 매니페스트를 이동하는 경우 기존 인벤토리 객체를 찾을 수 없습니다.

인벤토리 객체의 위치 변경

인벤토리 객체의 네임스페이스 및 이름을 구성할 수 있습니다. 이 작업은 클러스터 내 객체의 위치를 변경합니다.

  1. 인벤토리 객체 템플릿을 생성합니다. 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
    
  2. namespacename을 지정합니다. name이 다른 인벤토리 객체와 충돌하지 않도록 고유해야 합니다.
  3. cli-utils.sigs.k8s.io/inventory-id 값이 고유한지 확인합니다. 이 값은이 인벤토리 객체에서 추적하는 객체에 사용됩니다. config.k8s.io/owning-inventory 주석이 이 값으로 설정됩니다.

    값은 name과 일치할 필요는 없지만 동일한 값으로 설정하는 것이 편리합니다.

  4. 매니페스트 파일을 단일 논리적 그룹으로 저장합니다.

inventory_policy 옵션

때로는 매니페스트 변경으로 GitLab 인벤토리 객체로 추적되지 않는 리소스에 영향을 미칩니다.

에이전트가 기존 및 이전에 추적되지 않은 리소스를 덮어쓸 때 작동 방식을 변경하려면 inventory_policy 값을 변경합니다.

inventory_policy설명
must_match 기본 정책입니다. 업데이트하려면 라이브 객체에는 해당 인벤토리 객체에있는 cli-utils.sigs.k8s.io/inventory-id 레이블과 동일한 값으로 config.k8s.io/owning-inventory 주석이 있어야 합니다. 값이 일치하지 않거나 객체에 주석이 없는 경우, 객체가 업데이트되지 않고 오류가보고됩니다.
adopt_if_no_inventory config.k8s.io/owning-inventory 주석이없는 객체를 채택합니다.이 모드를 사용하면 GitOps 기능을 사용하여 기존 객체를 관리하려는 경우가 있습니다. 예기치 않은 채택을 피하기 위해 모든 객체를 채택 한 후 설정을 기본 must_match 모드로 변경하십시오.
adopt_all config.k8s.io/owning-inventory 주석이 다른 값으로 설정된 객체도 가져옵니다.이 모드를 사용하면 일부 객체를 다른 에이전트로 또는 다른 도구에서 에이전트로 마이그레이션하려는 경우가 있습니다. 예기치 않은 채택을 피하기 위해 모든 객체를 채택 한 후 설정을 기본 must_match 모드로 변경하십시오.