API Kubernetes Fabric8

Sep 19 2020

Attualmente utilizzo l'API fabric8 per leggere i contenuti di POD, servizi ecc.

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

Esiste un modo per recuperare i contenuti di HTTPProxy da htpproxies di api group projectcontour.io?

Grazie in anticipo!!!

Risposte

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxysembra essere una risorsa personalizzata . Il client Kubernetes fornisce un'API tipizzata (in cui è necessario fornire POJO per la risorsa personalizzata) e un'API senza tipo (manipolazione di risorse personalizzate utilizzando HashMap non elaborate). Ecco un esempio di come puoi farlo utilizzando l'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");
}

Puoi scegliere l'approccio che ritieni più adatto alle tue esigenze. Se sei interessato puoi probabilmente controllare i miei blog su questi approcci in dettaglio:

  1. Gestione delle risorse personalizzate Kubernetes in Java utilizzando il client Kubernetes Fabric8: parte 1 (senza tipo)
  2. Gestione delle risorse personalizzate Kubernetes in Java utilizzando il client Kubernetes Fabric8: parte 2 (digitato)