2.2.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 둘 다 패키지에 있어야 합니다.