powerfulseal / powerfulseal

A powerful testing tool for Kubernetes clusters.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unhandled exception when we check k8s config

dgzlopes opened this issue Β· comments

Describe the bug
Unhandled exception when we check k8s config.

To Reproduce
One way to reproduce the behavior:

➜  ~ minikube delete
πŸ”₯  Deleting "minikube" in docker ...
πŸ”₯  Deleting container "minikube" ...
πŸ”₯  Removing /home/dgzlopes/.minikube/machines/minikube ...
πŸ’€  Removed all traces of the "minikube" cluster.
➜  powerfulseal git:(master) βœ— powerfulseal autonomous --policy-file=policy.yml
2020-07-08 22:38:37 INFO __main__ verbosity: None; log level: INFO; handler level: INFO
2020-07-08 22:38:37 INFO __main__ Creating kubernetes client with config /home/dgzlopes/.kube/config (path found for backwards compatibility)
Traceback (most recent call last):
  File "/home/dgzlopes/.pyenv/versions/3.8.3/bin/powerfulseal", line 33, in <module>
    sys.exit(load_entry_point('powerfulseal', 'console_scripts', 'powerfulseal')())
  File "/home/dgzlopes/dnascimento/powerfulseal/powerfulseal/cli/__main__.py", line 656, in start
    main(sys.argv[1:])
  File "/home/dgzlopes/dnascimento/powerfulseal/powerfulseal/cli/__main__.py", line 482, in main
    k8s_client = K8sClient(kube_config=kube_config)
  File "/home/dgzlopes/dnascimento/powerfulseal/powerfulseal/k8s/k8s_client.py", line 32, in __init__
    kubernetes.config.load_kube_config(config_file=kube_config)
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/kube_config.py", line 737, in load_kube_config
    loader = _get_kube_config_loader_for_yaml_file(
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/kube_config.py", line 704, in _get_kube_config_loader_for_yaml_file
    return KubeConfigLoader(
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/kube_config.py", line 197, in __init__
    self.set_active_context(active_context)
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/kube_config.py", line 249, in set_active_context
    self._current_context = self._config['contexts'].get_with_name(
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/kube_config.py", line 623, in get_with_name
    raise ConfigException(
kubernetes.config.config_exception.ConfigException: Invalid kube-config file. Expected object with name  in /home/dgzlopes/.kube/config/contexts list

Environment (please complete the following information):

➜  powerfulseal git:(master) βœ— powerfulseal -V
powerfulseal 3.0.0rc9

It seems to have found the kubeconfig:

2020-07-08 22:38:37 INFO __main__ Creating kubernetes client with config /home/dgzlopes/.kube/config (path found for backwards compatibility)

But yeah, we should make the error more pretty.

Yep, we should improve the error.

It can be triggered in some other ways:

➜  powerfulseal git:(crd) βœ— powerfulseal autonomous --policy-file=policy.yml
2020-07-08 23:10:10 INFO __main__ verbosity: None; log level: INFO; handler level: INFO
2020-07-08 23:10:10 INFO __main__ Creating kubernetes client with in-cluster config
Traceback (most recent call last):
  File "/home/dgzlopes/.pyenv/versions/3.8.3/bin/powerfulseal", line 33, in <module>
    sys.exit(load_entry_point('powerfulseal', 'console_scripts', 'powerfulseal')())
  File "/home/dgzlopes/dnascimento/powerfulseal/powerfulseal/cli/__main__.py", line 656, in start
    main(sys.argv[1:])
  File "/home/dgzlopes/dnascimento/powerfulseal/powerfulseal/cli/__main__.py", line 482, in main
    k8s_client = K8sClient(kube_config=kube_config)
  File "/home/dgzlopes/dnascimento/powerfulseal/powerfulseal/k8s/k8s_client.py", line 34, in __init__
    kubernetes.config.load_incluster_config()
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/incluster_config.py", line 93, in load_incluster_config
    InClusterConfigLoader(token_filename=SERVICE_TOKEN_FILENAME,
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/incluster_config.py", line 45, in load_and_set
    self._load_config()
  File "/home/dgzlopes/.pyenv/versions/3.8.3/lib/python3.8/site-packages/kubernetes/config/incluster_config.py", line 51, in _load_config
    raise ConfigException("Service host/port is not set.")
kubernetes.config.config_exception.ConfigException: Service host/port is not set.