Kubernetes Fabric8 API

Sep 19 2020

Obecnie używam interfejsu API fabric8 do odczytywania zawartości POD, usług itp.

KubernetesClient client = new DefaultKubernetesClient();
client.configMaps().withName("ConfigMapName");

Czy istnieje sposób na pobranie zawartości HTTPProxy z httpproxy grupy API projectcontour.io?

Z góry dziękuję!!!

Odpowiedzi

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxywydaje się być zasobem niestandardowym . Kubernetes Client zapewnia typowany interfejs API (gdzie musisz dostarczyć POJO dla swojego niestandardowego zasobu) i beztypowy interfejs API (manipulacja niestandardowymi zasobami przy użyciu surowych HashMaps). Oto przykład, jak można to zrobić za pomocą interfejsu API bez typów:

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");
}

Możesz wybrać dowolne podejście, które Twoim zdaniem odpowiada Twoim potrzebom. Jeśli jesteś zainteresowany, możesz prawdopodobnie sprawdzić moje blogi o tych podejściach szczegółowo:

  1. Obsługa niestandardowych zasobów Kubernetes w języku Java przy użyciu klienta Fabric8 Kubernetes: część 1 (bez typu)
  2. Obsługa niestandardowych zasobów Kubernetes w języku Java za pomocą klienta Fabric8 Kubernetes: część 2 (wpisana na maszynie)