Add a kubernetes port and pod mapper with sync/purge rules CLIs
Change-Id: I89ed29e4357b84345f95fddf81ab7156715d7c82
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
index b6c2f69..2e838e8 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
@@ -29,6 +29,7 @@
import org.onosproject.k8snetworking.api.K8sNetwork;
import org.onosproject.k8snetworking.api.K8sNetworkService;
import org.onosproject.k8snode.api.K8sApiConfig;
+import org.onosproject.k8snode.api.K8sApiConfigService;
import org.onosproject.k8snode.api.K8sNode;
import org.onosproject.net.PortNumber;
import org.slf4j.Logger;
@@ -223,4 +224,28 @@
return new DefaultKubernetesClient(configBuilder.build());
}
+
+ /**
+ * Obtains workable kubernetes client.
+ *
+ * @param service kubernetes API service
+ * @return kubernetes client
+ */
+ public static KubernetesClient k8sClient(K8sApiConfigService service) {
+ K8sApiConfig config =
+ service.apiConfigs().stream().findAny().orElse(null);
+ if (config == null) {
+ log.error("Failed to find valid kubernetes API configuration.");
+ return null;
+ }
+
+ KubernetesClient client = k8sClient(config);
+
+ if (client == null) {
+ log.error("Failed to connect to kubernetes API server.");
+ return null;
+ }
+
+ return client;
+ }
}