qingwave/mygame

请教一下,controller里面SetupWithManager函数的实现,能分享一下么?

t00350320 opened this issue · 1 comments

1、您在文章“https://qingwave.github.io/how-to-write-a-k8s-operator/#kubebuilder”的介绍的“默认情况下生成的controller只监听自定义资源,在示例中我们也需要监听game的子资源,如监听deployment是否符合预期”,发现github上没有此部分内容,还是原生的简单版本,

        ctrl.NewControllerManagedBy(mgr).
                WithOptions(controller.Options{
                        MaxConcurrentReconciles: 3,
                }).
                For(&myappv1.Game{}).
                Owns(&appsv1.Deployment{}).
                Complete(r)

        return nil

2、
make deploy之后,可以看到operator的信息,
myname-system myname-controller-manager-fcbc4bcfc-55ffr 2/2 Running 0 10m
但是,apply -f 之后,没有生成deployment实例,

root@bill-virtual-machine:/home/k8s_test/myname# kubectl get game
NAME          PHASE   HOST        DESIRED   CURRENT   READY   AGE
game-sample           mygame.io   2                           11m
root@bill-virtual-machine:/home/k8s_test/myname# kubectl get deploy game-sample
Error from server (NotFound): deployments.apps "game-sample" not found

看起来,像是operator没有监听到apply -f 的事件?想请教一下,您遇到这个场景么?

  1. 调用Owns(&appsv1.Deployment{})时已经监听了Deployment资源
  2. 可以看下对应operator的pod是否正常,有没有错误日志