Adding load_config wrapper method to have a more generic way of initializing the client config
# See the License for the specific language governing permissions and
# limitations under the License.
+import os
from .config_exception import ConfigException
from .incluster_config import load_incluster_config
from .kube_config import (list_kube_config_contexts, load_kube_config,
- load_kube_config_from_dict, new_client_from_config)
+ load_kube_config_from_dict, new_client_from_config, KUBE_CONFIG_DEFAULT_LOCATION)
+
+
+def load_config(**kwargs):
+ """
+ Wrapper function to load the kube_config.
+ It will initially try to load_kube_config from provided path, then check if the KUBE_CONFIG_DEFAULT_LOCATION exists
+ If neither exists- it will fall back to load_incluster_config and inform the user accordingly.
+ """
+ if "kube_config_path" in kwargs.keys() or os.path.exists(KUBE_CONFIG_DEFAULT_LOCATION):
+ load_kube_config(**kwargs)
+ else:
+ print(f"kube_config_path not provided and default location ({KUBE_CONFIG_DEFAULT_LOCATION}) does not exist. "
+ "Using inCluster Config. This might not work.")
+ load_incluster_config(**kwargs)
