4.5. 카탈로그 만들기
카탈로그 유지 관리자는 OpenShift Container Platform의 Operator Lifecycle Manager(OLM) v1에서 사용할 파일 기반 카탈로그 형식으로 새 카탈로그를 만들 수 있습니다.
4.5.1. 파일 기반 카탈로그 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
opm
CLI를 사용하면 더 이상 사용되지 않는 SQLite 데이터베이스 형식을 대체하는 일반 텍스트 파일 기반 카탈로그 형식(JSON 또는 YAML)을 사용하는 카탈로그 이미지를 만들 수 있습니다.
사전 요구 사항
-
opm
CLI를 설치했습니다. -
podman
버전 1.9.3+이 있습니다. - 번들 이미지가 빌드되어 Docker v2-2 를 지원하는 레지스트리로 푸시됩니다.
프로세스
카탈로그를 초기화합니다.
다음 명령을 실행하여 카탈로그에 대한 디렉토리를 만듭니다.
mkdir <catalog_dir>
$ mkdir <catalog_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow opm generate dockerfile
명령을 실행하여 카탈로그 이미지를 빌드할 수 있는 Dockerfile을 생성합니다.opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.19 -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.19
$ opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.19
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
-i
플래그를 사용하여 공식 Red Hat 기본 이미지를 지정하세요. 그렇지 않으면 Dockerfile은 기본 업스트림 이미지를 사용합니다.
Dockerfile은 이전 단계에서 생성한 카탈로그 디렉터리와 동일한 상위 디렉터리에 있어야 합니다.
디렉터리 구조의 예
. ├── <catalog_dir> └── <catalog_dir>.Dockerfile
.
1 ├── <catalog_dir>
2 └── <catalog_dir>.Dockerfile
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow opm init
명령을 실행하여 카탈로그를 Operator의 패키지 정의로 채웁니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 지정된 카탈로그 구성 파일에
olm.package
선언적 구성 blob을 생성합니다.
opm render
명령을 실행하여 카탈로그에 번들을 추가합니다.opm render <registry>/<namespace>/<bundle_image_name>:<tag> \ --output=yaml \ >> <catalog_dir>/index.yaml
$ opm render <registry>/<namespace>/<bundle_image_name>:<tag> \
1 --output=yaml \ >> <catalog_dir>/index.yaml
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고채널에는 하나 이상의 번들이 포함되어야 합니다.
번들에 채널 항목을 추가합니다. 예를 들어, 다음 예를 귀하의 사양에 맞게 수정하고
<catalog_dir>/index.yaml
파일에 추가하세요.채널 항목 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<operator_name>
뒤의 마침표(.
)를 버전v
앞에 포함해야 합니다. 그렇지 않으면 해당 항목은opm validate
명령을 통과하지 못합니다.
파일 기반 카탈로그를 확인합니다.
카탈로그 디렉터리에 대해
opm validate
명령을 실행합니다.opm validate <catalog_dir>
$ opm validate <catalog_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오류 코드가
0
인지 확인합니다.echo $?
$ echo $?
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
0
0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
podman build
명령을 실행하여 카탈로그 이미지를 빌드합니다.podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 카탈로그 이미지를 레지스트리로 푸시합니다.
필요한 경우
podman login
명령을 실행하여 대상 레지스트리에 인증합니다.podman login <registry>
$ podman login <registry>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman push
명령을 실행하여 카탈로그 이미지를 푸시합니다.podman push <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman push <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5.2. 파일 기반 카탈로그 이미지 업데이트 또는 필터링 링크 복사링크가 클립보드에 복사되었습니다!
opm
CLI를 사용하면 파일 기반 카탈로그 형식을 사용하는 카탈로그 이미지를 업데이트하거나 필터링할 수 있습니다. 기존 카탈로그 이미지의 내용을 추출하면 필요에 따라 카탈로그를 수정할 수 있습니다. 예:
- 패키지 추가
- 패키지 제거
- 기존 패키지 항목 업데이트
- 패키지, 채널 및 번들별 사용 중단 메시지 세부 정보
그런 다음 카탈로그의 업데이트된 버전으로 이미지를 다시 빌드할 수 있습니다.
또는 미러 레지스트리에 이미 카탈로그 이미지가 있는 경우 oc-mirror CLI 플러그인을 사용하여 해당 카탈로그 이미지의 업데이트된 소스 버전에서 제거된 모든 이미지를 자동으로 정리한 다음 대상 레지스트리에 미러링할 수 있습니다.
oc-mirror 플러그인과 이 사용 사례에 대한 자세한 내용은 "미러 레지스트리 콘텐츠를 최신 상태로 유지하기" 섹션과 특히 "oc-mirror 플러그인을 사용하여 연결이 끊긴 설치에 대한 이미지 미러링"의 "이미지 정리" 하위 섹션을 참조하세요.
사전 요구 사항
귀하의 워크스테이션에는 다음이 있습니다.
-
opm
CLI. -
podman
버전 1.9.3+. - 파일 기반 카탈로그 이미지.
이 카탈로그와 관련된 카탈로그 디렉토리 구조가 최근 귀하의 워크스테이션에서 초기화되었습니다.
초기화된 카탈로그 디렉터리가 없는 경우 디렉터리를 생성하고 Dockerfile을 생성합니다. 자세한 내용은 "파일 기반 카탈로그 이미지 만들기" 절차의 "카탈로그 초기화" 단계를 참조하세요.
-
프로세스
카탈로그 이미지의 내용을 YAML 형식으로 추출하여 카탈로그 디렉토리의
index.yaml
파일에 저장합니다.opm render <registry>/<namespace>/<catalog_image_name>:<tag> \ -o yaml > <catalog_dir>/index.yaml -o yaml > <catalog_dir>/index.yaml
$ opm render <registry>/<namespace>/<catalog_image_name>:<tag> \ -o yaml > <catalog_dir>/index.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고또는
-o json
플래그를 사용하여 JSON 형식으로 출력할 수 있습니다.결과
index.yaml
파일의 내용을 사양에 맞게 수정하세요.중요카탈로그에 번들이 게시된 후 사용자 중 한 명이 해당 번들을 설치했다고 가정합니다. 해당 버전을 설치한 사용자가 고립되는 것을 방지하기 위해 카탈로그에 게시된 모든 번들에 현재 또는 최신 채널 헤드에 대한 업데이트 경로가 있는지 확인하세요.
- 운영자를 추가하려면 "파일 기반 카탈로그 이미지 만들기" 절차에서 패키지, 번들 및 채널 항목을 만드는 단계를 따르세요.
운영자를 제거하려면 패키지와 관련된
olm.package
,olm.channel
,olm.bundle
블롭 세트를 삭제합니다. 다음 예에서는 카탈로그에서example-operator
패키지를 제거하기 위해 삭제해야 하는 세트를 보여줍니다.예 4.9. 제거된 항목의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Operator에 대한 사용 중단 메시지를 추가하거나 업데이트하려면 패키지의
index.yaml
파일과 같은 디렉토리에deprecations.yaml
파일이 있는지 확인하세요.deprecations.yaml
파일 형식에 대한 자세한 내용은 "olm.deprecations 스키마"를 참조하세요.
- 변경 사항을 저장하십시오.
카탈로그 검증:
opm validate <catalog_dir>
$ opm validate <catalog_dir>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 카탈로그를 다시 작성하세요:
podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 카탈로그 이미지를 레지스트리에 푸시합니다.
podman push <registry>/<namespace>/<catalog_image_name>:<tag>
$ podman push <registry>/<namespace>/<catalog_image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
웹 콘솔에서 관리
클러스터 설정 구성 페이지에 있는 OperatorHub 구성 리소스로 이동합니다. 업데이트된 카탈로그 이미지에 대한 풀 사양을 사용하도록 카탈로그 소스를 추가하거나 기존 카탈로그 소스를 업데이트합니다.
자세한 내용은 이 섹션의 "추가 리소스"에서 "클러스터에 카탈로그 소스 추가"를 참조하세요.
-
카탈로그 소스가 준비 상태가 되면 운영자
운영자 허브 페이지로 이동하여 변경 사항이 운영자 목록에 반영되었는지 확인하세요.