From 4e4e7c99f8ed480679003b555a97547118f4f794 Mon Sep 17 00:00:00 2001
From: "stu126940@mail.uni-kiel.de" <stu126940@mail.uni-kiel.de>
Date: Wed, 16 Feb 2022 11:50:20 +0100
Subject: [PATCH] add support for podmonitors

---
 .../k8s/resourceLoader/AbstractK8sLoader.kt           | 11 +++++++++++
 .../k8s/resourceLoader/K8sResourceLoader.kt           |  1 +
 2 files changed, 12 insertions(+)

diff --git a/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/AbstractK8sLoader.kt b/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/AbstractK8sLoader.kt
index 871b8cf43..36cfef9ce 100644
--- a/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/AbstractK8sLoader.kt
+++ b/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/AbstractK8sLoader.kt
@@ -13,6 +13,7 @@ abstract class AbstractK8sLoader: K8sResourceLoader {
             "Deployment" -> loadDeployment(resourceString)
             "Service" -> loadService(resourceString)
             "ServiceMonitor" -> loadServiceMonitor(resourceString)
+            "PodMonitor" -> loadPodMonitor(resourceString)
             "ConfigMap" -> loadConfigmap(resourceString)
             "StatefulSet" -> loadStatefulSet(resourceString)
             "Execution" -> loadExecution(resourceString)
@@ -51,6 +52,16 @@ abstract class AbstractK8sLoader: K8sResourceLoader {
         return loadCustomResourceWrapper(resource, context)
     }
 
+    override fun loadPodMonitor(resource: String): KubernetesResource {
+        val context = K8sContextFactory().create(
+            api = "v1",
+            scope = "Namespaced",
+            group = "monitoring.coreos.com",
+            plural = "podmonitors"
+        )
+        return loadCustomResourceWrapper(resource, context)
+    }
+
     override fun loadExecution(resource: String): KubernetesResource {
         val context = K8sContextFactory().create(
             api = "v1",
diff --git a/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/K8sResourceLoader.kt b/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/K8sResourceLoader.kt
index c123ab295..1487b64bf 100644
--- a/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/K8sResourceLoader.kt
+++ b/theodolite/src/main/kotlin/theodolite/k8s/resourceLoader/K8sResourceLoader.kt
@@ -11,5 +11,6 @@ interface K8sResourceLoader {
     fun loadBenchmark(resource: String): KubernetesResource
     fun loadConfigmap(resource: String): KubernetesResource
     fun loadServiceMonitor(resource: String): KubernetesResource
+    fun loadPodMonitor(resource: String): KubernetesResource
     fun loadCustomResourceWrapper(resource: String, context: CustomResourceDefinitionContext): KubernetesResource
 }
\ No newline at end of file
-- 
GitLab