5.12. Operator 번들 검증
Operator 작성자는 Operator SDK에서 bundle validate 명령을 실행하여 Operator 번들의 콘텐츠 및 형식을 검증할 수 있습니다. 원격 Operator 번들 이미지 또는 로컬 Operator 번들 디렉터리에서 명령을 실행할 수 있습니다.
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