maksit-cluster-console/CHANGELOG.md

4.0 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[0.4.1] - 2026-08-21

Fixed

  • Staying on Pods (or any resource table) now picks up cluster changes on the automatic refresh. The grid previously only updated after leaving and returning to the view.
  • Logs Follow tails new pod lines instead of hanging on the snapshot request, and turning Follow off no longer races the live stream into the log text.

[0.4.0] - 2026-08-20

Added

  • Resource table column filters, row sort, widths, and search are stored per cluster in appsettings.json (Configuration:Layout:Tables).

Fixed

  • Switching clusters no longer resets table column filters or sort order.

[0.3.0] - 2026-08-20

Changed

  • Catalog radios set kubectl current-context. The asterisk marker and Connections Use for kubectl button are gone.

[0.2.1] - 2026-08-20

Fixed

  • Resource table IP columns (Cluster IP, External IP) sort as addresses, not text (10.1.1.2 before 10.1.1.10).

[0.2.0] - 2026-08-20

Added

  • Status-bar messages for port-forward start, stop, restore, and failure.
  • Local / Remote labels on the port-forward bar so the two port fields are explicit.
  • Rebind the host port of an existing forward from Network → Port Forwarding (Local field + Rebind).
  • Double-click a live port-forward in Network → Port Forwarding to open http://127.0.0.1:{local} in the default browser.

Changed

  • Active port-forwards are listed in Network → Port Forwarding (stop from the table). They are no longer shown in the status bar.
  • Resource table footer, YAML/Data edit bars, and workload limit apply buttons show only for a selected row that can use them. Empty toolbars are hidden.
  • Enabled port-forwards are saved in appsettings.json (Configuration:PortForwards) and restored when a cluster reconnects.

Fixed

  • Service port-forward resolves a backend pod from spec.selector and maps the service port to targetPort, matching kubectl.
  • Service related-pods follow spec.selector only, so Helm siblings (for example Longhorn CSI vs UI) are not mixed; named targetPort is resolved on a pod that actually declares it.
  • Port-forward tunnels use the Kubernetes port-forward multiplex protocol (StreamType.PortForward, channel 0, one stream per local connection) instead of exec stdin/stdout.
  • Port Forwarding Remote is the requested service/pod port (for example 80), not the mapped container port (8000 for Longhorn UI). Open http://127.0.0.1:{local}.
  • Port-forward listens on both IPv4 and IPv6 loopback so localhost works on Windows. The IPv6 listener is IPv6-only so it does not collide with IPv4 on Windows.
  • Port-forward opens multiplex streams before starting the demuxer, then copies with blocking socket I/O, matching the Kubernetes C# client port-forward example.
  • Persisted port-forwards re-resolve a Running pod by Service/workload owner or stable labels after replica recreation, including on each new local connection.

[0.1.1] - 2026-08-19

Fixed

  • Release engine reads <Version> from src/Directory.Build.props when the UI csproj has none.
  • Warnings no longer treat k3s EtcdIsVoter=True as unhealthy; only False (learner / non-voter) is raised.

[0.1.0] - 2026-08-19

Added

  • First public release of MaksIT.ClusterConsole, an Avalonia Kubernetes desktop console (catalog, navigator, tables, YAML apply, logs, exec, port-forward), licensed under Apache 2.0.
  • Cluster access through the official KubernetesClient and the same kubeconfig/RBAC as kubectl, including an in-process connections editor.
  • Helm releases, Dapr CRDs, Applications view, force-delete, volume file browse, resource-limit patches, and a read-only local Ollama Chat tab.

See README.md for the full feature list.