2.3.2. 패키지 매니페스트 형식

Operator를 위한 패키지 매니페스트 형식은 Operator 프레임워크에서 도입한 레거시 패키지 형식입니다. 이 형식은 OpenShift Container Platform 4.5에서 더 이상 사용되지 않지만 계속 지원되며 Red Hat에서 제공하는 Operator는 현재 이 메서드를 사용하여 제공됩니다.

이 형식에서는 Operator 버전이 단일 CSV(클러스터 서비스 버전)와 일반적으로 CSV의 고유 API를 정의하는 CRD(사용자 정의 리소스 정의)로 표시되지만 추가 오브젝트가 포함될 수 있습니다.

모든 Operator 버전은 단일 디렉터리에 중첩됩니다.

패키지 매니페스트 형식 레이아웃 예제

etcd
├── 0.6.1
│   ├── etcdcluster.crd.yaml
│   └── etcdoperator.clusterserviceversion.yaml
├── 0.9.0
│   ├── etcdbackup.crd.yaml
│   ├── etcdcluster.crd.yaml
│   ├── etcdoperator.v0.9.0.clusterserviceversion.yaml
│   └── etcdrestore.crd.yaml
├── 0.9.2
│   ├── etcdbackup.crd.yaml
│   ├── etcdcluster.crd.yaml
│   ├── etcdoperator.v0.9.2.clusterserviceversion.yaml
│   └── etcdrestore.crd.yaml
└── etcd.package.yaml

또한 패키지 이름 및 채널 세부 정보를 정의하는 패키지 매니페스트<name>.package.yaml 파일도 포함합니다.

패키지 매니페스트 예제

packageName: etcd
channels:
- name: alpha
  currentCSV: etcdoperator.v0.9.2
- name: beta
  currentCSV: etcdoperator.v0.9.0
- name: stable
  currentCSV: etcdoperator.v0.9.2
defaultChannel: alpha

Operator 레지스트리 데이터베이스에 패키지 매니페스트를 로드할 때 다음 요구 사항이 검증됩니다.

  • 모든 패키지에는 채널이 한 개 이상 있습니다.
  • 패키지의 채널이 가리키는 모든 CSV가 존재합니다.
  • Operator의 모든 버전에는 정확히 하나의 CSV가 있습니다.
  • CSV에서 CRD를 보유하는 경우 해당 CRD는 Operator 버전의 디렉터리에 있어야 합니다.
  • CSV가 교체되는 경우 기존 CSV와 새 CSV 둘 다 패키지에 있어야 합니다.