API de Kubernetes Fabric8

Sep 19 2020

Actualmente utilizo la API fabric8 para leer el contenido de POD, servicios, etc.

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

¿Hay alguna manera de recuperar el contenido de HTTPProxy de httpproxies del grupo api projectcontour.io?

¡¡¡Gracias por adelantado!!!

Respuestas

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxyparece ser un recurso personalizado . Kubernetes Client proporciona una API con tipo (donde debe proporcionar POJO para su recurso personalizado) y una API sin tipo (manipulación de recursos personalizados mediante HashMaps sin procesar). Aquí hay un ejemplo de cómo puede hacer esto usando la API Typeless:

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

Puede elegir el enfoque que crea que se adapta a sus necesidades. Si está interesado, probablemente pueda consultar mis blogs sobre estos enfoques en detalle:

  1. Manejo de recursos personalizados de Kubernetes en Java con Fabric8 Kubernetes Client: Part-1 (Typeless)
  2. Manejo de recursos personalizados de Kubernetes en Java con Fabric8 Kubernetes Client: Part-2 (Typed)