2.4.4.4.2. 복합 제약 조건 (모두, 일부, 아님)
복합 제약 조건 유형은 논리 정의에 따라 평가됩니다.
다음은 두 패키지의 연속 제약 조건(모두)과 하나의 GVK의 예입니다. 즉, 설치된 번들로 모두 충족해야 합니다.
모든 제약 조건의 예
schema: olm.bundle
name: red.v1.0.0
properties:
- type: olm.constraint
value:
failureMessage: All are required for Red because...
all:
constraints:
- failureMessage: Package blue is needed for...
package:
name: blue
versionRange: '>=1.0.0'
- failureMessage: GVK Green/v1 is needed for...
gvk:
group: greens.example.com
version: v1
kind: Green
다음은 동일한 GVK의 세 가지 버전의 disjunctive 제약 조건 (any)의 예입니다. 즉, 설치된 번들로 하나 이상을 충족해야 합니다.
제약 조건 예
schema: olm.bundle
name: red.v1.0.0
properties:
- type: olm.constraint
value:
failureMessage: Any are required for Red because...
any:
constraints:
- gvk:
group: blues.example.com
version: v1beta1
kind: Blue
- gvk:
group: blues.example.com
version: v1beta2
kind: Blue
- gvk:
group: blues.example.com
version: v1
kind: Blue
다음은 하나의 GVK 버전의 부정 제약 조건(Not)의 예입니다. 즉 결과 집합의 모든 번들에서 GVK를 제공할 수 없습니다.
제약 조건이 아닌 예
schema: olm.bundle
name: red.v1.0.0
properties:
- type: olm.constraint
value:
all:
constraints:
- failureMessage: Package blue is needed for...
package:
name: blue
versionRange: '>=1.0.0'
- failureMessage: Cannot be required for Red because...
not:
constraints:
- gvk:
group: greens.example.com
version: v1alpha1
kind: greens
부정 의미 체계는 제약 조건이 아닌 컨텍스트에서 명확하지 않을 수 있습니다. 명확히하기 위해 부정은 특정 GVK, 버전에서 패키지 또는 결과 세트에서 일부 하위 복합 제약 조건을 충족하는 가능한 솔루션을 제거하도록 해결자에게 실제로 지시하고 있습니다.
코롤리(corollary)로서, not compound constraint는 모든 또는 임의의 제약 조건 내에서만 사용해야 하는데, 이는 우선 가능한 종속성 세트를 선택하지 않고 부정하는 것은 의미가 없기 때문입니다.