From 3004c8d3f0ad457552dec978f5ba4719a31fac45 Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Tue, 16 Jun 2020 11:03:08 +0530 Subject: [PATCH] Handle invalid kubeconfig parsing error (#119) Provide message to user about invalid or empty kubeconfig by handling exception raised by kubernetes Python API Fixes: #90 Signed-off-by: Abhijeet Kasurde --- plugins/module_utils/common.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/module_utils/common.py b/plugins/module_utils/common.py index 72046252..a94664f6 100644 --- a/plugins/module_utils/common.py +++ b/plugins/module_utils/common.py @@ -191,13 +191,19 @@ class K8sAnsibleMixin(object): # We have enough in the parameters to authenticate, no need to load incluster or kubeconfig pass elif auth_set('kubeconfig') or auth_set('context'): - kubernetes.config.load_kube_config(auth.get('kubeconfig'), auth.get('context'), persist_config=auth.get('persist_config')) + try: + kubernetes.config.load_kube_config(auth.get('kubeconfig'), auth.get('context'), persist_config=auth.get('persist_config')) + except Exception as err: + self.fail(msg='Failed to load kubeconfig due to %s' % to_native(err)) else: # First try to do incluster config, then kubeconfig try: kubernetes.config.load_incluster_config() except kubernetes.config.ConfigException: - kubernetes.config.load_kube_config(auth.get('kubeconfig'), auth.get('context'), persist_config=auth.get('persist_config')) + try: + kubernetes.config.load_kube_config(auth.get('kubeconfig'), auth.get('context'), persist_config=auth.get('persist_config')) + except Exception as err: + self.fail(msg='Failed to load kubeconfig due to %s' % to_native(err)) # Override any values in the default configuration with Ansible parameters configuration = kubernetes.client.Configuration()