我正在(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?
}
}
});
对于有用的事情,something
和Something
允许的值是多少?我假设他们假设是像Pods,Services等等,但我不确定。
Watcher
's sole type parameter is declared as <T>
,所以看起来我可以创建一个新的Watcher<Integer>
,但我愿意打赌永远不会被调用的钱。这表明<T>
实际上存在约束,但我不知道它是什么,或者为什么它会被省略。
如果我不得不猜测,我会从参数名称resource
猜测它会像T extends
Resource
<?, ?>
那样,但是,这只是猜测。
感谢您的任何指示,特别是对于我确定错过的其他文档。
更新#1 :从源代码中开始,我可以看到调用Watcher.Action
eventReceived()
方法的唯一地方{ {3}}。也许那是我的答案?
答案 0 :(得分:1)
例如,您可以观看特定的pod或特定作业。在这种情况下,T类型分别是Pod或Job。试试
kube.extensions().jobs().createNew()...done().watch(new Watcher<Job>(){...})