API Kubernetes Fabric8

Sep 19 2020

Atualmente, uso a API fabric8 para ler o conteúdo de PODs, serviços etc.

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

Existe uma maneira de recuperar o conteúdo do HTTPProxy de httpproxies do api group projectcontour.io?

Desde já, obrigado!!!

Respostas

1 RohanKumar Sep 20 2020 at 00:42

HTTPProxyparece ser um recurso personalizado . O cliente Kubernetes fornece uma API digitada (onde você precisa fornecer POJOs para seu recurso personalizado) e uma API sem tipo (manipulação de recursos personalizados usando HashMaps brutos). Aqui está um exemplo de como você pode fazer isso usando a 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");
}

Você pode escolher qualquer abordagem que considere adequada às suas necessidades. Se estiver interessado, você provavelmente pode verificar meus blogs sobre essas abordagens em detalhes:

  1. Manipulação de recursos personalizados do Kubernetes em Java usando o cliente Fabric8 Kubernetes: parte 1 (sem tipo)
  2. Manipulação de recursos personalizados do Kubernetes em Java usando o cliente Fabric8 Kubernetes: Parte 2 (digitado)