我正在探索 (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
为了一些有用的事情发生?我假设它们应该是 Pod、服务等,但我不确定。
Watcher
's sole type parameter is declared as <T>
, 所以看起来我可以创建一个新的 Watcher<Integer>
, 但我愿意赌永远不会被跟注的钱。这表明 <T>
在实践中实际上存在界限。 ,但我不知道它是什么,或者如果是这样的话为什么会被省略。
如果非要我猜的话,我会根据参数名称来猜测,resource
, 它会像 T extends
Resource
<?, ?>
但同样,这只是一个猜测。
感谢您提供任何指示,尤其是对我确定我错过的其他文档的指示。
更新 #1:通过对源代码的研究,我可以看到唯一一个 Watcher.Action
的地方。的 eventReceived()
方法称为 forces the payload to be considered to be a HasMetadata
object .也许这就是我的答案?
最佳答案
例如,您可以观看特定的播客或特定的工作。这种情况下的 T 类型分别是 Pod 或 Job。尝试
kube.extensions().jobs().createNew()...done().watch(new Watcher<Job>(){...})
关于java - 在 fabric8 Kubernetes client events() API 中的 Watcher 中,我可以监视哪些资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43598572/