5.12. 번들 형식으로 패키지 매니페스트 프로젝트 마이그레이션
Operator에 대한 레거시 패키지 매니페스트 형식 지원은 OpenShift Container Platform 4.8 이상에서 제거됩니다. 패키지 매니페스트 형식을 사용하여 처음 생성된 Operator 프로젝트가 있는 경우 Operator SDK를 사용하여 프로젝트를 번들 형식으로 마이그레이션할 수 있습니다. 번들 형식은 OpenShift Container Platform 4.6부터 OLM(Operator Lifecycle Manager)의 기본 패키징 형식입니다.
5.12.1. 패키징 형식 마이그레이션 정보
Operator SDK pkgman-to-bundle
명령은 OLM(Operator Lifecycle Manager) 패키지 매니페스트를 번들로 마이그레이션하는 데 도움이 됩니다. 명령은 입력 패키지 매니페스트 디렉터리를 사용하고 입력 디렉터리에 있는 각 매니페스트 버전에 대한 번들을 생성합니다. 그런 다음 생성된 각 번들에 대한 번들 이미지를 빌드할 수도 있습니다.
예를 들어 패키지 매니페스트 형식의 프로젝트에 대해 다음 packagemanifests/
디렉터리를 고려하십시오.
패키지 매니페스트 형식 레이아웃 예제
packagemanifests/ └── etcd ├── 0.0.1 │ ├── etcdcluster.crd.yaml │ └── etcdoperator.clusterserviceversion.yaml ├── 0.0.2 │ ├── etcdbackup.crd.yaml │ ├── etcdcluster.crd.yaml │ ├── etcdoperator.v0.0.2.clusterserviceversion.yaml │ └── etcdrestore.crd.yaml └── etcd.package.yaml
마이그레이션을 실행하면 bundle/
디렉터리에 다음 번들이 생성됩니다.
Bundle 형식 레이아웃의 예
bundle/ ├── bundle-0.0.1 │ ├── bundle.Dockerfile │ ├── manifests │ │ ├── etcdcluster.crd.yaml │ │ ├── etcdoperator.clusterserviceversion.yaml │ ├── metadata │ │ └── annotations.yaml │ └── tests │ └── scorecard │ └── config.yaml └── bundle-0.0.2 ├── bundle.Dockerfile ├── manifests │ ├── etcdbackup.crd.yaml │ ├── etcdcluster.crd.yaml │ ├── etcdoperator.v0.0.2.clusterserviceversion.yaml │ ├── etcdrestore.crd.yaml ├── metadata │ └── annotations.yaml └── tests └── scorecard └── config.yaml
생성된 이 레이아웃을 기반으로 두 번들의 번들 이미지도 다음 이름으로 빌드됩니다.
-
quay.io/example/etcd:0.0.1
-
quay.io/example/etcd:0.0.2
추가 리소스
5.12.2. 번들 형식으로 패키지 매니페스트 프로젝트 마이그레이션
Operator 작성자는 Operator SDK를 사용하여 패키지 매니페스트 형식 Operator 프로젝트를 번들 형식 프로젝트로 마이그레이션할 수 있습니다.
사전 요구 사항
- Operator SDK CLI가 설치됨
- 패키지 매니페스트 형식의 Operator SDK를 사용하여 처음에 Operator 프로젝트 생성
절차
Operator SDK를 사용하여 패키지 매니페스트 프로젝트를 번들 형식으로 마이그레이션하고 번들 이미지를 생성합니다.
$ operator-sdk pkgman-to-bundle <package_manifests_dir> \ 1 [--output-dir <directory>] \ 2 --image-tag-base <image_name_base> 3
- 1
- 프로젝트의 패키지 매니페스트 디렉터리(예:
packagemanifests/
또는manifests/
)의 위치를 지정합니다. - 2
- 선택 사항: 기본적으로 생성된 번들은
bundle/
디렉터리에 디스크에 로컬로 작성됩니다.--output-dir
플래그를 사용하여 대체 위치를 지정할 수 있습니다. - 3
- 번들에 사용할
quay.io/example/etcd
와 같은 이미지 이름의 기반을 제공하도록--image-tag-base
플래그를 설정합니다. 이미지 태그가 번들 버전에 따라 설정되므로 태그 없이 이름을 입력합니다. 예를 들어 전체 번들 이미지 이름이<image_name_base>:<bundle_version>
형식으로 생성됩니다.
검증
생성된 번들 이미지가 성공적으로 실행되는지 확인합니다.
$ operator-sdk run bundle <bundle_image_name>:<tag>
출력 예
INFO[0025] Successfully created registry pod: quay-io-my-etcd-0-9-4 INFO[0025] Created CatalogSource: etcd-catalog INFO[0026] OperatorGroup "operator-sdk-og" created INFO[0026] Created Subscription: etcdoperator-v0-9-4-sub INFO[0031] Approved InstallPlan install-5t58z for the Subscription: etcdoperator-v0-9-4-sub INFO[0031] Waiting for ClusterServiceVersion "default/etcdoperator.v0.9.4" to reach 'Succeeded' phase INFO[0032] Waiting for ClusterServiceVersion "default/etcdoperator.v0.9.4" to appear INFO[0048] Found ClusterServiceVersion "default/etcdoperator.v0.9.4" phase: Pending INFO[0049] Found ClusterServiceVersion "default/etcdoperator.v0.9.4" phase: Installing INFO[0064] Found ClusterServiceVersion "default/etcdoperator.v0.9.4" phase: Succeeded INFO[0065] OLM has successfully installed "etcdoperator.v0.9.4"