Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

제품 릴리스 비호환 관계

extensions.product-incompatibilities는 같은 배포 환경(Environment)에 동시에 설치할 수 없는 다른 제품 릴리스(Product Release)를 선언합니다. Apollo는 선언된 비호환 관계를 위반하는 동시 설치를 막습니다.

선언

다음은 가상 제품이 PostgreSQL의 특정 버전 범위와 동시에 설치되지 않도록 하는 예시입니다.

extensions:
  product-incompatibilities:
    - product-group: org.postgresql
      product-name: postgresql
      minimum-version: 9.3.6
      maximum-version: 9.6.x

목록은 순서가 없습니다.

필드필수 여부와 의미
product-group필수입니다. 비호환 대상 제품의 그룹입니다.
product-name필수입니다. 비호환 대상 제품 이름입니다.
product-type선택 항목입니다. 지정하면 특정 제품 유형으로 범위를 제한하고 생략하면 모든 유형에 적용합니다. 대상 매니페스트의 실제 유형을 사용합니다.
minimum-version선택 항목입니다. 비호환 범위에 포함되는 최저 비교 가능 버전입니다.
maximum-version선택 항목입니다. 비호환 범위에 포함되는 상한 버전 매처입니다.

예시에서는 제품 유형을 생략하여 모든 유형에 적용합니다. 배포 개체의 entity-type 값을 제품 매니페스트 유형으로 대입하지 않습니다.

한쪽 선언으로도 양방향 적용

가상의 서비스 A와 B가 함께 실행될 수 없으면 각 매니페스트에 서로의 비호환 관계를 선언할 수 있습니다. 다만 A만 B와의 비호환 관계를 선언해도 두 방향에 적용합니다.

  • B가 이미 설치되어 있으면 A 설치를 막습니다.
  • A가 이미 설치되어 있으면 나중에 추가한 B 설치를 막습니다.

이 제약은 둘 중 하나를 반드시 설치하도록 보장하지 않습니다. 환경 편집자가 필요한 제품을 Apollo 관리 대상으로 지정해야 합니다. 비호환 관계와 의존 관계는 함께 사용할 수 있습니다.

비호환 버전 범위

상하한을 지정하면 후보 v가 하한 이상이고, 상한 매처에 맞는 Release 버전 upper-bound 중 upper-bound >= v인 값이 있을 때 비호환 범위에 들어갑니다. 위 예시는 다음과 같습니다.

판정버전
비호환 범위에 포함9.3.6, 9.4.0, 9.4.2-rc1, 9.6.0-rc1, 9.6.1-22-g1a2b3c4
범위보다 낮음9.2.0
범위보다 높음10.0.0, 11.1.2-rc2, 9.7.0-1-gabcdef
비교 가능한 범위 판정 대상이 아님9.5.0-custom-branch

상한이 1.2.3이면 1.2.3과 1.2.3-rc4는 그 상한 안에 있지만 1.2.4와 1.2.3-4-gabcdef는 상한을 넘습니다. 일반 스냅샷은 같은 기본 버전의 Release보다 더 큽니다.