Fix Slow Namespace Switching in Kubie
Kubie makes it easy to switch across k8s contexts and namespaces.
kubie works seamlessly with
kubectl and removes the need to specify a namespace or context with each invocation of
I’ve been using
kubie for almost a year and recommend it whole heartedly. The only issue I’ve encountered is that switching namespaces in large
k8s clusters is quite slow. Initally, it took a few seconds to switch namespaces, but my most recent attempt took 30 seconds !!. That was the last straw and I decided to look for a solution.
kubie ensures a namespaces exists before entering it by default. As part of validating whether a namespaces exists,
kubie ends up listing all namespaces in a cluster.
To avoid the latency that comes with listing all namespaces in a large cluster, simply toggle the
behavior.validate_namespaces setting to
Open kubie’s config file
> kubie edit-config
Append this section to your kubie config file.
behavior: # Make sure the namespace exists with `kubectl get namespaces` when switching # namespaces. If you do not have the right to list namespaces, disable this. # Default: true validate_namespaces: false
kubie picks up the new setting, switching namespaces should be near instantaneous.
The Correctness vs Speed Tradeoff
validate_namespaces defaults to
true for a good reason, it makes error states impossible.
kubie ns non-existent-namespace will return an error.
false improves the latency for switching namespaces at the cost of correctness.
kubie ns non-existent-namespace will no longer return an error and in fact, the command will appear to succeed.
Choose wisely :)