From 64e0e59a9d265bbc66e5d198b66b3e231bd16c39 Mon Sep 17 00:00:00 2001 From: Andreas Dinauer Date: Tue, 6 Jan 2026 11:28:00 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A9=BA=20Add=20Healthcheck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose-dev.yaml | 15 +------ pom.xml | 10 +++-- .../cr/argocd/ArgoCdApplicationResource.java | 5 +++ .../cnpg/cluster/PostgresClusterResource.java | 42 +++++++++++++++++++ .../cr/cnpg/cluster/model/Cluster.java | 13 ++++++ .../inspect/cr/cnpg/cluster/model/Spec.java | 8 ++++ .../inspect/cr/cnpg/cluster/model/Status.java | 8 ++++ 7 files changed, 84 insertions(+), 17 deletions(-) create mode 100644 src/main/java/dev/dinauer/inspect/cr/argocd/ArgoCdApplicationResource.java create mode 100644 src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/PostgresClusterResource.java create mode 100644 src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Cluster.java create mode 100644 src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Spec.java create mode 100644 src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Status.java diff --git a/docker-compose-dev.yaml b/docker-compose-dev.yaml index 58359b1..d6b404a 100644 --- a/docker-compose-dev.yaml +++ b/docker-compose-dev.yaml @@ -14,17 +14,4 @@ services: environment: POSTGRES_PASSWORD: postgres ports: - - "6667:5432" - big-bucket: - image: big-bucket-test - ports: - - "8090:8080" - environment: - BIG_BUCKET_CLIENT_KUBOOBOO_RW: password - BIG_BUCKET_UNITS: RAW,HOURLY,DAILY - DB_USER: postgres - DB_PASSWORD: postgres - DB_HOST: db-big-bucket - DB_PORT: 5432 - DB_DATABASE: postgres - DB_SCHEMA: public \ No newline at end of file + - "6667:5432" \ No newline at end of file diff --git a/pom.xml b/pom.xml index 62734b6..c727ccc 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,11 @@ kubernetes-client 7.3.1 + + io.fabric8 + kubernetes-httpclient-vertx + 7.3.1 + io.quarkus quarkus-elytron-security @@ -61,9 +66,8 @@ quarkus-smallrye-jwt-build - io.fabric8 - kubernetes-httpclient-vertx - 7.3.1 + io.quarkus + quarkus-smallrye-health io.quarkus diff --git a/src/main/java/dev/dinauer/inspect/cr/argocd/ArgoCdApplicationResource.java b/src/main/java/dev/dinauer/inspect/cr/argocd/ArgoCdApplicationResource.java new file mode 100644 index 0000000..23fbdc8 --- /dev/null +++ b/src/main/java/dev/dinauer/inspect/cr/argocd/ArgoCdApplicationResource.java @@ -0,0 +1,5 @@ +package dev.dinauer.inspect.cr.argocd; + +public class ArgoCdApplicationResource +{ +} diff --git a/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/PostgresClusterResource.java b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/PostgresClusterResource.java new file mode 100644 index 0000000..6c8e370 --- /dev/null +++ b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/PostgresClusterResource.java @@ -0,0 +1,42 @@ +package dev.dinauer.inspect.cr.cnpg.cluster; + +import dev.dinauer.inspect.cr.cnpg.cluster.model.Cluster; +import dev.dinauer.utils.ClientProvider; +import jakarta.inject.Inject; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; + +import java.util.LinkedList; +import java.util.List; + +@Path("/resources/clusters.postgresql.cnpg.io") +public class PostgresClusterResource +{ + @Inject + ClientProvider clientProvider; + + @GET + @Path("/{namespace}") + public List get(@PathParam("namespace") String namespace) + { + if ("_all".equals(namespace)) + { + return clientProvider.getClient().resources(Cluster.class).inAnyNamespace().list().getItems(); + } + return findByNamespace(namespace); + } + + private List findByNamespace(String namespace) + { + List result = new LinkedList<>(); + for (Cluster cluster : clientProvider.getClient().resources(Cluster.class).inAnyNamespace().list().getItems()) + { + if (cluster.getMetadata().getNamespace().equals(namespace)) + { + result.add(cluster); + } + } + return result; + } +} \ No newline at end of file diff --git a/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Cluster.java b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Cluster.java new file mode 100644 index 0000000..f0f6c7c --- /dev/null +++ b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Cluster.java @@ -0,0 +1,13 @@ +package dev.dinauer.inspect.cr.cnpg.cluster.model; + +import io.fabric8.kubernetes.client.CustomResource; +import io.fabric8.kubernetes.model.annotation.Group; +import io.fabric8.kubernetes.model.annotation.Kind; +import io.fabric8.kubernetes.model.annotation.Version; + +@Group("postgresql.cnpg.io") +@Kind("Cluster") +@Version("v1") +public class Cluster extends CustomResource +{ +} diff --git a/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Spec.java b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Spec.java new file mode 100644 index 0000000..d6fbf86 --- /dev/null +++ b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Spec.java @@ -0,0 +1,8 @@ +package dev.dinauer.inspect.cr.cnpg.cluster.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record Spec(Integer instances) +{ +} diff --git a/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Status.java b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Status.java new file mode 100644 index 0000000..a9a4305 --- /dev/null +++ b/src/main/java/dev/dinauer/inspect/cr/cnpg/cluster/model/Status.java @@ -0,0 +1,8 @@ +package dev.dinauer.inspect.cr.cnpg.cluster.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) +public record Status(String phase) +{ +} \ No newline at end of file