,假设我有以下代码片段,它设置了一个监视外部资源“external”的协调器:,我的问题是我无法将
somev1.external
类型导入到我的项目中,因为导入包含此类型的 go 模块会破坏我当前项目的依赖项。,kubebuilder 中有没有一种方法可以监视外部资源,而无需显式导入其类型?像 gvk 还是什么?,是的,这是可能的。,您可以在 main.go
中为您的资源创建 rest 客户端,如下所示:,然后将此 rest 客户端 (rest.interface
) 的字段添加到您的协调器 (yournativeresource_controller.go
) 结构中,例如:,最后,使用此 rest 客户端 (main.go
) 初始化您的协调器:,不要忘记将 rbac 标记添加到您的项目(最好是协调器),它将生成 rbac 规则,允许您操作 external
资源:,完成这些步骤后,您可以使用 rest 客户端通过 yournativeresource
协调器(使用 r.restclient
来操作 external
资源。,),编辑:,如果您想观看资源,动态客户端可能会有所帮助。在main.go
中创建动态客户端:,应用上述步骤,将其添加到您的协调器等中。然后您将能够观看 external
资源,如下所示:,