kube-shell icon indicating copy to clipboard operation
kube-shell copied to clipboard

Warning while loading Kube-shell

Open iamshreeram opened this issue 5 years ago • 4 comments
trafficstars

On load of kube-shell, Seeing below WARING message. Is there any way to supress this?

/Applications/anaconda3/lib/python3.7/site-packages/kubernetes/config/kube_config.py:280: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  config_dict=yaml.load(f),
/Applications/anaconda3/lib/python3.7/site-packages/kubeshell/kubeshell.py:43: YAMLLoadWarning: calling yaml.load_all() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  for doc in docs:

iamshreeram avatar Jul 24 '20 13:07 iamshreeram

see https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation

image

ningblue avatar Jul 29 '20 15:07 ningblue

@ningblue , Thanks for looking into this. We might need to accept a parameter (a switch) to suppress these warnings. Something like --suppress-warnings that will set the above PYTHONWARNINGS.

What do you think?

iamshreeram avatar Jul 29 '20 17:07 iamshreeram

Can we please have this warning just disabled by default in kube-shell?

yaml.warnings({'YAMLLoadWarning': False})

RamazanKara avatar Sep 08 '21 20:09 RamazanKara

To resolve the warning messages, you can modify the code to specify the Loader parameter with the FullLoader implementation while calling the yaml.load() and yaml.load_all() functions.

in kubernetes/config/kube_config.py file, modify the config_dict = yaml.load(f) with config_dict = yaml.load(f, Loader=yaml.FullLoader)

and in kubeshell/kubeshell.py file, modify the for doc in docs: with for doc in yaml.load_all(fd, Loader=yaml.FullLoader):

The location of the kubernetes/config and kubeshell/ directory depends on how you installed the Kubernetes client library. If you installed the library using pip, the directory is typically located in the site-packages directory of your Python installation.

To find the location, you can use the following command in a terminal:

pip show kubernetes | grep Location
## Location: /usr/local/lib/python3.8/dist-packages

To Change:

sed  -i "s/config_dict = yaml.load(f)/config_dict = yaml.load(f, Loader=yaml.FullLoader)/g" /usr/local/lib/python3.8/dist-packages/kubernetes/config/kube_config.py

sed -i "s/for doc in docs:/for doc in yaml.load_all(fd, Loader=yaml.FullLoader):/g" /usr/local/lib/python3.8/dist-packages/kubeshell/kubeshell.py

Note: Change the location with yours.

chmodshubham avatar Feb 14 '23 18:02 chmodshubham