krkn-chaos / krkn

Chaos and resiliency testing tool for Kubernetes with a focus on improving performance under failure conditions. A CNCF sandbox project.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Invalid kube-config error when following README

janosdebugs opened this issue · comments

commented

When following the Setting up infrastructure dependencies in the README, Cerberus crashes with the following error:

cerberus_1  | 2022-05-06 12:58:39,672 [INFO] Starting ceberus
cerberus_1  | 2022-05-06 12:58:39,679 [INFO] Initializing client to talk to the Kubernetes cluster
cerberus_1  |                _                         
cerberus_1  |   ___ ___ _ __| |__   ___ _ __ _   _ ___ 
cerberus_1  |  / __/ _ \ '__| '_ \ / _ \ '__| | | / __|
cerberus_1  | | (_|  __/ |  | |_) |  __/ |  | |_| \__ \
cerberus_1  |  \___\___|_|  |_.__/ \___|_|   \__,_|___/
cerberus_1  |                                          
cerberus_1  | 
cerberus_1  | Traceback (most recent call last):
cerberus_1  |   File "start_cerberus.py", line 544, in <module>
cerberus_1  |     main(options.cfg)
cerberus_1  |   File "start_cerberus.py", line 113, in main
cerberus_1  |     kubecli.initialize_clients(kubeconfig_path, request_chunk_size, cmd_timeout)
cerberus_1  |   File "/root/cerberus/cerberus/kubernetes/client.py", line 26, in initialize_clients
cerberus_1  |     config.load_kube_config(kubeconfig_path)
cerberus_1  |   File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 810, in load_kube_config
cerberus_1  |     persist_config=persist_config)
cerberus_1  |   File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 773, in _get_kube_config_loader
cerberus_1  |     **kwargs)
cerberus_1  |   File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 206, in __init__
cerberus_1  |     self.set_active_context(active_context)
cerberus_1  |   File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 258, in set_active_context
cerberus_1  |     context_name = self._config['current-context']
cerberus_1  |   File "/usr/local/lib/python3.6/site-packages/kubernetes/config/kube_config.py", line 622, in __getitem__
cerberus_1  |     % (key, self.name))
cerberus_1  | kubernetes.config.config_exception.ConfigException: Invalid kube-config file. Expected key current-context in /root/.kube/config

Without investigating further, it's likely that the docker-compose.yml needs to be updated to mount the Kubeconfig from the host. It requires the .kube/config file to be present in /root, which is not where most people will have their Kubeconfig.

Environment:

$ docker version
Client: Docker Engine - Community
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:48:02 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:45:53 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

$ docker-compose version
/home/janosdebugs/PycharmProjects/krkn/venv/lib/python3.8/site-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated
  "class": algorithms.Blowfish,
docker-compose version 1.29.2, build unknown
docker-py version: 5.0.3
CPython version: 3.8.10
OpenSSL version: OpenSSL 1.1.1f  31 Mar 2020