Kubernetes Fabric8 API
Ich verwende derzeit die Fabric8-API, um Inhalte von PODs, Diensten usw. zu lesen.
KubernetesClient client = new DefaultKubernetesClient();
client.configMaps().withName("ConfigMapName");
Gibt es eine Möglichkeit, Inhalte von HTTPProxy von httpproxies der API-Gruppe projectcontour.io abzurufen?
Danke im Voraus!!!
Antworten
HTTPProxyscheint eine benutzerdefinierte Ressource zu sein . Der Kubernetes-Client bietet eine typisierte API (in der Sie POJOs für Ihre benutzerdefinierte Ressource bereitstellen müssen) und eine typenlose API (Manipulation benutzerdefinierter Ressourcen mithilfe von unformatierten HashMaps). Hier ist ein Beispiel, wie Sie dies mithilfe der typenlosen API tun können:
try (KubernetesClient client = new DefaultKubernetesClient()) {
CustomResourceDefinitionContext httpProxyContext = new CustomResourceDefinitionContext.Builder()
.withGroup("projectcontour.io") // <- Group of Custom Resource
.withVersion("v1") // <- Version of Custom Resource
.withPlural("httpproxies") // <- Plural form as specified in CRD
.withScope("Namespaced") // <- Whether Custom Resource is Cluster Scoped or Namespaced
.build();
// List all HTTPProxies
Map<String, Object> httpProxyList = client.customResource(httpProxyContext).list("ns1");
// Get a specific HTTPProxy
Map<String, Object> myHttpProxy = client.customResource(httpProxyContext).get("ns1", "tls-example");
}
Sie können wählen, welcher Ansatz Ihrer Meinung nach Ihren Anforderungen entspricht. Bei Interesse können Sie wahrscheinlich meine Blogs über diese Ansätze im Detail lesen:
- Umgang mit benutzerdefinierten Kubernetes-Ressourcen in Java mit Fabric8 Kubernetes Client: Teil 1 (typenlos)
- Umgang mit benutzerdefinierten Kubernetes-Ressourcen in Java mit Fabric8 Kubernetes Client: Teil-2 (typisiert)