8장. OperatorGroup [operators.coreos.com/v1]
- 설명
- OperatorGroup은 OLM 관리 Operator의 멀티 테넌시 단위입니다. 네임스페이스에 있는 Operator 설치를 지정된 대상 네임스페이스 세트로 제한합니다.
- 유형
-
object
- 필수 항목
-
메타데이터
-
8.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| OperatorGroupSpec은 OperatorGroup 리소스의 사양입니다. |
|
| OperatorGroupStatus는 OperatorGroupResource의 상태입니다. |
8.1.1. .spec
- 설명
- OperatorGroupSpec은 OperatorGroup 리소스의 사양입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| selector는 OperatorGroup의 대상 네임스페이스를 선택합니다. |
|
| serviceAccountName은 이 Operator 그룹에 operator를 배포하는 데 사용할 admin 지정된 서비스 계정입니다. |
|
| 정적은 OLM이 OperatorGroup의 providedAPIs 주석을 업데이트하지 않도록 지시합니다. |
|
| targetNamespaces는 대상으로 하는 네임스페이스의 명시적 집합입니다. 설정되어 있으면 Selector가 무시됩니다. |
|
| UpgradeStrategy는 네임스페이스에서 Operator에 대한 업그레이드 전략을 정의합니다. 현재 지원되는 업그레이드 전략의 두 가지가 있습니다. Default: OLM에서는 clusterServiceVersions만 성공한 단계에서 교체 단계로 이동할 수 있습니다. 즉, 설치 또는 업그레이드가 실패한 경우 OLM에서 Operator를 다음 버전으로 이동할 수 없습니다. TechPreviewUnsafeFailForward: OLM을 사용하면 clusterServiceVersions가 성공 단계 또는 실패한 단계에서 교체 단계로 이동할 수 있습니다. 또한 서브스크립션에서 실패한 installPlan을 참조하고 기존 Operator 세트에 대한 새 업그레이드로 카탈로그가 업데이트되면 OLM에서 새 installPlans를 생성합니다. 경고: TechPreviewUnsafeFailForward 업그레이드 전략은 안전하지 않으며 네임스페이스에서 관리되는 Operator 세트를 깊이 인식하지 않는 한 예기치 않은 동작 또는 복구할 수 없는 데이터 손실이 발생할 수 있습니다. |
8.1.2. .spec.selector
- 설명
- selector는 OperatorGroup의 대상 네임스페이스를 선택합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| matchExpressions는 라벨 선택기 요구 사항 목록입니다. 요구 사항은 AND로 설정됩니다. |
|
| 레이블 선택기 요구 사항은 값, 키 및 키와 관련된 연산자를 포함하는 선택기입니다. |
|
| matchLabels는 {key,value} 쌍으로 구성된 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 "key"이고, 연산자는 "In"이고, values 배열에는 "value"만 포함된 matchExpressions 요소와 동일합니다. 요구 사항은 AND로 설정됩니다. |
8.1.3. .spec.selector.matchExpressions
- 설명
- matchExpressions는 라벨 선택기 요구 사항 목록입니다. 요구 사항은 AND로 설정됩니다.
- 유형
-
array
8.1.4. .spec.selector.matchExpressions[]
- 설명
- 레이블 선택기 요구 사항은 값, 키 및 키와 관련된 연산자를 포함하는 선택기입니다.
- 유형
-
object
- 필수 항목
-
key
-
operator
-
속성 | 유형 | 설명 |
---|---|---|
|
| key는 선택기가 적용되는 라벨 키입니다. |
|
| Operator는 일련의 값과의 키 관계를 나타냅니다. 유효한 연산자는 In, NotIn, Exists 및 DoesNotExist입니다. |
|
| 값은 문자열 값의 배열입니다. 연산자가 In 또는 NotIn인 경우 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 교체됩니다. |
8.1.5. .status
- 설명
- OperatorGroupStatus는 OperatorGroupResource의 상태입니다.
- 유형
-
object
- 필수 항목
-
lastUpdated
-
속성 | 유형 | 설명 |
---|---|---|
|
| conditions는 OperatorGroup의 조건 배열입니다. |
|
|
condition에는 이 API 리소스의 현재 상태에 대한 세부 정보가 포함됩니다. --- 이 구조는 필드 경로 .status.conditions에서 배열로 직접 사용하기 위한 것입니다. 예를 들어 FooStatus struct{ // foo의 현재 상태의 관찰을 나타냅니다. // knownn .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchStrategy=merge // +listType=map // +listKey=type // +listKey=type [] |
|
| LastUpdated는 OperatorGroup의 상태가 업데이트된 마지막 타임스탬프입니다. |
|
| namespaces는 OperatorGroup의 대상 네임스페이스 세트입니다. |
|
| ServiceAccountRef는 지정된 서비스 계정 오브젝트를 참조합니다. |
8.1.6. .status.conditions
- 설명
- conditions는 OperatorGroup의 조건 배열입니다.
- 유형
-
array
8.1.7. .status.conditions[]
- 설명
-
condition에는 이 API 리소스의 현재 상태에 대한 세부 정보가 포함됩니다. --- 이 구조는 필드 경로 .status.conditions에서 배열로 직접 사용하기 위한 것입니다. 예를 들어 FooStatus struct{ // foo의 현재 상태의 관찰을 나타냅니다. // knownn .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchStrategy=merge // +listType=map // +listKey=type // +listKey=type []
omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"
// 기타 필드 } - 유형
-
object
- 필수 항목
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
속성 | 유형 | 설명 |
---|---|---|
|
| lastTransitionTime은 마지막으로 한 상태에서 다른 상태로 전환된 시간입니다. 기본 조건이 변경된 경우여야 합니다. 이를 알 수 없는 경우 API 필드가 변경된 시간을 사용합니다. |
|
| message는 변환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. 빈 문자열일 수 있습니다. |
|
| observedGeneration은 조건에 따라 설정된 .metadata.generation을 나타냅니다. 예를 들어 .metadata.generation이 현재 12이지만 .status.conditions[x].observedGeneration이 9인 경우 현재 인스턴스 상태와 관련된 조건이 최신 상태가 아닙니다. |
|
| 이유에는 조건의 마지막 전환 이유를 나타내는 프로그래밍 식별자가 포함되어 있습니다. 특정 조건 유형의 생산자는 이 필드에 예상되는 값과 의미를 정의할 수 있으며 값이 보장된 API로 간주되는지 여부를 정의할 수 있습니다. 값은 CamelCase 문자열이어야 합니다. 이 필드는 비어 있지 않을 수 있습니다. |
|
| 조건의 상태, True, False, 알 수 없음. |
|
| CamelCase 또는 foo.example.com/CamelCase의 조건 유형. --- many .condition.type 값은 Available와 같은 리소스 간에 일관되지만 임의의 조건이 유용할 수 있으므로 (.node.status.conditions 참조), deconflict 기능이 중요합니다. 정규 표현식이 일치하는 정규 표현식은 (dns1123SubdomainFmt/)?(qualifiedNameFmt)입니다. |
8.1.8. .status.serviceAccountRef
- 설명
- ServiceAccountRef는 지정된 서비스 계정 오브젝트를 참조합니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| 참조의 API 버전입니다. |
|
| 전체 오브젝트 대신 오브젝트 조각을 참조하는 경우 이 문자열에는 desiredState.manifest.containers[2]와 같은 유효한 JSON/Go 필드 액세스 문이 포함되어야 합니다. 예를 들어 오브젝트 참조가 Pod 내의 컨테이너에 대한 경우 "spec.containers{name}"과 같은 값을 사용합니다(여기서 "name"은 이벤트를 트리거한 컨테이너 이름을 참조하거나 컨테이너 이름이 "spec.containers[2]"이 Pod에서 인덱스 2가 있는 컨테이너를 참조하는 경우). 이 구문은 오브젝트의 일부를 참조하는 잘 정의된 방법을 사용하는 경우에만 선택됩니다. TODO: 이 설계는 최종적이지 않으며 이 필드는 향후 변경될 수 있습니다. |
|
| 일종의 추천입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 추천자의 이름입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 참조의 네임스페이스입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 이 참조가 수행되는 특정 resourceVersion(있는 경우). 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 참조의 UID입니다. 자세한 내용은 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |