GitLab 차트에 대한 의존성

GitLab Operator(또는 “Operator”로만 알려진)은 GitLab Helm 차트 (또는 “차트”로만 알려진)에 의존합니다. ADR 0004에 설명된 대로.

GitLab 차트 변경사항의 영향 파악

Operator가 차트의 새 버전을 수용할 때, 차트 내의 변경 사항도 함께 수용됩니다. 때로는 Operator를 수정하여 차트의 변경 사항을 지원해야 합니다.

예를 들어, 차트 Merge Request 3278에서는 NGINX Ingress Controller 이미지 태그의 버전이 업데이트되었으며, 해당 변경을 지원하기 위해 NGINX RBAC 개체도 업데이트되었습니다. 이로 인해 Operator의 master 브랜치에서 파이프라인이 중단되는 이슈 1324가 발생했습니다. 문제는 Operator의 Merge Request 655로 해결되었습니다.

차트 Merge Request을 제출할 때에는 이상적으로 Operator에 해당 변경사항을 반영하는 Operator에 대응하는 Merge Request을 열어 동반되어야 합니다. 이 접근 방식은 차트의 변경 사항이 Operator의 맥락에서 고려되도록 보장하여 두 컴포넌트가 가능한 원활하게 작동함을 돕습니다.

GitLab 차트 변경사항의 영향 평가

차트에 변경사항을 제출할 때 Operator에 대한 영향을 고려해야 합니다. 이는 차트 Merge Request 템플릿의 승인 체크리스트의 항목으로 포함되어 있어 상기시키기 위한 것입니다.

차트의 변경 사항이 Operator에 미칠 영향을 평가하려면 해당 변경사항이 Operator에 자동으로 흡수될지 여부를 고려해야 합니다. 이를 확실히 확인하기 위한 유일한 방법은 Operator 코드베이스를 매뉴얼으로 검사하여 차트에서 가져온 리소스에 관련 참조를 검색하고 Operator가 관련 변경사항과 조정이 필요한 방식으로 상호작용하는지를 확인하는 것입니다. 이에 대한 자동화된 테스트 메커니즘을 제공하는 것은 Chart 이슈 4900에서 현재 조사 중입니다.

한편, 다음 예시들은 가능한 영향을 확인하는 데 도움이 될 수 있습니다:

  • .metadata.name 및/또는 .metadata.labels와 같은 리소스 명명 또는 라벨링 체계 변경
  • .apiVersion과 같은 리소스 그룹 및/또는 버전 변경
  • ServiceAccount 이름 또는 RBAC 정책 변경
  • Redis 또는 PostgreSQL 차트 버전과 같은 차트 의존성 업그레이드
  • 주요 릴리스에서 도입되거나 버전이 중단되는 차트 파손 변경

Operator가 직접 조작하지 않고 렌더링된 Helm 템플릿에서만 가져와 클러스터에서 조정하는 리소스 내에 새 필드가 추가된 차트의 변경 사항이 자동으로 흡수되는 예시는 차트 Merge Request 3247입니다.