5.8.4. Operator Lifecycle Manager에서 Operator 업그레이드 테스트
인덱스 이미지 및 카탈로그 소스를 수동으로 관리하지 않아도 Operator SDK에서 OLM(Operator Lifecycle Manager) 통합을 사용하여 Operator 업그레이드를 신속하게 테스트할 수 있습니다.
run bundle-upgrade 하위 명령은 최신 버전의 번들 이미지를 지정하여 설치된 Operator가 최신 버전으로 업그레이드되도록 트리거하는 작업을 자동화합니다.
사전 요구 사항
-
run bundle하위 명령을 사용하거나 기존 OLM 설치와 함께 OLM과 함께 Operator 설치 - 번들 이미지에 설치된 Operator의 최신 버전이 표시됨
프로세스
OLM을 사용하여 Operator가 아직 설치되지 않은 경우
run bundle하위 명령을 사용하거나 기존 OLM 설치와 함께 이전 버전을 설치합니다.참고OLM을 사용하여 이전 버전의 번들이 설치된 경우 카탈로그 소스에서 참조하는 인덱스 이미지에 업그레이드하려는 최신 번들이 없어야 합니다. 그렇지 않으면 패키지 및 CSV(클러스터 서비스 버전)를 제공하는 인덱스에서 최신 번들을 이미 참조하므로
run bundle-upgrade하위 명령을 실행하면 레지스트리 pod가 실패합니다.예를 들어 이전 번들 이미지를 지정하여 Memcached Operator에 다음
run bundle하위 명령을 사용할 수 있습니다.$ operator-sdk run bundle <registry>/<user>/memcached-operator:v0.0.1출력 예
INFO[0006] Creating a File-Based Catalog of the bundle "quay.io/demo/memcached-operator:v0.0.1" INFO[0008] Generated a valid File-Based Catalog INFO[0012] Created registry pod: quay-io-demo-memcached-operator-v1-0-1 INFO[0012] Created CatalogSource: memcached-operator-catalog INFO[0012] OperatorGroup "operator-sdk-og" created INFO[0012] Created Subscription: memcached-operator-v0-0-1-sub INFO[0015] Approved InstallPlan install-h9666 for the Subscription: memcached-operator-v0-0-1-sub INFO[0015] Waiting for ClusterServiceVersion "my-project/memcached-operator.v0.0.1" to reach 'Succeeded' phase INFO[0015] Waiting for ClusterServiceVersion ""my-project/memcached-operator.v0.0.1" to appear INFO[0026] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.1" phase: Pending INFO[0028] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.1" phase: Installing INFO[0059] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.1" phase: Succeeded INFO[0059] OLM has successfully installed "memcached-operator.v0.0.1"최신 Operator 버전에 번들 이미지를 지정하여 설치한 Operator를 업그레이드합니다.
$ operator-sdk run bundle-upgrade <registry>/<user>/memcached-operator:v0.0.2출력 예
INFO[0002] Found existing subscription with name memcached-operator-v0-0-1-sub and namespace my-project INFO[0002] Found existing catalog source with name memcached-operator-catalog and namespace my-project INFO[0008] Generated a valid Upgraded File-Based Catalog INFO[0009] Created registry pod: quay-io-demo-memcached-operator-v0-0-2 INFO[0009] Updated catalog source memcached-operator-catalog with address and annotations INFO[0010] Deleted previous registry pod with name "quay-io-demo-memcached-operator-v0-0-1" INFO[0041] Approved InstallPlan install-gvcjh for the Subscription: memcached-operator-v0-0-1-sub INFO[0042] Waiting for ClusterServiceVersion "my-project/memcached-operator.v0.0.2" to reach 'Succeeded' phase INFO[0019] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.2" phase: Pending INFO[0042] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.2" phase: InstallReady INFO[0043] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.2" phase: Installing INFO[0044] Found ClusterServiceVersion "my-project/memcached-operator.v0.0.2" phase: Succeeded INFO[0044] Successfully upgraded to "memcached-operator.v0.0.2"설치된 Operator를 정리합니다.
$ operator-sdk cleanup memcached-operator