5.12. Operator 번들 검증
Operator 작성자는 Operator SDK에서 bundle validate 명령을 실행하여 Operator 번들의 콘텐츠 및 형식을 검증할 수 있습니다. 원격 Operator 번들 이미지 또는 로컬 Operator 번들 디렉터리에서 명령을 실행할 수 있습니다.
Operator 프로젝트의 관련 스캐폴딩 및 테스트 툴을 포함한 Red Hat 지원 버전의 Operator SDK CLI 툴은 더 이상 사용되지 않으며 향후 OpenShift Container Platform 릴리스에서 제거될 예정입니다. Red Hat은 현재 릴리스 라이프사이클 동안 이 기능에 대한 버그 수정 및 지원을 제공하지만 이 기능은 더 이상 개선 사항을 받지 않으며 향후 OpenShift Container Platform 릴리스에서 제거됩니다.
새 Operator 프로젝트를 생성하는 데 Red Hat 지원 버전의 Operator SDK는 권장되지 않습니다. 기존 Operator 프로젝트가 있는 Operator 작성자는 OpenShift Container Platform 4.17과 함께 릴리스된 Operator SDK CLI 툴 버전을 사용하여 프로젝트를 유지 관리하고 최신 버전의 OpenShift Container Platform을 대상으로 하는 Operator 릴리스를 생성할 수 있습니다.
Operator 프로젝트의 다음과 같은 관련 기본 이미지는 더 이상 사용되지 않습니다. 이러한 기본 이미지의 런타임 기능 및 구성 API는 버그 수정 및 CVE 문제를 해결하는 데 계속 지원됩니다.
- Ansible 기반 Operator 프로젝트의 기본 이미지
- Helm 기반 Operator 프로젝트의 기본 이미지
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
지원되지 않는 커뮤니티 유지 관리 버전에 대한 자세한 내용은 Operator SDK(Operator Framework) 를 참조하십시오.
5.12.1. bundle validate 명령 정보 링크 복사링크가 클립보드에 복사되었습니다!
Operator SDK scorecard 명령은 구성 파일 및 테스트 이미지를 기반으로 Operator에서 테스트를 실행할 수 있지만 bundle validate 하위 명령은 콘텐츠 및 구조에 대한 로컬 번들 디렉터리 및 원격 번들 이미지를 검증할 수 있습니다.
bundle validate 명령 구문
$ operator-sdk bundle validate <bundle_dir_or_image> <flags>
make bundle 명령을 사용하여 번들을 빌드할 때 bundle validate 명령이 자동으로 실행됩니다.
번들 이미지는 유효성을 검사하기 전에 원격 레지스트리에서 가져와서 로컬로 빌드됩니다. 로컬 번들 디렉터리에는 Operator 메타데이터 및 매니페스트가 포함되어야 합니다. 번들 메타데이터 및 매니페스트에는 다음 번들 레이아웃과 유사한 구조가 있어야 합니다.
번들 레이아웃의 예
./bundle
├── manifests
│ ├── cache.my.domain_memcacheds.yaml
│ └── memcached-operator.clusterserviceversion.yaml
└── metadata
└── annotations.yaml
번들 테스트는 검증을 통과하고 오류가 없는 경우 종료 코드 0 으로 완료합니다.
출력 예
INFO[0000] All validation tests have completed successfully
테스트는 검증에 실패하고 오류가 감지되면 종료 코드 1 로 완료합니다.
출력 예
ERRO[0000] Error: Value cache.example.com/v1alpha1, Kind=Memcached: CRD "cache.example.com/v1alpha1, Kind=Memcached" is present in bundle "" but not defined in CSV
경고가 발생하는 번들 테스트에서는 오류가 발견되지 않는 한 종료 코드 0 을 사용하여 검증을 계속 전달할 수 있습니다. 테스트는 오류에서만 실패합니다.
출력 예
WARN[0000] Warning: Value : (memcached-operator.v0.0.1) annotations not found
INFO[0000] All validation tests have completed successfully
bundle validate 하위 명령에 대한 자세한 내용을 보려면 다음을 실행합니다.
$ operator-sdk bundle validate -h