Kubernetes Fabric8 API

Sep 19 2020

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

1 RohanKumar Sep 20 2020 at 00:42

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:

  1. Umgang mit benutzerdefinierten Kubernetes-Ressourcen in Java mit Fabric8 Kubernetes Client: Teil 1 (typenlos)
  2. Umgang mit benutzerdefinierten Kubernetes-Ressourcen in Java mit Fabric8 Kubernetes Client: Teil-2 (typisiert)