#+title:                 Kubed NEWS -- history of user-visible changes
#+author:                Eshel Yaron
#+email:                 me@eshelyaron.com
#+language:              en
#+options:               ':t toc:nil num:nil ^:{}

This file contains the release notes for Kubed, a rich Emacs interface
for Kubernetes.

For further details, see the Kubed manual:
[[https://eshelyaron.com/kubed.html][https://eshelyaron.com/kubed.html]].

* Version 0.7.0 on 2026-06-14

This release includes several minor improvements and bug fixes,
along with one larger new feature:

** Kubed now distinguishes between "execution environments"

Kubed commands run ~kubectl~ in the buffer from which you invoke them,
so settings that affect ~kubectl~, from environment variables such as
~KUBECONFIG~ to running on a whole other host via Tramp, can differ
from one buffer to the next.  Kubed now treats each distinct
combination of these settings as an "execution environment", and keeps
its state separate for each one.  This lets you work in parallel with
clusters reached through different ~KUBECONFIG~ files (for example as
set per-directory by https://github.com/purcell/envrc).  The new
"Execution Environments" section in the Kubed manual provides
additional details.

See feature request at https://lists.sr.ht/~eshel/kubed-devel/%3C80aeac01-e21a-4823-a5ae-abe7b7a7a6f7@app.fastmail.com%3E

* Version 0.6.1 on 2026-04-13

This is a maintenance release, it includes one important bug fix:

** Fix "Invalid format string" error in Tramp integration

This version fixes a regression introduced in version 0.6.0, which
caused an error when starting a shell or opening Dired inside a pod.

See bug report at https://lists.sr.ht/~eshel/kubed-devel/%3C87zf36vqaa.fsf@gmail.com%3E

* Version 0.6.0 on 2026-04-11

** Kubed now uses the remote ~kubectl~ on remote hosts

When you invoke Kubed commands in a buffer whose ~default-directory~
points to a directory on a remote host (such as
=/ssh:user@example.com:/some/remote/dir/=), Kubed runs ~kubectl~ on
the remote host, so you can interact with clusters that are configured
in the remote kubeconfig and accessible from the remote host.

Note that this is a rather extensive change, please tell us about
issues/regressions if you see any!

** ~kubed-kubectl-program~ is now connection-local

You can configure different ~kubed-kubectl-program~ values for
different hosts on which you run ~kubectl~ via Kubed commands, by
giving the variable a connection-local value for certain hosts.
For example:

#+begin_src emacs-lisp
(connection-local-set-profile-variables
 'my-kubed-profile-for-somehost
 '((kubed-kubectl-program . "/home/user/my-kubectl")))

(connection-local-set-profiles
 '(:application kubed :machine "somehost.com")
 'my-kubed-profile-for-somehost)
#+end_src

** New user option ~kubed-default-context-and-namespace-alist~

This user option generalizes and supersedes the existing user option
~kubed-default-context-and-namespace~, which is considered obsolete
but is still available.  The new user option lets you set different
defaults depending on the host on which Kubed is running ~kubectl~.

** Command ~kubed-transient~ is now bound to ~k~ in ~kubed-prefix-map~

This was already a recommended binding for this command, which opens
the "root" Kubed transient menu.

** New user option ~kubed-logs-follow~

The new user option ~kubed-logs-follow~ controls whether Kubed follows
new log entries by default when showing Kubernetes logs.
It defaults to ~t~.

** New user option ~kubed-logs-tail-lines~

Kubed commands that show logs for Kubernetes resources now fetch only
the most recent 128 log lines by default, to avoid flooding the logs
buffer with the full history of long-running workloads.  You can
customize this limit with the new user option ~kubed-logs-tail-lines~;
set it to 0 to fetch all available log lines.

** Command ~kubed-logs~ is now bound to ~L~ in ~kubed-prefix-map~

* Version 0.5.1 on 2026-02-13

** Fix error with minibuffer completion for custom Kubernetes resources

** ~kubed-use-context~ now also updates ~kubed-default-context-and-namespace~

Setting the default ~kubectl~ context with ~kubed-use-context~ now
also updates the user option ~kubed-default-context-and-namespace~,
such that Kubed commands will also use the new context as a default.

* Version 0.5.0 on 2025-06-11

** DaemonSets support

Kubed now provides commands for working with DaemonSets by default.
Remember that you can always configure support for additional resource
types with the ~kubed-define-resource~ macro!

** Fix Tramp integration for context names with non-alphanumeric characters

This version fixes an issue in the Kubed integration with Tramp, which
caused it to fail for ~kubectl~ contexts whose name includes ":" and
most other non-alphanumeric characters.

See bug report at https://lists.sr.ht/~eshel/kubed-devel/%3C87ldqz70a6.fsf@gmail.com%3E

* Version 0.4.3 on 2025-01-21

This is a maintenance release, it includes minor improvements and one
important bug fix:

** Fix 'kubed-list-delete-marked' in non-default context

Marking resources with ~d~ and deleting them with ~x~ now works also
in resource tables of resources in non-default contexts or namespaces.

* Version 0.4.2 on 2024-10-22

** New user option 'kubed-list-mode-line-format'

This user option lets you customize the indicator that Kubed shows in
the mode line of resource table buffers when update is in progress.

** Fix Tramp method autoload issue

This version arranges for the Kubed Tramp integration to be loaded
earlier, which circumvents the "Method ‘kubedv1’ is not known" error
that some users have experienced.

* Version 0.4.1 on 2024-09-23

** New command and transient menu for scaling deployments

You can now scale Kubernetes deployment with Kubed, directly with
~kubed-scale-deployment~, from the deployments table buffer, or via
the new transient menu ~kubed-transient-scale-deployment~.

** New commands and transient menu for managing Kubernetes API proxies

You can now use Kubed to create proxy servers that give access to the
Kubernetes API server.  The commands ~kubed-proxy~ and
~kubed-stop-proxy~ start and stop proxy servers, respectively.  The
new transient menu ~kubed-transient-proxy~ lets specify options when
starting a proxy, such as the local port to use.

* Version 0.4.0 on 2024-08-23

** ~kubed-list-update~ is now bound to ~g~ in resource table buffers.

Previously, this command was bound to the slightly less convenient
capital ~G~.  This shadows the default binding of ~revert-buffer~,
which you can still invoke via ~C-x x g~.

** Introduce resource type specific bindings in resource table help transients.

The help transient menu that you get with ~?~ in resource table
buffers now includes type-specific bindings, such as the ~F~ key for
forwarding a local port to a pod in the Kubed pods buffer.

** New transient menu ~kubed-transient-logs~ for showing container logs.

** Improved Tramp integration.

Kubed now uses a bespoke Tramp method to open Dired and Shell buffers
inside Kubernetes pods.  The main advantage of this method is the
ability to work with multiple ~kubectl~ contexts simultaneously.  This
method requires Tramp 2.7 or later, Kubed will complain if you try to
start remote Dired or Shell with an earlier Tramp version.

* Version 0.3.2 on 2024-08-15

** Improved support for multiple contexts and namespaces

Each buffer now has a local context and namespace, which acts as the
default/current context and namespace when you invoke Kubed commands
from that buffer.  See new manual section "Context and Namespace" for
more details.

** New filter operators ~<~ and ~>~ in resource tables.

These operators let you filter line with columns that are less than or
greater than a given value.

** New command for applying changes to displayed resource.

You can now edit displayed resource YAML buffers after you select a
resource with ~RET~ in the table buffer, and apply your changes to the
live resource with ~C-c C-c~.

* Version 0.3.1 on 2024-08-06

** New command for fitting column width to content in resource tables.

** New transient menu showing help in resource table buffers.

* Version 0.3.0 on 2024-08-05

** New command for copying name of resource at point to kill ring.

** New commands for running ~kubectl~ command on resource at point.

** Support bookmarking resource list and resource details buffers.

** New command for jumping from resource details buffer to list buffer.

** Fix installation on Doom Emacs.

** New transient menu for displaying resources.

** Support multiple resource list buffers with different namespaces or contexts.

* Version 0.2.0 on 2024-08-02

** Ensure compatibility with Emacs 29.

** Add right-click context menus in resource tables.

** New menu-bar "Kubernetes" menu.

** New commands for restarting and watching deployments.

** Add filtering capability to all resource tables.

** New cron job commands: suspend, resume, and start job now.

** New commands for patching resources.

** New useful columns in services table and deployments table.

** Use multi-column layout in transient menus.

* Version 0.1.0 on 2024-07-28

Initial release.
