API Kubernetes Fabric8

Sep 19 2020

J'utilise actuellement l'API fabric8 pour lire le contenu des POD, des services, etc.

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

Existe-t-il un moyen de récupérer le contenu de HTTPProxy à partir de httpproxies du groupe api projectcontour.io?

Merci d'avance!!!

Réponses

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxysemble être une ressource personnalisée . Kubernetes Client fournit une API typée (dans laquelle vous devez fournir des POJO pour votre ressource personnalisée) et une API sans type (manipulation de ressources personnalisées à l'aide de HashMaps bruts). Voici un exemple de la façon dont vous pouvez le faire à l'aide de 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");
}

Vous pouvez choisir l'approche qui, selon vous, correspond à vos besoins. Si vous êtes intéressé, vous pouvez probablement consulter mes blogs sur ces approches en détail:

  1. Gestion des ressources personnalisées Kubernetes en Java à l'aide du client Fabric8 Kubernetes: Partie 1 (sans type)
  2. Gestion des ressources personnalisées Kubernetes en Java à l'aide du client Fabric8 Kubernetes: partie 2 (typée)