Kubed is now on GNU ELPA

Some updates about my new Emacs package for Kubernetes

Created on [2024-08-09], last updated [2024-08-09]

Kubed, my new Emacs-based Kubernetes interface, is now available from the official Emacs package archive GNU ELPA. Some brave souls have already taken Kubed for a spin beforehand, but having the package on ELPA makes it easier to install and helps with discoverability for new users. Crucially, if you pop up the packages list in vanilla Emacs and search for “Kubernetes”, you’ll now see something.

The current Kubed version on ELPA is 0.3.1. The main advancement in 0.3 is the ability to have multiple resource list buffers showing resources in different namespaces or kubectl contexts. This is similar to having multiple Dired buffers listing different directories in your file system. For example, this lets you set up your deployment lists side by side for two different contexts (say, prod and dev) and then restart deployments in either context by simply switching buffers and hitting R, or right-clicking in either buffer, without having to context-switch.

kubed-multi-context.png

Version 0.3 also introduced the ability to bookmark resource list buffers and buffers that display a particular resource. This is done by integrating with the standard Emacs bookmarks system, so it works with the usual commands (C-x r m to set a bookmark, C-x r b to jump back to it anytime).

The next version, 0.3.2, should be available sometimes next week. The focus of that version is a new capability to edit and apply changes to resource YAMLs that Kubed displays. Here’s a sneak peek:

kubed-replace-diff.png

On a broader note, someone asked over on the GitHub mirror of Kubed for a comparison of Kubed with other Emacs package for Kubernetes. (Actually, they asked about one package in particular, kele, but I assume the request applies to other existing packages as well.)

While Kubed provides some currently exclusive features (such as the bookmarking integration and completion support for kubectl commands), perhaps the most important difference between Kubed and existing Kubernetes packages is that Kubed is ultimately intended to be added to Emacs core, if people find it useful and important enough.

One of the implications of this intention is that Kubed currently does not depend on any external package. This is certainly a limitation—for instance, the with-editor package could help make commands like kubed-edit-pod simpler and more robust. Another implication is that significant contributions to Kubed’s code require copyright assignment to the FSF.

Regardless, I think that a comparison of Kubed with its alternatives in terms of user facing features is a great idea. For one, it could help folks that are looking for a Kubernetes interface understand if Kubed is the right choice for them. I’d like to add a few words about each alternative to the project’s README, but the first order of business is to complete the documentation of Kubed proper.

In the meantime, if you’re giving Kubed a try and you’ve got some experience with other Kubernetes interfaces (Emacs packages like kubernetes.el, kele, and kubel, as well as other programs like k9s), I would love to hear your thoughts about the most prominent differences. The best way to reach out is via an email to the Kubed mailing list; bug reports, patches and feature suggestions are very welcome too!