我有以下伪代码:
resp := a.CreateResource(a,b,c)
resp.status 对象有几种状态,如创建、挂起、可用。
我想添加控制器观察器,它将持续观察 resp.status 的变化,无论何时发生状态变化,都需要在日志或指标中捕获。
我正在使用以下方法:
resp := a.CreateResource(a,b,c)
status1= resp.status
//some delay
status2=resp.status
AddFunc: func(obj interface{}) {
fmt.Printf("Obj added: %s \n", obj)
},
DeleteFunc: func(obj interface{}) {
fmt.Printf("obj deleted: %s \n", obj)
},
UpdateFunc:func(status1, status2 interface{}) {
fmt.Printf("Status changed \n")
},
我想知道,我如何以这样的方式编写,它像轮询代理一样运行并检查状态变化。
模块参考 - sigs.k8s.io/controller-runtime/pkg/controller 和 k8s.io/client-go/kubernetes