🚑 Services for resource types

This commit is contained in:
Andreas Dinauer 2025-06-07 12:01:10 +02:00
parent 16dbad150a
commit 4171cc86a3
5 changed files with 56 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.service.IngressService;
import dev.dinauer.utils.ClientProvider; import dev.dinauer.utils.ClientProvider;
import io.fabric8.kubernetes.api.model.networking.v1.Ingress; import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient;
@ -20,7 +21,7 @@ import java.util.List;
public class IngressResource public class IngressResource
{ {
@Inject @Inject
ClientProvider clientProvider; IngressService ingressService;
@GET @GET
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@ -28,8 +29,8 @@ public class IngressResource
{ {
if(namespace != null) if(namespace != null)
{ {
return clientProvider.getClient().network().v1().ingresses().inNamespace(namespace).list().getItems(); ingressService.findByNamespace(namespace);
} }
return clientProvider.getClient().network().v1().ingresses().list().getItems(); return ingressService.findAll();
} }
} }

View File

@ -42,10 +42,8 @@ public class PodResource
{ {
if(namespace != null && !namespace.isBlank()) if(namespace != null && !namespace.isBlank())
{ {
LOG.info("Retrieving pods from namespace {}", namespace);
return podService.findByNamespace(namespace); return podService.findByNamespace(namespace);
} }
LOG.info("Retrieving all pods.");
return podService.findAll(); return podService.findAll();
} }

View File

@ -1,5 +1,6 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.service.ServiceService;
import dev.dinauer.utils.ClientProvider; import dev.dinauer.utils.ClientProvider;
import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.Service; import io.fabric8.kubernetes.api.model.Service;
@ -26,16 +27,16 @@ import java.util.Optional;
public class ServiceResource public class ServiceResource
{ {
@Inject @Inject
ClientProvider clientProvider; ServiceService serviceService;
@GET @GET
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public List<Service> getServices(@QueryParam("namespace") Optional<String> namespace) public List<Service> getServices(@QueryParam("namespace") String namespace)
{ {
if(namespace.isPresent()) if(namespace != null && !namespace.isBlank())
{ {
return clientProvider.getClient().services().inNamespace(namespace.get()).list().getItems(); return serviceService.findByNamespace(namespace);
} }
return clientProvider.getClient().services().list().getItems(); return serviceService.findAll();
} }
} }

View File

@ -0,0 +1,34 @@
package dev.dinauer.service;
import dev.dinauer.utils.ClientProvider;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.fabric8.kubernetes.client.dsl.NetworkAPIGroupDSL;
import io.fabric8.kubernetes.client.impl.NetworkAPIGroupClient;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import java.util.List;
@ApplicationScoped
public class IngressService
{
@Inject
ClientProvider clientProvider;
public List<Ingress> findByNamespace(String namespace)
{
try(NetworkAPIGroupDSL dsl = clientProvider.getClient().network())
{
return dsl.v1().ingresses().inNamespace(namespace).list().getItems();
}
}
public List<Ingress> findAll()
{
try(NetworkAPIGroupDSL dsl = clientProvider.getClient().network())
{
return dsl.v1().ingresses().inAnyNamespace().list().getItems();
}
}
}

View File

@ -1,6 +1,7 @@
package dev.dinauer.service; package dev.dinauer.service;
import dev.dinauer.utils.ClientProvider; import dev.dinauer.utils.ClientProvider;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.Service; import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder; import io.fabric8.kubernetes.client.KubernetesClientBuilder;
@ -8,6 +9,7 @@ import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import java.util.List;
import java.util.Optional; import java.util.Optional;
@ApplicationScoped @ApplicationScoped
@ -16,6 +18,16 @@ public class ServiceService
@Inject @Inject
ClientProvider clientProvider; ClientProvider clientProvider;
public List<Service> findByNamespace(String namespace)
{
return clientProvider.getClient().services().inNamespace(namespace).list().getItems();
}
public List<Service> findAll()
{
return clientProvider.getClient().services().inAnyNamespace().list().getItems();
}
public Optional<Service> findById(String id) public Optional<Service> findById(String id)
{ {
for(Service service : clientProvider.getClient().services().list().getItems()) for(Service service : clientProvider.getClient().services().list().getItems())