mirror of
https://github.com/MAKS-IT-COM/maksit-cluster-console.git
synced 2026-09-30 00:38:10 +02:00
7.6 KiB
7.6 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.6.2] - 2026-09-03
Changed
- Operator settings (layout, port-forwards, Chat) are written to
%AppData%/MaksIT/Cluster Console/settings.json(WiXinstallFolderName). Shippedappsettings.jsonnext to the exe keeps host logging only; a leftoverConfigurationblock is copied once into the user file. - Synced RepoUtils: ContainerRegistry JSON catalog (PascalCase Harbor / InCluster keys) and
RepoUtilsSecretspack slots instead of per-plugin*Secretenv names.
[0.6.1] - 2026-08-30
Changed
- Windows setup is per-machine: install path
C:\Program Files\MaksIT\Cluster Console, Start Menu folder MaksIT, shortcuts named Cluster Console. The bootstrapper install-folder box expands Program Files instead of showing a raw[ProgramFiles6432Folder]token.
[0.6.0] - 2026-08-30
Fixed
- Footer actions that can run independently now apply to every selected table row (Restart, Scale, Delete, Force delete, Force delete namespace, Cordon, Uncordon, Drain, Trigger, Stop port-forward), not only the current row.
Changed
- Dark UI uses the MAKS.IT origami blues (
#33A5CFhighlight,#006199accent). Window/installer/Flatpak icon is a faceted cluster of nodes with a console chevron (not the brand M). GitHub release assets are siblings: portablemaksit-cluster-console-{version}.zip(win-x64 only), Windows setupmaksit-cluster-console-{version}.exe, andmaksit-cluster-console-{version}.flatpak. The installer and Flatpak are not packed inside the zip. On Windows the Flatpak bundle is built via WSL Debian.
[0.5.1] - 2026-08-24
Added
- Release packaging can resolve enabled plugin
*Secretvalues from MaksIT Vault whenuseVaultis set inscriptSettings.json(PowerShell module or HTTP API;Sharedapplication fallback).
Changed
- Copying resource-table rows includes column headers, so Ctrl+C pastes into Excel as a TSV table.
Fixed
- Copying resource-table rows no longer pastes empty quoted cells after CPU/memory tooltips moved columns to templates.
[0.5.0] - 2026-08-22
Added
- Applications table shows live CPU (% of cluster allocatable) and Memory (k8s
Mi/Gi) from summed pod metrics when metrics-server is available. - Deployments, StatefulSets, and DaemonSets tables include CPU and Memory columns (millicores /
MiB, summed from owned pods). - Applications metric tooltips: CPU in millicores; memory as
MiBplus roundedMB. - Applications pod attribution matches instance labels, direct workload owners, and ReplicaSet → Deployment owners.
- Transient Kubernetes API errors (for example HTTP/2
ResponseEnded) retry automatically; the client uses HTTP/1.1 for list traffic.
Changed
- Applications memory uses k8s compact units (
512.0MiB,<1Mi) instead of Task ManagerMBlabels; CPU stays as cluster %. - DataGrid row separators, headers, and zebra rows are tuned for the dark theme (less harsh white lines).
Fixed
- Pod metrics memory was misread when stored as
MiB-style strings, which made Applications Memory show0 MBwhile CPU looked correct. - Pod metrics now sum all container usages in a pod (not only the last container).
[0.4.2] - 2026-08-21
Fixed
- Switching kubectl current-context only patches
current-contextand never writes siblingconfig.bak.*files (Lens treats those as extra kubeconfigs). Blank cluster/user names reuse existing context entries (or match the context name) instead of creating{name}-cluster/{name}-userorphans. Structural kubeconfig saves also skip.baksiblings for the same reason. - ConfigMap and Secret Data editors accept multiline values and multiline paste via a dedicated value box under the key list.
[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.2before10.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.selectorand maps the service port totargetPort, matching kubectl. - Service related-pods follow
spec.selectoronly, so Helm siblings (for example Longhorn CSI vs UI) are not mixed; namedtargetPortis 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 (8000for Longhorn UI). Openhttp://127.0.0.1:{local}. - Port-forward listens on both IPv4 and IPv6 loopback so
localhostworks 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>fromsrc/Directory.Build.propswhen the UI csproj has none. - Warnings no longer treat k3s
EtcdIsVoter=Trueas unhealthy; onlyFalse(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.