Kubed is now on GNU ELPA
Some updates about my new Emacs package for Kubernetes
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](../assets/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](../assets/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!