기타
[Golang] missing method Destroy 에러 해결(apiserver-runtime)
KyuminKim
2024. 11. 9. 22:50
개발 환경
문제
apiserver-runtime을 이용해 k8s 관련하여 개발하다,
/Users/username/go/pkg/mod/sigs.k8s.io/apiserver-runtime@v1.1.1/pkg/builder/rest/provider.go:60:10:
cannot use parentPlumbedStorageGetterUpdaterProvider{…}
(value of type parentPlumbedStorageGetterUpdaterProvider) as "k8s.io/apiserver/pkg/registry/rest".Storage value
in return statement: parentPlumbedStorageGetterUpdaterProvider does not implement "k8s.io/apiserver/pkg/registry/rest".Storage
(missing method Destroy)
다음과 같은
missing method Destroy 에러를 마주했다.
원인
https://github.com/kubernetes-sigs/apiserver-runtime/blob/main/pkg/builder/rest/provider.go
apiserver-runtime/pkg/builder/rest/provider.go at main · kubernetes-sigs/apiserver-runtime
Libraries for implementing aggregated apiservers. Contribute to kubernetes-sigs/apiserver-runtime development by creating an account on GitHub.
github.com
공식 레포지토리와 비교하였을 때,
공식 레포: 105번 줄에 Destroy 함수를 implement하는 코드가 포함되어 있는데,
현재 내 파일: 해당 코드가 없다 !!
시도
시도 1 (실패)
/Users/username/go/pkg/mod/sigs.k8s.io/apiserver-runtime@v1.1.1/pkg/builder/rest/provider.go:60:10:
cannot use parentPlumbedStorageGetterUpdaterProvider{…}
(value of type parentPlumbedStorageGetterUpdaterProvider) as "k8s.io/apiserver/pkg/registry/rest".Storage value
in return statement: parentPlumbedStorageGetterUpdaterProvider does not implement "k8s.io/apiserver/pkg/registry/rest".Storage
(missing method Destroy)
에러 로그를 보니,
k8s.io/apiserver/pkg/registry/rest에 문제가 있나 싶어 새롭게 다운로드 해줬다.
$ go get k8s.io/apiserver/pkg/registry/rest@latest
해결
문제 원인 단계에서 인지한 대로,
로컬 파일의 apiserver-runtime 패키지 코드를 수정한다!
수정 파일:
/Users/username/go/pkg/mod/sigs.k8s.io/apiserver-runtime@v1.1.1/pkg/builder/rest/provider.go:60:10:
추가 내용:
이후 goland에서 invalidate cache를 하고 재접속시 !!!
잘 동작하는 것을 볼 수 있다!
(야호~~~!!)