在fabric8 Kubernetes客户端事件()API的Watcher中,我可以查看哪些资源?

时间:2017-04-24 22:16:18

标签: java events event-handling kubernetes fabric8

我正在(undocumented?) events() API探索Fabric8's Kubernetes client project

具体来说,我看到我可以做类似以下的事情:

client.events().inAnyNamespace().watch(new Watcher<Something>() {
    @Override
    public final void eventReceived(final Action action, final Something something) {

    }

    @Override
    public final void onClose(final KubernetesClientException kubernetesClientException) {
      if (kubernetesClientException != null) {
        // log? throw?
      }
    }
});

对于有用的事情,somethingSomething允许的值是多少?我假设他们假设是像Pods,Services等等,但我不确定。

Watcher's sole type parameter is declared as <T>,所以看起来我可以创建一个新的Watcher<Integer>,但我愿意打赌永远不会被调用的钱。这表明<T>实际上存在约束,但我不知道它是什么,或者为什么它会被省略。

如果我不得不猜测,我会从参数名称resource猜测它会像T extends Resource <?, ?>那样,但是,这只是猜测。

感谢您的任何指示,特别是对于我确定错过的其他文档。

更新#1 :从源代码中开始,我可以看到调用Watcher.Action eventReceived()方法的唯一地方{ {3}}。也许那是我的答案?

1 个答案:

答案 0 :(得分:1)

例如,您可以观看特定的pod或特定作业。在这种情况下,T类型分别是Pod或Job。试试

kube.extensions().jobs().createNew()...done().watch(new Watcher<Job>(){...})