5.4.6.3. 클러스터에서 Ansible 기반 Operator 테스트
Operator 내부에서 로컬로 사용자 정의 Ansible 논리를 테스트하면 OpenShift Container Platform 클러스터의 Pod 내부에서 Operator를 테스트할 수 있습니다. 이 방법은 프로덕션 용도로 선호됩니다.
Operator 프로젝트를 클러스터에서 배포로 실행할 수 있습니다.
프로세스
다음
make
명령을 실행하여 Operator 이미지를 빌드하고 내보냅니다. 액세스할 수 있는 리포지토리를 참조하려면 다음 단계에서IMG
인수를 수정합니다. Quay.io와 같은 리포지토리 사이트에 컨테이너를 저장하기 위해 계정을 받을 수 있습니다.이미지를 빌드합니다.
$ make docker-build IMG=<registry>/<user>/<image_name>:<tag>
참고Operator에 대해 SDK에서 생성한 Dockerfile은
Go 빌드
를 위해GOARCH=amd64
를 명시적으로 참조합니다. 이는AMD64 이외의 아키텍처의 경우GOARCH=$CACHEGETARCH
에 수정될 수 있습니다. Docker는 환경 변수를-platform
에서 지정한 값으로 자동 설정합니다. Buildah를 사용하면-build-arg
를 목적으로 사용해야 합니다. 자세한 내용은 여러 아키텍처를 참조하십시오.이미지를 리포지토리로 내보냅니다.
$ make docker-push IMG=<registry>/<user>/<image_name>:<tag>
참고두 명령 모두 이미지의 이름과 태그(예:
IMG=<registry>/<user>/<image_name>:<tag>
)를 Makefile에 설정할 수 있습니다. 기본 이미지 이름을 설정하려면IMG ?= controller:latest
값을 수정합니다.
다음 명령을 실행하여 Operator를 배포합니다.
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
기본적으로 이 명령은
<project_name>-system
형식으로 된 Operator 프로젝트 이름을 사용하여 네임스페이스를 생성하고 배포에 사용됩니다. 이 명령은 또한config/rbac
에서 RBAC 매니페스트를 설치합니다.Operator가 실행 중인지 확인합니다.
$ oc get deployment -n <project_name>-system
출력 예
NAME READY UP-TO-DATE AVAILABLE AGE <project_name>-controller-manager 1/1 1 1 8m