This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.4.6.2. Ansible 기반 Operator를 로컬에서 테스트
Operator 프로젝트의 최상위 디렉터리에서 make run
명령을 사용하여 로컬에서 실행되는 Ansible 기반 Operator 내부의 논리를 테스트할 수 있습니다. make run
Makefile 대상은 watches.yaml
파일에서 읽고 ~/.kube/config
파일을 사용하여 k8s
모듈과 같은 방식으로 Kubernetes 클러스터와 통신하는 ansible-operator
바이너리를 로컬로 실행합니다.
환경 변수 ANSIBLE_ROLES_PATH
를 설정하거나 ansible-roles-path
플래그를 사용하여 역할 경로를 사용자 정의할 수 있습니다. ANSIBLE_ROLES_PATH
값에 역할이 없는 경우 Operator는 {{current directory}}/roles
에서 역할을 찾습니다.
사전 요구 사항
- Ansible Runner 버전 v1.1.0 이상
- Ansible Runner HTTP Event Emitter 플러그인 버전 v1.0.0 이상
- Kubernetes 컬렉션을 로컬에서 테스트하는 데 필요한 이전 단계 수행
프로세스
CR(사용자 정의 리소스)에 대한 CRD(사용자 정의 리소스 정의) 및 적절한 RBAC(역할 기반 액세스 제어) 정의를 설치합니다.
make install
$ make install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
/usr/bin/kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/memcacheds.cache.example.com created
/usr/bin/kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/memcacheds.cache.example.com created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow make run
명령을 실행합니다.make run
$ make run
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이제 Operator에서 이벤트의 CR을 조사하므로 CR을 생성하면 Ansible 역할이 실행됩니다.
참고config/samples/<gvk>.yaml
CR 매니페스트 예제를 살펴보십시오.apiVersion: <group>.example.com/v1alpha1 kind: <kind> metadata: name: "<kind>-sample"
apiVersion: <group>.example.com/v1alpha1 kind: <kind> metadata: name: "<kind>-sample"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec
필드가 설정되지 않았기 때문에 추가 변수 없이 Ansible이 호출됩니다. CR에서 Ansible로 추가 변수를 전달하는 방법은 다른 섹션에서 설명합니다. Operator에 적절한 기본값을 설정하는 것이 중요합니다.기본 변수
state
를present
로 설정하여 CR 인스턴스를 생성합니다.oc apply -f config/samples/<gvk>.yaml
$ oc apply -f config/samples/<gvk>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow example-config
구성 맵이 생성되었는지 확인합니다.oc get configmaps
$ oc get configmaps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS AGE example-config Active 3s
NAME STATUS AGE example-config Active 3s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow config/samples/<gvk>.yaml
파일을 수정하여state
필드를absent
로 설정합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 변경 사항을 적용합니다.
oc apply -f config/samples/<gvk>.yaml
$ oc apply -f config/samples/<gvk>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 맵이 삭제되었는지 확인합니다.
oc get configmap
$ oc get configmap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow