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"

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.