eldadru / ksniff

Kubectl plugin to ease sniffing on kubernetes pods using tcpdump and wireshark
Apache License 2.0
3.13k stars 186 forks source link

Invalid configuration error due to context not found #150

Open juan-vg opened 2 years ago

juan-vg commented 2 years ago

Problem

When using several kubeconfigs referenced by the KUBECONFIG env var (colon separated paths), this plugin doesn't work. Not even when referencing the specific config file.

$ echo $KUBECONFIG
/home/me/.kube/config:/home/me/.kube/config2:/home/me/.kube/config3

$ kubectl get pods
NAME    READY    STATUS    RESTARTS    AGE
mypod   1/1      Running   0           5d3h

$ kubectl sniff mypod
Error: invalid configuration: [context was not found for specified context: mycluster, cluster has no server defined]

$ kubectl sniff -x /home/me/.kube/config2 mypod
Error: context doesn't exist

Workaround

I managed to make it work by doing the following steps

  1. Unset the KUBECONFIG var
  2. Remove the main config file (~/.kube/config)
  3. Copy the contents of the desired config file to the main one (~/.kube/config)
juan-vg commented 2 years ago

As far as I understand the -x flag is intended to specify a context name, not a kubeconfig file (which is what I tried). Just mention I've also tried to specify the context name using that flag and the result is the same.

The problem looks to come from the fact I'm using several kubeconfigs at the same time, which should not be an issue.

bostrt commented 2 years ago

I think https://github.com/eldadru/ksniff/commit/80a5e9f472bed46bcc331a48d36654f8263b4bc6 resolves this issue. Would you mind building from the master branch to see if it indeed helps?

juan-vg commented 2 years ago

Oh, my bad. This looks like a duplicate of #110. I will check it ASAP and come back with feedback. Thank you @bostrt

Noksa commented 1 year ago

Still the issue in 1.6.2 if KUBECONFIG var contains more 1 cluster

❯ ~ k sniff -n kazoo5-frankfurt ecallmgr-56d8bc767d-ngzpk -c apps --image nicolaka/netshoot -p -f "tcp port 5984"
Error: invalid configuration: [context was not found for specified context: kubernetes-admin-k8s-frankfurt@k8s-frankfurt, cluster has no server defined]