Unleashing Unlimited Potential: The Secret to kubecui’s Unmatched Flexibility

Sergii Bieliaievskyi
4 min readMar 19, 2024

I welcome those great and perseverant people who read articles one after another, every single time. I know they exist. Today’s chapter is about how easy it is to extend/add new functionality to kubecui. I truly believe no other app can offer something similar.

Before we delve into the depths of this article, let’s take a moment to recognize and celebrate the incredible individuals who’ve become part of our digital family by clicking that ‘follow’ button on my Medium.com profile. Your support means the world to me and fuels my passion for sharing ideas and insights.

Photo by The3dragons on Unsplash

How often do you ask yourself why the app I use doesn’t have some features? I think such question in different form arises in everyone’s heads from time to time. Starting from release version 1.0.0, everytime the question pops up, you can modify kubecui and keep enjoying interaction with kubernetes . You can make almost any adjustments that fit your needs. An idea of writing the article emerged when I had to upgrade version of a Kubernetes cluster. Being aware of the deprecated or removed Kubernetes APIs is mandatory step prior to performing any upgrade. The other day, I discovered that AWS EKS uses kubent

I installed kubent, then I opened the kubecui configuration and added the tool to be able to call it anytime directly from kubecui.

Entire configuration it is not a single file; it is rather a folder that contains per-object configuration.

├── daemonsets
│ └── config
├── default
│ └── config
├── deployments -> daemonsets
├── libs
│ ├── explain.entrypoint
│ ├── explain.sh
│ ├── node-shell.entrypoint
│ ├── node-shell.sh
│ ├── pod_containers.entrypoint
│ ├── pod_containers.sh
│ ├── sa-token.entrypoint
│ ├── sa-token.sh
│ ├── secret_base64_decode.entrypoint
│ ├── secret_base64_decode.sh
│ ├── tcp_port_pair.entrypoint
│ ├── tcp_port_pair.sh
│ ├── trivy_scan_image.entrypoint
│ ├── trivy_scan_image.sh
│ ├── trivy_scan_manifest.entrypoint
│ └── trivy_scan_manifest.sh
├── nodes
│ └── config
├── pods
│ └── config
├── secrets
│ └── config
├── serviceaccounts
│ └── config
└── statefulsets -> daemonsets

I wanted to call kubent from nodes object interface:

kubecui/fx/nodes/config

HEADER='==========================================================================================================
[F1]Explain [F2]Shell [F3]YAML [F5]Descr search [F6]Cordon [F7]Uncordon [F8]Delete [F9]Drain [F10] Api deprecation report
Scrolling (SHIFT - up/down) || CTRL-/ (change view) || CTRL-R (refresh. omit -o wide) || Ctrl-L (-o wide)
=========================================================================================================='

PARAMS+=(--bind 'f2:execute:node-shell {1}')
PARAMS+=(--bind 'f6:execute:kubectl cordon {1}')
PARAMS+=(--bind 'f7:execute:kubectl uncordon {1}')
PARAMS+=(--bind 'f9:execute:kubectl drain {1} --ignore-daemonsets --delete-emptydir-data')
# The line below is what I added to be able to call kubent
PARAMS+=(--bind 'f10:execute:kubent -t $(kubectl version -o yaml | yq .serverVersion.major).$(($(kubectl version -o yaml | yq .serverVersion.minor | sed -E "s/^([0-9]+).*/\1/") + 1)).0 | less -R --use-color')

The report page:

As simple as that.

If you use kubecui and have already made any adjustments, please share your experience in the comment section. I am really curious about how it worked for you.

If you share my belief that no other app can do this, I would appreciate it if you repost the article on other platforms.

You can show your support by hitting the “clap” button. It’s free, I worked it out.

Previous artices:

--

--