Skip to content

Commit 4ffdd44

Browse files
committed
dedupe
1 parent cbf572f commit 4ffdd44

File tree

5 files changed

+99
-742
lines changed

5 files changed

+99
-742
lines changed

src/main/java/io/cryostat/discovery/KubeEndpointSlicesDiscovery.java

Lines changed: 83 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
*/
1616
package io.cryostat.discovery;
1717

18-
import static io.cryostat.discovery.KubeEndpointsDiscovery.KubeDiscoveryNodeType;
19-
2018
import java.net.URI;
2119
import java.nio.file.Path;
2220
import java.time.Duration;
@@ -32,6 +30,7 @@
3230
import java.util.concurrent.Executors;
3331
import java.util.concurrent.ScheduledExecutorService;
3432
import java.util.concurrent.TimeUnit;
33+
import java.util.function.Function;
3534
import java.util.stream.Collectors;
3635

3736
import javax.management.remote.JMXServiceURL;
@@ -92,7 +91,7 @@ public class KubeEndpointSlicesDiscovery implements ResourceEventHandler<Endpoin
9291

9392
ScheduledExecutorService resyncWorker = Executors.newSingleThreadScheduledExecutor();
9493

95-
@ConfigProperty(name = "cryostat.discovery.kubernetes2.enabled")
94+
@ConfigProperty(name = "cryostat.discovery.kubernetes.enabled")
9695
boolean enabled;
9796

9897
@ConfigProperty(name = "cryostat.discovery.kubernetes.port-names")
@@ -666,4 +665,85 @@ public Target toTarget() {
666665
}
667666
}
668667
}
668+
669+
static enum KubeDiscoveryNodeType implements NodeType {
670+
NAMESPACE("Namespace"),
671+
STATEFULSET(
672+
"StatefulSet",
673+
c -> ns -> n -> c.apps().statefulSets().inNamespace(ns).withName(n).get()),
674+
DAEMONSET(
675+
"DaemonSet",
676+
c -> ns -> n -> c.apps().daemonSets().inNamespace(ns).withName(n).get()),
677+
DEPLOYMENT(
678+
"Deployment",
679+
c -> ns -> n -> c.apps().deployments().inNamespace(ns).withName(n).get()),
680+
REPLICASET(
681+
"ReplicaSet",
682+
c -> ns -> n -> c.apps().replicaSets().inNamespace(ns).withName(n).get()),
683+
REPLICATIONCONTROLLER(
684+
"ReplicationController",
685+
c -> ns -> n -> c.replicationControllers().inNamespace(ns).withName(n).get()),
686+
POD("Pod", c -> ns -> n -> c.pods().inNamespace(ns).withName(n).get()),
687+
ENDPOINT("Endpoint", c -> ns -> n -> c.endpoints().inNamespace(ns).withName(n).get()),
688+
ENDPOINT_SLICE(
689+
"EndpointSlice",
690+
c ->
691+
ns ->
692+
n ->
693+
c.discovery()
694+
.v1()
695+
.endpointSlices()
696+
.inNamespace(ns)
697+
.withName(n)
698+
.get()),
699+
// OpenShift resources
700+
DEPLOYMENTCONFIG("DeploymentConfig"),
701+
;
702+
703+
private final String kubernetesKind;
704+
private final transient Function<
705+
KubernetesClient, Function<String, Function<String, ? extends HasMetadata>>>
706+
getFn;
707+
708+
KubeDiscoveryNodeType(String kubernetesKind) {
709+
this(kubernetesKind, client -> namespace -> name -> null);
710+
}
711+
712+
KubeDiscoveryNodeType(
713+
String kubernetesKind,
714+
Function<
715+
KubernetesClient,
716+
Function<String, Function<String, ? extends HasMetadata>>>
717+
getFn) {
718+
this.kubernetesKind = kubernetesKind;
719+
this.getFn = getFn;
720+
}
721+
722+
@Override
723+
public String getKind() {
724+
return kubernetesKind;
725+
}
726+
727+
public Function<KubernetesClient, Function<String, Function<String, ? extends HasMetadata>>>
728+
getQueryFunction() {
729+
return getFn;
730+
}
731+
732+
public static KubeDiscoveryNodeType fromKubernetesKind(String kubernetesKind) {
733+
if (kubernetesKind == null) {
734+
return null;
735+
}
736+
for (KubeDiscoveryNodeType nt : values()) {
737+
if (kubernetesKind.equalsIgnoreCase(nt.kubernetesKind)) {
738+
return nt;
739+
}
740+
}
741+
return null;
742+
}
743+
744+
@Override
745+
public String toString() {
746+
return getKind();
747+
}
748+
}
669749
}

0 commit comments

Comments
 (0)