Manage k8s API config life cycle, bootstrap k8s node using k8s client
Change-Id: I9926c6d4903da514b66a3bcbe05358c605c9cc1a
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java
index 0c63733..62d050d 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sApiConfig.java
@@ -38,6 +38,21 @@
}
/**
+ * Lists of API server connectivity states.
+ */
+ enum State {
+ /**
+ * Signifies that client is connected to k8s API server.
+ */
+ CONNECTED,
+
+ /**
+ * Signifies that client is dis-connected from k8s API server.
+ */
+ DISCONNECTED,
+ }
+
+ /**
* Returns the authentication scheme.
*
* @return authentication scheme
@@ -59,6 +74,21 @@
int port();
/**
+ * Returns the connectivity state to kubernetes API server.
+ *
+ * @return connectivity state to kubernetes API server
+ */
+ State state();
+
+ /**
+ * Returns new kubernetes API config instance with given state.
+ *
+ * @param newState updated state
+ * @return updated kubernetes API config
+ */
+ K8sApiConfig updateState(State newState);
+
+ /**
* Returns the token used for authenticating to API server.
*
* @return token value
@@ -123,6 +153,14 @@
Builder port(int port);
/**
+ * Returns kubernetes API server config builder with supplied state.
+ *
+ * @param state connectivity state
+ * @return kubernetes API config builder
+ */
+ Builder state(State state);
+
+ /**
* Returns kubernetes API server config builder with supplied token.
*
* @param token token for authentication