4.5. 카탈로그 생성
카탈로그 유지 관리자는 OpenShift Container Platform의 OLM(Operator Lifecycle Manager) v1과 함께 사용할 파일 기반 카탈로그 형식으로 새 카탈로그를 생성할 수 있습니다.
4.5.1. 파일 기반 카탈로그 이미지 생성 링크 복사링크가 클립보드에 복사되었습니다!
opm CLI를 사용하여 더 이상 사용되지 않는 SQLite 데이터베이스 형식을 대체하는 일반 텍스트 파일 기반 카탈로그 형식(JSON 또는 YAML)을 사용하는 카탈로그 이미지를 생성할 수 있습니다.
사전 요구 사항
-
opmCLI를 설치했습니다. -
podman버전 1.9.3+이 있습니다. - 번들 이미지가 빌드되어 Docker v2-2 를 지원하는 레지스트리로 푸시됩니다.
프로세스
카탈로그를 초기화합니다.
다음 명령을 실행하여 카탈로그의 디렉터리를 생성합니다.
$ mkdir <catalog_dir>opm generate dockerfile명령을 실행하여 카탈로그 이미지를 빌드할 수 있는 Dockerfile을 생성합니다.$ opm generate dockerfile <catalog_dir> \ -i registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.211 - 1
-i플래그를 사용하여 공식 Red Hat 기본 이미지를 지정합니다. 그러지 않으면 Dockerfile에서 기본 업스트림 이미지를 사용합니다.
Dockerfile은 이전 단계에서 생성한 카탈로그 디렉터리와 동일한 상위 디렉터리에 있어야 합니다.
디렉터리 구조의 예
.1 ├── <catalog_dir>2 └── <catalog_dir>.Dockerfile3 opm init명령을 실행하여 카탈로그를 Operator의 패키지 정의로 채웁니다.$ opm init <operator_name> \1 --default-channel=preview \2 --description=./README.md \3 --icon=./operator-icon.svg \4 --output yaml \5 > <catalog_dir>/index.yaml6
opm render명령을 실행하여 카탈로그에 번들을 추가합니다.$ opm render <registry>/<namespace>/<bundle_image_name>:<tag> \1 --output=yaml \ >> <catalog_dir>/index.yaml2 번들에 채널 항목을 추가합니다. 예를 들어 다음 예제를 사양에 맞게 수정하고 <
catalog_dir>/index.yaml파일에 추가합니다.채널 항목 예
--- schema: olm.channel package: <operator_name> name: preview entries: - name: <operator_name>.v0.1.01 - 1
<operator_name>뒤의 마침표(.)를 버전v앞에 포함해야 합니다. 그렇지 않으면 항목이opm validate명령을 전달하지 못합니다.
파일 기반 카탈로그를 확인합니다.
카탈로그 디렉터리에 대해
opm validate명령을 실행합니다.$ opm validate <catalog_dir>오류 코드가
0인지 확인합니다.$ echo $?출력 예
0
podman build명령을 실행하여 카탈로그 이미지를 빌드합니다.$ podman build . \ -f <catalog_dir>.Dockerfile \ -t <registry>/<namespace>/<catalog_image_name>:<tag>카탈로그 이미지를 레지스트리로 푸시합니다.
필요한 경우
podman login명령을 실행하여 대상 레지스트리로 인증합니다.$ podman login <registry>podman push명령을 실행하여 카탈로그 이미지를 푸시합니다.$ podman push <registry>/<namespace>/<catalog_image_name>:<tag>