>백엔드 개발 >Golang >외부 유형을 가져오지 않고 kubebuilder에서 외부 사용자 정의 리소스 변경 사항을 모니터링하는 방법

외부 유형을 가져오지 않고 kubebuilder에서 외부 사용자 정의 리소스 변경 사항을 모니터링하는 방법

WBOY
WBOY앞으로
2024-02-06 10:00:11614검색

如何在 kubebuilder 中监视外部自定义资源更改而不导入外部类型

질문 내용

외부 리소스 "외부"를 모니터링하는 코디네이터를 설정하는 다음 코드 조각이 있다고 가정합니다.

으아아아

내 문제는 somev1.external 유형을 내 프로젝트로 가져올 수 없다는 것입니다. 이 유형이 포함된 go 모듈을 가져오면 현재 프로젝트의 종속성이 손상될 수 있기 때문입니다.

kubebuilder에서 해당 유형을 명시적으로 가져오지 않고 외부 리소스를 모니터링할 수 있는 방법이 있나요? gvk 같은 거요?


정답


네, 가능합니다.

다음과 같이 main.go에서 리소스에 대한 나머지 클라이언트를 만들 수 있습니다.

으아아아

그런 다음 나머지 클라이언트(rest.interface) 的字段添加到您的协调器 (yournativeresource_controller.go) 구조를 넣으세요. 예를 들면 다음과 같습니다.

으아아아

마지막으로 이 나머지 클라이언트(main.go)를 사용하여 코디네이터를 초기화하세요.

으아아아

Rbac 태그를 프로젝트(가급적 코디네이터)에 추가하는 것을 잊지 마세요. 그러면 작업을 허용하는 rbac 규칙이 생성됩니다. external 리소스:

으아아아

이 단계를 완료한 후 yournativeresource 코디네이터를 통해 나머지 클라이언트를 사용할 수 있습니다(r.restclient를 사용하여 yournativeresource 协调器(使用 r.restclient 来操作 external 리소스를 조작하세요.

).

편집자:

소스를 보고 싶다면 동적 클라이언트가 도움이 될 수 있습니다. main.go에서 동적 클라이언트 만들기:

으아아아

위 단계를 적용하고 코디네이터 등에 추가하세요. 그러면 아래와 같이 external 리소스를 볼 수 있습니다.

으아아아

위 내용은 외부 유형을 가져오지 않고 kubebuilder에서 외부 사용자 정의 리소스 변경 사항을 모니터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제