使用fabric8的KubernetesClient,如何构建特定Kubernetes资源的URL?

时间:2017-06-15 20:04:39

标签: java kubernetes fabric8

我想做Kubernetes Go客户端创建URL资源的Java等价物,而不必手动构建它。

在Go中,使用Kubernetes' client-go/rest/client.go,它是这样的:

u := client.Post()
  .Resource("pods")
  .Namespace("fred")
  .Name("podname")
  .URL()

(注意:我不是Go程序员。)

undocumented KubernetesClient interface中没有任何内容可以让我做同等的事情。有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

看起来我可以这样做:

final DefaultKubernetesClient client = new DefaultKubernetesClient();
final NonNamespaceOperation<Pod, PodList, DoneablePod, PodResource<Pod, DoneablePod>> foo = client.pods().inNamespace("kube-system");
  assert foo instanceof OperationSupport;
  final URL url = ((OperationSupport)foo).getNamespacedUrl();

显然,从超级清晰的角度来看,这并不是很好(pods()的返回值只是OperationSupport,因为它的实现方式,而不是合同),但它是一种方式做到这一点。