kubenav/kubenav

Option to filter non-ready pods and other enhancements

mateuszdrab opened this issue · 6 comments

First of all, thanks for the new version - it looks beautiful.

I use K9s a lot on desktop and tablets for some use cases, but for others I prefer GUI tools.

One thing that I've been missing in kubenav is being able to only show pods that are not ready. It's hard to filter them out when looking at all namespaces.

Would that be a good feature to add?

Hi @mateuszdrab, this sounds like a great idea. I will have a look at this for the next update.

I have a few bits of additional feedback I thought I'd share:

  • When deleting a resource, kubenav should go back to the previous page/list and it should refresh that list
  • Bookmarked CRD returns an error when it's navigated to.
    image
  • when I open a terminal to look at logs, there's nowhere to close it
  • the pod metrics on the front page show limits and requests, I don't think that applies to pods.
  • automatic theme based on OS would be nice, I think that used to be supported in v3
  • loading Helm Charts on all namespaces fails for me but works on individual namespace
    image

Hi @mateuszdrab thanks for the detailed feedback, I appreciate this 🙂

When deleting a resource, kubenav should go back to the previous page/list and it should refresh that list

The go back to the previous page should be easy to implement, but I have to look a bit deeper into the refresh logic.

Bookmarked CRD returns an error when it's navigated to.

I can currently not reproduce this, does this happen for all CRDs or only for a specify one?

when I open a terminal to look at logs, there's nowhere to close it

A terminal can be closed via double tap on the name of the terminal in the tab bar, currently I do not really have an idea how to improve this, since I'm not able to add an additional button the the tabs (maybe we have to implement a custom tabs solution here)

the pod metrics on the front page show limits and requests, I don't think that applies to pods.

Done via #492

automatic theme based on OS would be nice, I think that used to be supported in v3

Done via #492

loading Helm Charts on all namespaces fails for me but works on individual namespace

I can currently not reproduce this, but we also have not that many Helm charts (~50). How many Helm charts do you have? I could imagine that this happens for a large number of charts because we have to look at a lot of secrets to find the current version from the chart history.

Bookmarked CRD returns an error when it's navigated to.

Thinking a bit longer about this, it might be possible that this error occurs in the following case:

  • CRD is bookmarked with a version v1beta1
  • CRD is updated to v1 and v1beta1 version is deleted
  • The API server doesn't know anything about the old v1beta1 version but we still using it in the bookmark

Hey @ricoberger, you're welcome and thanks for implementing the suggestions.

I can currently not reproduce this, but we also have not that many Helm charts (~50). How many Helm charts do you have? I could imagine that this happens for a large number of charts because we have to look at a lot of secrets to find the current version from the chart history.

I tried on 4 different clusters where there are various number of deployments, lowest is 9 and highest is 65. The issue happens when listing Helm deployments on all namespaces, seems to work fine on single namespace. The request for secrets returns 200 when checking ingress logs.

I can currently not reproduce this, does this happen for all CRDs or only for a specify one?

I figured out this issue happens when accessing clusters via Rancher, my direct control plane connected clusters don't exhibit this error. Quick assumption was verified by glancing at my ingress logs and I found that a wrong URL is being called.
Rancher clusters have an additional path /k8s/clusters/local which does not get included in the request when using the bookmark.

Example of a good and bad request

GET rancher.domain/k8s/clusters/local/api/v1/events - events api
GET rancher.domain/apis/kustomize.toolkit.fluxcd.io/v1beta2/namespaces/kustomizations - accessing via bookmark
GET rancher.domain/k8s/clusters/local/apis/kustomize.toolkit.fluxcd.io/v1beta2/kustomizations - accessing CRDs page

Hope this helps