Skip to content

Releases

kubeNimbus 1.0.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 06:06
Immutable release. Only release title and notes can be modified.
5ec6151

The first 1.0 release. It covers everything since 0.8.0: right-click menus on more lists, opening a
YAML file, rollout restart of several workloads at once, a keyboard walk of every list and overlay,
and the fixes the last desktop pass found.

Added

  • A right-click menu on the Applications list. Each row offers Open, Restart…, Show in
    Resources and Copy name, and an app Argo CD tracks also offers Sync, Sync with prune…,
    Refresh from Git and Terminate sync…, without opening the app's page first. The result shows
    on the list itself, and the palette's Argo CD items report there too while the list is showing.
  • Right-click menus on three more lists. A card in the port-forwards list offers Show
    pane, Copy URL, Open in browser and Stop. A Helm release offers Open and Refresh. A resource
    on an Argo CD Application's Resources tab offers Open, and Logs where the row has logs. Each
    menu is about the row it opened over, and a right-click on empty space opens none.
  • Open a YAML file. "Open a YAML file…" in the ☰ menu and the palette opens a local file in
    the YAML editor, and Review and server-side apply work as for New resource from YAML…. A file
    with several documents opens on its first one, and the editor says how many were left out.
  • Rollout restart of several workloads at once. Select several Deployments, StatefulSets or
    DaemonSets and press R. One confirm names the count and the cluster, and each object's result
    is listed, a refusal included.
  • A line for a saved tab that was not reopened. When a saved cluster tab's context is in no
    kubeconfig file the launch read, the status bar says so, and its tooltip names the file. The tab
    stays saved and comes back once a kubeconfig has its context again.
  • A log line from the keyboard. With a log pane's lines focused, the arrow keys, Page Up and
    Page Down, Home and End move to a line, Ctrl+C (⌘C) copies it, and Enter opens or closes a JSON
    line's fields.

Changed

  • Windows: install from the Microsoft Store or with winget. winget install --id 9MZ3C28M65PB --source msstore installs the same Store package, which Microsoft signs and the Store keeps up
    to date. The portable zip published up to 0.8 is no longer built. The macOS and Linux downloads
    are unchanged.

  • A sync or refresh says so in one line. "Sync of checkout in argocd on prod-eu requested."
    replaces the two-sentence paragraph that followed every Sync, and it no longer sits in a box
    of its own; what the request means is the line's tooltip. Cordon, uncordon and suspend
    results look the same, and scale, run now and terminate sync results are one line too.

  • The scale question reads on one line of type. "to" and the replica box stand on the
    sentence's baseline instead of floating above it, and every number box's up and down
    buttons are two quiet chevrons inside the box rather than two bordered squares beside it.

  • Buttons are the height of the fields beside them. Every button with words on it is 32px,
    the height of a text box, so the YAML toolbar's Delete no longer sits 6px shorter than
    Review…, and Restart… and the port-forward Stop no longer stand 2px taller than Sync and the
    port fields.

Fixed

  • The palette in the Applications mode acts on what is on screen. It no longer offers the
    Fleet view toggle, which changed the hidden Resources list. Picking a kind ("Pods",
    "Deployments", …) from the palette there now switches to Resources and shows that kind.
  • A cluster's retry line in the All clusters list goes when that cluster is back. Its
    "connection lost" line clears when its watch resumes, and another cluster still retrying keeps
    its own line.
  • A selected log range of a pod that has not started waits instead of saying "No lines". A pod the
    scheduler has not placed answers a range read with nothing, and the pane used to keep saying so
    after the pod ran. It now says the container has not started and loads the range once it does, in
    the pod's pane and in the multi-pod pane.
  • A following log pane stays on its last line after Shift+L and Esc. Going back from the
    maximized pane to the split used to leave it about a minute behind, and the follow stopped.
  • A saved cluster tab survives a launch that cannot find its context. One launch without the
    kubeconfig that names it, such as a launch from the Dock that does not see $KUBECONFIG, used
    to drop the tab from the workspace for good. It now comes back on the next launch that finds it.
  • macOS: the row menu's Delete shows ⌘⌫, not a Delete key the Mac keyboard does not have.
  • A selection of several rows survives a re-sort. A metrics poll or a watch update that moved
    a selected row on a sorted list used to cut the selection to one row.
  • The palette, the cluster switcher and the preferences keep Tab inside them. Tab used to
    leave each for the command bar under the scrim. Esc now closes the palette and the switcher from
    any of their rows, and closing either gives focus back to where it was. Shift+Tab out of the
    preferences' first section no longer sticks on "Add file…", and the shortcut-modifier drop-down
    shows its focus ring.
  • An application's page is quicker to cross with Tab. Its lines of evidence are no longer each
    a stop, the pods list is entered on the selected pod from either direction, and screen readers
    tell the linked resources apart by name.
  • Screen readers read the rows of the node detail, Helm and Argo CD lists by name, as they
    already read the resource list's.
  • macOS: ⌫ closes the focused cluster tab or dock tab, and the shortcut sheet shows it, rather
    than a ⌦ key the Mac keyboard does not have.

Windows: install from the Microsoft Store or with winget install --id 9MZ3C28M65PB --source msstore; the Store signs and updates it, and no Windows download is attached here.

The macOS and Linux downloads are not signed by a certificate. The macOS app is ad-hoc signed, so macOS quarantines it (xattr -dr com.apple.quarantine <path>). See the README for per-platform instructions and for verifying the download (SHA256SUMS.txt, gh release verify-asset, gh attestation verify).

kubeNimbus 0.8.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 18:25
Immutable release. Only release title and notes can be modified.
523bc6e

Added

  • Cluster tabs are real tabs. The cluster tabs in the command bar are one Tab stop: the
    arrow keys, Home and End switch cluster, screen readers read them as tabs, and Delete closes
    the focused cluster tab or dock tab. Screen readers also hear whether a sidebar section is open,
    can tick the namespace pickers' boxes, read which grid rows are selected and by name, and hear
    menu items by their labels (#236).
  • "Exec in my terminal" and "Node shell in my terminal" in the resource list's right-click
    menu
    , beside the ones in the exec pane and node detail, so a pod or a node can be handed to
    your own terminal without opening it first (#198).
  • ResourceQuota rows say whether a namespace is out of room. "Full: pods" or "Almost full:
    limits.memory 98%" shows in the Status column, and kubectl's used/hard figures in Details. It
    works with only the view role in the namespace (#308).
  • "Choose the list's columns…" in the command palette opens the column chooser from the
    keyboard. Focus starts on the first column you can hide and returns to the list when the menu
    closes (#301).
  • kubeNimbus now behaves like a Mac app on macOS (#396, #398). The app menu is ours from the
    first frame (About kubeNimbus, Settings… on ⌘,, Hide Others on ⌥⌘H, Quit kubeNimbus), with Edit
    and Window menus whose Undo, Redo, Cut, Copy, Paste, Select All and Find go to the focused
    control, including the exec terminal. ⌘T opens a cluster tab and ⌘W closes one (Ctrl+T and
    Ctrl+W on Windows and Linux stay with the exec terminal's shell); ⌘W on the last tab leaves the
    empty shell instead of closing the window. The Cocoa text keys work in the YAML editor and in
    text boxes (⌘←/→ and ⌘↑/↓ to the line and document ends, ⌥⌫, ⌘⌫, ⌃A/⌃E/⌃K and the rest), each
    edit one undo step. ⌘⌫ deletes the selected row and ⌘[ goes back from an application's page.
    Every shortcut label, in the palette, the F1 sheet, tooltips and hints, is spelled the Mac way
    (⇧⌘N, ⌥R) on macOS and as Ctrl+Shift+N on the other platforms.

Changed

  • The sidebar toggle is gone from the Applications mode, which has no sidebar for it to
    show or hide. It used to sit there disabled; now it is not drawn at all, and its place is
    kept so the Applications/Resources switch beside it never moves under the pointer.
  • The Linux AppImage has a new name and updates itself. It is now
    kubeNimbus-<version>-x86_64.AppImage or kubeNimbus-<version>-aarch64.AppImage (it was
    -linux-x64.AppImage and -linux-arm64.AppImage), the naming the AppImage catalog asks for;
    the .deb and .tar.gz keep their names. The AppImage now carries update information, and its
    .zsync file is published beside it, so AppImageUpdate and AppImage managers can bring it to
    the latest release. A script or bookmark that downloads the AppImage by name needs the new one.
  • One namespace choice per cluster tab, kept across restarts. The Applications and
    Resources pickers now share the tab's choice: namespaces chosen in one mode are the ones
    the other shows, and the next launch opens on them again. A tab with nothing saved opens on
    all namespaces (or on the kubeconfig context's namespace where listing namespaces is refused).
  • Lists open faster. Each collection is listed and watched once per connection and shared
    by both modes, so the Resources list of Pods, Deployments and the other kinds the
    Applications mode reads appears at once, and the last five kinds you left stay live: going
    back to one shows current rows with no new list. Refresh still reads the cluster again.
  • With several rows selected, actions that act on one object are disabled, and their tooltip
    says why. Delete acts on all of the selected rows and always asks first, whatever "Confirm
    before deleting" says, and a refused bulk delete's reason wraps instead of being cut (#305).
  • The Argo CD dashboard is live. A sync started from kubectl or Argo's own UI, a health
    change or a new Application shows without a reload, on one cluster and in the "All clusters"
    list alike (#303, #336).
  • Inspector panes have one grouping device per group. Pod, node, Service, NetworkPolicy and
    AppProject detail draw headed sections instead of a bordered card per group, the log, terminal,
    YAML, Helm and Env panes no longer sit in a box inside the dock, and the apply preview is set off
    from the pane's toolbar by a single rule (#215).
  • The exec terminal keeps more keys for the shell. With focus in it, F1 to F12 go to the shell
    (htop's F5, mc's F1, vim mappings) instead of opening the cheat sheet, and F11 and F12 now reach
    the shell at all; F1 opens the cheat sheet everywhere else. Ctrl+Shift+L is the shell's (^L)
    and no longer opens the logs palette, and Ctrl+K, Ctrl+P and Ctrl+Shift+N reach the shell too:
    press Ctrl+Tab to leave the terminal first (#337, #222).
  • A row action's question no longer starts with a button-like icon. The verb's glyph is drawn
    bare, level with the sentence, because on an Argo sync's result line it looked like a refresh
    button although it has no command (#329).
  • Avalonia 12.1.4, SvcSystems.UI.Terminal 2.3.0 and KubernetesClient.Aot 21.0.8 (#344, #400, #401).
  • The command palette ranks a title match above a subtitle match. Typing "Nodes" or "Services"
    puts that kind first; before, "Advanced view: show only everyday kinds", whose subtitle lists
    them, came first and Enter turned the Advanced view off (#398).
  • One-line text boxes centre their text on Fluent's padding, the shell box and the
    port-forward fields having sat 2px high (#396).

Fixed

  • The demo cluster's pod logs no longer pick up a line from the stream they replaced. Switching
    container, toggling Follow or picking a range just as a line was due could carry that line into
    the new stream.

  • The Linux packages are built for Ubuntu 22.04, Debian 12 and RHEL 9. They were built on
    Ubuntu 24.04, and a NativeAOT binary asks for the glibc version of the machine it was built on,
    so an older distribution could refuse to start it with a "GLIBC_2.38 not found" error. They are
    now built on Ubuntu 22.04, and the release fails if a binary needs a glibc newer than 2.35.

  • A log pane opened on a pod that was not running yet starts streaming once the container
    runs.
    A pod held by a scheduling gate, or still creating its container, used to keep
    "container … is not available (400 Bad Request)" or "waiting to start" beside a running pod.
    This applies to pod detail and the multi-pod pane (#184, #309), and with Follow off a container
    that comes up after being refused is no longer followed on its own: a range load comes back as
    a range, and a pod a rollout adds is loaded, not followed (#331).

  • A log pane says what it is showing while it holds lines. A snapshot, the previous run, a
    stopped or ended stream and cleared lines are named in a bar above the lines; these messages
    used to show only while the pane was empty (#319).

  • A pod deleted mid-rollout ends as "deleted" with its lines kept in the multi-pod pane and in
    pod detail's log pane, instead of "failed" with "the server could not find the requested
    resource" (#332, #341).

  • An account that may not read metrics (403) gets no empty CPU and Memory columns. The
    list hides them, gives the reason in the status bar and stops asking; they used to show dashes
    indefinitely (#310).

  • A list this account may not read no longer spins behind "Watch connection lost … retrying".
    The Resources list and the Argo CD dashboard say the account may not list it, in the API
    server's words, and the Resources list suggests a namespace when it asked the whole cluster
    (#339). A list of several namespaces, or a fleet list, that every namespace or cluster refuses
    says so with the server's reasons instead of "No … found", and a refusal from only some of them
    stays on the warning line. The watches behind a workload's, a Service's and a node's pods, a
    logs pane's pods and the debug container stop at a 403 and say why (#354).

  • A relist of the Argo CD dashboard no longer shows a growing subset of the Applications. The
    list swaps once the relist is complete (#339).

  • The YAML editor refuses a second pasted document instead of applying only the first, and
    after New YAML creates an object, E on it focuses that editor instead of opening a second one
    (#300).

  • The apply preview is readable at the dock's default height. The diff takes the editor's
    place and shows a readable run of lines, and a Review that ends in a field-manager conflict
    shows what a force apply would change beside the conflict (#316).

  • workspace.json stores a column layout once. Hidden columns and widths are no longer
    written twice, and a stale IsAdvancedView is no longer written (#318). Hiding the column a
    list is sorted by clears the sort instead of leaving the list in an order no header shows
    (#301).

  • A ConfigMap value containing a carriage return survives the YAML editor, and the Helm and
    Argo views start no reads behind a failed reconnect (#311). A successful Argo fleet reload no
    longer clears an unrelated warning (#306). Closing a New YAML editor while its first apply reads
    the cluster's kinds stops that read (#342).

  • In the exec terminal, Alt+B and Alt+F reach the shell as Meta-b and Meta-f (ESC and the
    lower-case letter), so readline word motion works and no stray letter is typed (#315).

  • Condition rows in pod and node Overview line up with their section header, the status dot
    sitting in the margin (#237). The arrow keys along a pane's tab strip (pod detail's
    Overview/Logs/…, the diff's views, the mode switch, the preferences tabs) keep the focus ring on
    the tab they reach (#297).

  • A vertical mouse wheel over the dock's tab strip and the cluster tabs scrolls it sideways
    (#313). A kind listed in Recent and in its own sect...

Read more

kubeNimbus 0.7.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 16:46
Immutable release. Only release title and notes can be modified.
c4ef788

Added

  • Several namespaces at once, in both lists. In either namespace picker a click still
    chooses one namespace; a row's box, Ctrl/Cmd+click or Space adds another and keeps the picker
    open. The Resources list then reads each chosen namespace with a watch of its own, so it works
    where you may read those namespaces and not the whole cluster, and a restart reopens the tab
    on the same namespaces. The Helm browser and the palette's log rows follow the choice.
  • A namespace picker on the Applications list. It sits beside the title, as the Resources
    list's does, and opens with Ctrl/Cmd+Shift+N. It lists the namespaces applications run in,
    with how many each has. The list, the chips' counts and
    the empty states follow the choice. It opens on All namespaces whatever the Resources mode
    shows, and choosing a kube-* namespace shows its applications.
  • The Applications list sorts by any column. A header click sorts ascending, a second one
    descending, a third returns to the list's own order with its Needs attention group. Pods
    sort by the Ready fraction, Restarts as a count and Last deploy by time, and the sort holds
    as the cluster changes.
  • Workload and node detail's pod lists sort by any column. Sort a workload's pods by
    restarts or status, or a node's by CPU or memory request to see what has claimed the node.
    The sort holds as pods come, go and change.
  • The Helm release browser and the Argo CD dashboard sort by any column. Helm releases by
    revision, status or update time; Argo applications by sync or health, worst first. The Helm
    browser now opens in namespace and name order.
  • Port-forwards outlive their dock tab. A running forward keeps listening when its dock
    tab is closed; the status bar counts running forwards, and a Port-forwards list (from the
    status bar or the palette) reopens or stops each one. Closing a cluster tab stops that cluster's forwards
    and says so.
  • Port-forward a Service. From the Service pane or the palette, to a ready pod behind it that
    the pane names; when that pod goes, the next connection moves to another ready pod and the pane
    says so.
  • Open an exec session in your own terminal. The exec pane's new icon and an "Exec in my
    terminal" palette row run kubectl exec -it there, with the cluster pinned. If kubectl cannot
    be found, nothing opens and the app says why.
  • Node shell in your terminal. Node detail's console icon and a "Node shell in my terminal"
    palette row run kubectl debug node/<name> in your own terminal. kubeNimbus never creates the
    privileged pod itself.
  • A "Terminal" preference (Preferences → General) for an emulator kubeNimbus does not know.
    On macOS, kubeNimbus now tries iTerm2 and Ghostty before Terminal.
  • Who am I on this cluster. The access review's "Signed in as" line shows your username and
    groups as the cluster sees them (what kubectl auth whoami asks); a server that cannot say,
    such as one before Kubernetes 1.27, gets a sentence saying so.
  • Keyboard: Ctrl+Tab and Ctrl+Shift+Tab move focus out of the YAML editor and the exec
    terminal, which keep Tab for indenting and shell completion.
  • Delete several resources at once. Select rows in the resource list (Shift+click,
    Ctrl+click or Cmd+click on macOS, Shift+arrows) and delete them with one confirm that names
    the count and the cluster. Each object is deleted by its own request, a Stop button ends the
    run, and an object the server refuses is listed with the server's reason while the rest are
    deleted.
  • Choose the resource list's columns. Right-click a column header to hide or show columns
    for that kind, or to reset them. The choice is remembered per kind.
  • New resource from YAML. "New resource from YAML…" in the ☰ menu and the palette opens an
    empty editor: paste or type a manifest and apply it through the same preview as any edit. The
    namespace defaults to the list's.
  • A capacity strip above the Nodes list: how many nodes there are and how many are ready,
    and CPU and memory used (from metrics-server) and requested, each against what the nodes can
    allocate. It needs no Prometheus, and a part the cluster does not let you read says so in
    place instead of showing zero.
  • Terminate a running Argo CD sync from the places a sync starts: the arrow beside Sync on
    the Applications page, the Argo CD row menus and the palette. It asks first.
  • ApplicationSet and AppProject panes. An ApplicationSet shows its generators, its template
    and the Applications it generated, with their live sync and health. An AppProject shows its
    allowed repositories, destinations and kinds, its sync windows and roles, and says what an
    empty list means. An Argo CD Application on the ordinary resource list now opens its Argo CD
    pane on double-click.
  • The Argo CD dashboard across the fleet. "All clusters" merges every connected cluster's
    Applications into one list with a Cluster column, and sums the counts.
  • F and the row menu's Port-forward work on a Service row, as the Service pane's button
    does.
  • Conditions say how long they have held. Pod, node and workload conditions show an age
    (6d), with the exact time on hover.
  • The list search finds an Ingress by any host its rules serve.

Changed

  • The inspector dock's tabs can be reached with the keyboard (Tab lands on the front tab,
    Left/Right switch) and are read as tabs by screen readers.
  • The sidebar is one Tab stop: the arrow keys move through its kinds and section headers, Enter
    or Space opens a kind or folds a section, and the focused row shows a focus ring. A log pane is
    one Tab stop too, instead of one per line.
  • The Helm release list's Updated column shows an age ("3d") with the exact time on its tooltip;
    it used to print a timestamp that was cut off.
  • The Namespace column (resource list and Helm releases) shows only when it tells rows apart:
    with several namespaces or all of them chosen.
  • The YAML editor's toolbar button reads "Review…" while "Preview before applying" is on, so it
    no longer shares the word Apply with the preview's own "Apply changes".
  • In a narrow window the log panes' toolbars move Range, Levels, the filter's context chip and
    Copy into the ⋯ menu, then narrow the search box, instead of running off the pane.
  • Actions that can be taken back no longer ask first. Argo CD's Sync and Refresh, Cordon,
    Uncordon and Suspend now act on the click, and the strip above the list shows what was sent,
    the result or the server's refusal. Sync used to open a strip with a second Sync button in it.
    Actions that delete, disrupt or cannot be undone still ask: Delete, Drain, Restart, a
    CronJob's Run now and Resume, and Argo CD's new Sync with prune…, which replaces the
    prune checkbox. On the Applications page it is on the arrow beside Sync.
  • The confirm strip reads as one sentence with its answer beside it: the action's glyph,
    "Scale Deployment checkout-worker in payments on prod-eu from 4 replicas (1 running) to 6",
    the consequence under it, and the buttons right after the text instead of at the window's
    edge. Delete, drain and sync with prune get a red glyph and a red confirm button.
  • The cluster switcher draws a row's pin only on hover, on the selected row and on a pinned
    row. Its environment dot is gone (the PROD and STAGING pills stay), and so is the exec pane's
    status dot beside "Connected to …".
  • The sidebar's sections no longer draw a kind icon before each name. Only the Recent section,
    which mixes sections, keeps them.
  • The YAML editor hides metadata.managedFields, as kubectl get -o yaml does; a "Managed
    fields" chip shows them. Applying is unaffected.
  • A kubeconfig tokenFile is re-read about once a minute while connected, as client-go does,
    so a rotated token is picked up before the server refuses the old one.

Fixed

  • A double-click on a column header of workload detail's pod list, the Helm browser or the
    Argo CD dashboard no longer opens the selected row.
  • Connecting to a slow cluster (an EKS cluster signed in through AWS SSO, for one) no longer
    draws "Connecting to …", "No applications found" and "Reading …" over each other on the
    Applications page. While the cluster's resource types are read, the page says only that.
  • In the light theme, a selected row's text is readable again once you have clicked it. The
    Applications list, an application's pods, the cluster switcher and every tab strip (the
    Applications | Resources switch among them) drew it white on their pale selection colour.
  • The last line of a log is no longer half hidden under the horizontal scroll bar. Both log
    panes now always leave a gap below the end of the log, which is where Follow keeps you.
  • A kubeconfig user that names a tokenFile now signs in with it. The file is re-read on every
    connect and reconnect, a relative path is read from the kubeconfig's folder, and a missing file
    is reported by name. Before, such a context connected with no credential.
  • A certificate-authority bundle with several roots trusts all of them, as kubectl does. Before,
    only the first was trusted, so a cluster mid-way through a CA rotation could be refused.
  • Workload logs and workload detail no longer widen a pod selector they cannot fully read (an
    unknown matchExpressions operator, an In with no values); such a selector is refused, and
    the pane says the workload has no usable pod selector.
  • The Service pane no longer keeps judging a Service that was deleted while it was open; it says
    the Service was deleted and withdraws its verdict.
  • Event messages in the detail panes' Events tabs no longer end with a blank line after a
    probe's output.
  • The demo cluster's merged log panes read in the same order every time.
  • The port-forward pane's Start and Stop buttons have accessible names.
  • A kubeconfig user signed in through a credential plugin (`a...
Read more

kubeNimbus 0.6.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 20:28
Immutable release. Only release title and notes can be modified.
520555c

Added

  • A debug container for an image with no shell. Exec into a distroless or .NET chiseled
    image used to end on "No usable shell". The exec pane now says the image has no shell and
    offers Start debug container, which does what kubectl debug -it <pod> --image=busybox:1.37 --target=<container> does: it adds an ephemeral container that shares the container's
    processes and network, waits for it to start, and opens a shell in it. The container's
    files are under /proc/1/root. The image can be changed (an air-gapped cluster needs its
    own mirror), a debug container already running for that container is reused rather than
    adding another, and the pane says that it stays in the pod until the pod is recreated.
    Neither Lens nor FreeLens can add one.
  • Exec on Windows nodes. A pod on a Windows node is offered powershell, then cmd,
    instead of /bin/bash, /bin/sh and /bin/ash, which it never has. The node is read from
    the pod's spec.os, its kubernetes.io/os node selector or the node's label.

Changed

  • The Windows download is the portable zip only. The MSI is gone: across 0.3.2 to 0.5.0
    it was downloaded once, and the Microsoft Store already installs and updates kubeNimbus.
    Unzip anywhere and run kubeNimbus.exe; settings stay in %AppData%\kubeNimbus. If you
    installed an earlier MSI, uninstall it from Settings → Apps.
  • Preferences is four tabs. General (kubeconfig files and folders, opening applications with one click, shortcut modifier),
    Appearance, Logs and metrics, and Changes (confirm before deleting, preview before applying),
    the same strip pgNimbus's settings page uses. The page keeps one height on every tab and opens
    on the tab it was last left on.
  • One click opens an application. A click on a row of the Applications list opens its page;
    it used to take a double-click. "Open applications with one click" on the General tab of the preferences page
    turns the double-click back on. The resource list still opens on double-click.
  • Applications in the command bar goes back to the list. On an application page, clicking
    the already selected Applications mode (or Ctrl+Shift+A, Cmd+Shift+A on macOS) returns to
    the list, as the page's "‹ Applications" link does. It used to do nothing.
  • The interface is drawn in your system's font, and code in JetBrains Mono. kubeNimbus used
    Inter on every platform; it now uses San Francisco on macOS, Segoe UI on Windows and your
    desktop's font on Linux, the same as pgNimbus. Logs, YAML, the terminal and every other place
    that shows code use the bundled JetBrains Mono, so a Mac no longer falls back to Menlo.
    Preferences has two new choices under Appearance: Interface font (System or Inter) and
    Code font (the built-in one or any monospace font installed on the computer).
  • A denser, quieter look, shared with pgNimbus. Body text is 13px and list rows about
    24px, as in native apps. The list or tree the keyboard is in shows its selected row in the
    accent colour, and other lists in grey. Keyboard focus is a soft rounded accent ring
    instead of a black box. Switches are the small macOS kind, and the icon buttons in the
    title bar now light up on hover.

Fixed

  • An exec that fails says why. When every shell was refused, the pane printed the reason
    the last one gave, so a missing permission read as a missing /bin/ash. It now says "has no
    shell" only when the image really has none, and otherwise gives the first other reason.

  • Apply works on an object opened in the YAML editor. Opening a ConfigMap, Deployment or
    custom resource, changing a value and pressing Apply was refused with "metadata.managedFields
    must be nil", both in the preview and in the apply itself. The server's own bookkeeping field
    is no longer sent back, and the preview, Apply and Force apply all take the edited object.

  • Ctrl+S applies in the YAML editor. The shortcut sheet listed it, and pressing it did nothing. It now
    starts the same apply as the Apply button (Cmd+S on macOS).

  • The preferences page follows the theme toggle. With Preferences open, switching the theme
    from the command bar, the palette or the View menu left the Theme drop-down naming the old
    choice.

  • Screen readers and UI Automation can read the application page. The first application page
    opened in a session made Windows UI Automation fail for as long as it stayed open.

  • Controls have accessible names. The command bar's icon buttons, the sidebar's kinds, the
    Applications rows, the preferences switches and the port and replica boxes were announced as
    type names or nothing; they now read what they do.

  • The shortcut sheet says where Ctrl+Z works. "Show only what is unhealthy" is Ctrl+Z with
    the rows focused; in the list's search box Ctrl+Z is that text box's Undo.

  • Tooltips open. Hovering a resource name, an age, a CPU or memory sparkline, a status
    pill or most other text that carries a tooltip showed nothing: the pointer passed through
    the text to the row behind it. Every tooltip now opens wherever its text is.

  • The status bar keeps a long message readable. A message wider than the window was cut
    off at the edge; it now ends in an ellipsis, and hovering it shows the whole text.

  • Logs no longer freeze the window on "Everything". A pod with a long history used to
    hang the app while its log loaded, and switching the theme with a full log open took a
    second. The log panes now draw only the lines in sight and drop what the scrollback would
    trim before reading it.

  • Large clusters stay responsive in the Argo CD Resources tab (thousands of managed
    resources), the YAML apply preview (large ConfigMaps), the Service pane (hundreds of
    backing pods), the list search, and a list sorted by CPU or memory, which used to stall
    for about two seconds on every metrics poll with 5,000 pods.

  • Big lists load faster and keep the window responsive while they do. A namespace with
    thousands of pods used to fill in visibly row by row; the list, the fleet view, workload
    details, the Service pane, multi-pod logs and the Applications list now take a watch's
    updates in batches. Searching a long Applications list and a fleet member reconnecting
    are single updates too.

  • Web and e-mail addresses in the YAML editor and in a Helm release's values and manifest are
    now plain text in the YAML colours. They used to be drawn in bright blue over the
    highlighting, like links, and a Ctrl+click opened them in the browser or the mail client.
    The values and the manifest also stop scrolling at their last line, so text that fits no
    longer gets a scroll bar.


Binaries are unsigned. Windows shows a SmartScreen prompt; macOS quarantines the app (xattr -dr com.apple.quarantine <path>). See the README for per-platform instructions and verifying SHA256SUMS.txt.

kubeNimbus 0.5.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 21:16
d751335

Added

  • Applications mode. A cluster now opens on Applications: every Argo CD Application, and
    every workload no Application tracks, with its health and a one-line reason such as
    "Crash-looping (exit 1) · 2 pods not created: namespace quota", sorted so what needs
    attention comes first. Chips narrow it to what needs attention, what was deployed in the
    last hour, or what is not in Argo CD, and the search box finds an app by name or
    namespace. The explorer is still there as Resources, one click (or Ctrl/Cmd+Shift+R)
    away, and the choice is remembered.
  • The application page. Enter on an application shows what the cluster reports is
    wrong, each fact with the field it was read from; its pods; the Services, Ingresses,
    ConfigMaps, Secrets, HPA and PDB it is wired to; a timeline of deploys, container exits
    and warning events over the last hour; what the last deploy changed in the pod template,
    with a link to compare the two commits on GitHub, GitLab, Azure DevOps or Bitbucket; and
    the logs, opened on a crash-looping pod's last run and ending with its exit code. Restart,
    Sync and Edit YAML are on the page, and Edit YAML warns first when Argo CD would revert a
    manual edit.
  • Works with narrow permissions: when listing across the cluster is refused, Applications
    reads the namespaces it knows and says which it covers and which were refused. The
    namespace picker opens a namespace by name (type it, press Enter) where listing
    namespaces is not allowed.
  • Service detail. Double-click a Service to see the pods its selector matches next to
    the endpoints actually serving, with one sentence saying whether traffic can reach them.
    A selector that matches no pod, a selector-less Service and an ExternalName are each
    stated plainly.
  • Ingress detail. Every route as host/path to backend, TLS per host, and a URL you can
    open or copy. The backend opens its Service.
  • NetworkPolicy detail. The rules in words (who may reach the selected pods, on which
    ports) and the pods the policy selects. An empty selector means all pods, and the pane
    says so.
  • Ingress, Endpoints, EndpointSlice and NetworkPolicy lists show kubectl's own columns.
  • CronJobs: run one now, suspend it or resume it from the list's menu or the palette,
    with a confirm naming what happens. After a run, "Open Job" shows the Job's pods.
  • Jobs open in the workload pane, with their pods, completions and failures against the
    backoff limit.
  • A Secret carrying a certificate shows whose it is and when it expires, coloured as expiry
    nears, plus the whole chain (subject, SANs, issuer, validity). This works without
    revealing values, and the key is never read.
  • PersistentVolumeClaims and PersistentVolumes name the other end of their binding and open
    it. An environment variable taken from a ConfigMap or Secret key opens that object.
  • Log search, rebuilt. Matches are highlighted in place with "n of m", and Enter /
    Shift+Enter step between them; the funnel switches to filtering. Regular expressions
    (Alt+R) and match case (Alt+C) are supported, !word hides the lines that contain it,
    and while filtering the Context chip keeps 2 to 25 lines around each match, like
    grep -C. Double-click a filtered line to see it in the full log.
  • A search can be pinned as a coloured highlight (Alt+P, up to five), which stays marked
    while you search for something else.
  • A Levels filter (Error / Warn / Info) in the log panes. Lines with no level are always
    shown.
  • Log panes count their error and warning lines. A click on the count, or Alt+↑ / Alt+↓,
    jumps between errors without hiding anything, and a strip beside the scrollbar marks
    every error, warning and match.
  • A JSON log line opens into its fields with the chevron beside it.
  • Clear in the log panes, without restarting the stream. Timestamps show in local time,
    with UTC one click away, and the panes remember timestamps, UTC and wrap across restarts.
  • When a followed log stream ends, the pane says why: the connection closed while the
    container is still running, the container restarted, it exited (with its exit code), or
    it has not started yet.
  • Connection failures are explained. A connect that fails says, in place of the list,
    which step failed, why, and with what (kubeconfig, context, server, user, sign-in method),
    with Retry and a terminal on the cluster.
  • Reconnect re-reads the kubeconfig and re-runs its credential plugin without closing the
    tab, and an expired credential (HTTP 401) is re-resolved automatically.
  • The cluster's proxy-url is honoured (HTTP, HTTPS, SOCKS5), including for exec and
    port-forward.
  • Kubeconfig folders: pick a folder and every kubeconfig in it is read, including files
    added later. The kubeconfig is rescanned when the window regains focus.
  • The sidebar's Recent kinds are remembered per cluster across restarts.
  • A privacy policy, linked from About.

Changed

  • The Resources mode now looks like the Applications mode: the list sits in a card on the
    window's own tone instead of a black panel, and every table uses the same type, with
    small semibold headers, 12px rows with the name in semibold, and fainter row rules.
  • Log panes colour the level word instead of the whole line, so a log where every line is
    info: no longer turns blue. Error rows carry a red bar and a faint wash, warning rows an
    amber bar, and timestamps are dimmed. The level is read from the first level word, from a
    JSON or level= field, or from klog's E0928 header, and an indented stack trace takes
    the level of the line that threw it.
  • Log panes no longer print terminal colour codes. Applications that colour their console
    output (ASP.NET, zap, Rails and most CLI tools) used to show [40m[32minfo[39m at the
    start of every line. .NET's fail: and crit: lines are coloured as errors.
  • The log toolbar is shorter: Timestamps, UTC, Wrap, Clear and Save are in a ⋯ menu. A
    merged log with a single pod no longer repeats the pod's name on every line.
  • Logs and shells open on the container named by
    kubectl.kubernetes.io/default-container, as kubectl does. Logs have one icon
    everywhere.
  • Primary buttons, checked boxes and switched-on toggles are the app's own blue on every
    machine instead of the Windows accent colour, and red buttons stay red under the pointer.
  • The command palette, the cluster switcher and the Preferences, About and shortcut panels
    sit on a grey card in the dark theme instead of black.
  • The cluster switcher is a + after the last cluster tab, so the cluster in front is no
    longer named twice in the top bar.
  • The status bar appears only when there is something to report; the server version moved
    to the tab's tooltip.
  • Cluster-scoped kinds (Nodes, PersistentVolumes, ClusterRoles) say "Cluster-wide" in place
    of a greyed-out namespace picker, and no longer show an empty Namespace column.
  • Gateway API kinds (Gateway, HTTPRoute, GRPCRoute and the rest) are listed under Network
    instead of CRDs.
  • Pods in workload and node detail show their status as the same pill as the main list.
    Node detail's pod list is live, opens pods on double-click and Enter, and a drain watches
    for evictions instead of re-listing every two seconds.
  • On Applications, the search box sits at the right of the title row, and the Sync column,
    the "Not in Argo CD" chip and group headings appear only when they have something to say.
  • The YAML editor has a light-theme palette, and its Delete button is drawn as a
    destructive button, away from Apply.
  • A credential plugin named bare in the kubeconfig (command: aws) is found where a login
    shell would find it, so it works when the app is launched from Finder, the Dock or a
    desktop launcher.
  • kubeNimbus reads kubeconfig files itself. An empty kubeconfig is read as one with no
    contexts instead of an error, a key written twice keeps its last value as kubectl does,
    and a file that does not parse is reported with its line and column. One such file no
    longer hides the contexts in the other files.
  • Updated Avalonia to 12.1.3, the exec terminal to SvcSystems.UI.Terminal 2.0.0, and
    YamlDotNet to 18.1.0.

Fixed

  • A crash-looping application no longer flickers between Degraded and Healthy between two
    back-offs.
  • Esc returns from an application page to the list when the page was opened by
    double-click.
  • A switched-on chip toggle (Wrap and the like) keeps its text readable.
  • A misspelled field in a YAML apply shows as a refused field on real clusters, which
    answer it with HTTP 500 rather than 400.
  • CRD list columns show an array or object value as kubectl does (for example Gateway API
    HTTPRoute hostnames), and resolve backslash-escaped dotted keys such as Crossplane's
    crossplane\.io/external-name.
  • The multi-pod log pane no longer leaves a freshly started pod without lines, picks up
    pods that had not started yet, and marks them "not started" until they do.
  • Workload and node detail no longer lose the selected pod when you switch inspector tabs.
  • Refreshing a workload's detail updates the "Unhealthy only" list immediately.
  • A Job is no longer offered a rollout restart, and a PersistentVolumeClaim or
    ServiceMonitor no longer offers "Logs (all pods)".
  • Only one sidebar row is highlighted at a time.
  • The list header, the fleet list, the Events list and the command palette fit narrow
    windows.
  • The access review's "Loading…" no longer shows on the "Who can…" tab.
  • On Linux with a fresh home directory, the discovery cache and settings are no longer
    written into the current directory.
  • The no-kubeconfig screen no longer prints the same sentence twice.
  • The demo cluster shows usage for every running pod.
  • Discovery no longer lists a resource whose server reports "verbs": [].

Binaries are unsigned. Windows shows a SmartScreen prompt; macOS quarantines the app (xattr -dr com.apple.quarantine <path>)...

Read more

kubeNimbus 0.4.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 07:15
74fc28d
  • A cluster that cannot be reached now says why. When the kubeconfig's credential plugin
    (aws eks get-token, kubelogin, gke-gcloud-auth-plugin, …) fails, the tab shows what
    the plugin printed instead of a JSON deserialization error, and a VPN or proxy page
    answering in the API server's place is named as such.
  • With the advanced view off, the sidebar now lists about 20 everyday kinds instead of about
    35: Pods, Deployments, Services, ConfigMaps, Secrets, PVCs, Nodes, Namespaces and the like.
    API machinery hides wherever it is filed, including ControllerRevisions, Endpoints and
    EndpointSlices, IngressClasses, the second events.k8s.io Events row, LimitRanges and the
    CSI kinds. Nodes and Namespaces are now reachable in this view. The sidebar filter and
    Ctrl/Cmd+K still find everything.
  • The advanced-view toggle has an eye-plus icon ("show more"). It used to show the sliders
    icon, which also marks the Config section.
  • The Cluster section no longer lists Nodes twice. The second row was the metrics API's
    NodeMetrics, which now carries its own name (and PodMetrics likewise).
  • Releases are no longer published as pre-releases just because the version starts with
    0., so the newest one carries GitHub's Latest label and the README's download link
    lands on it. Only a suffixed tag (-rc.1) is still a pre-release.
  • Choose a log range in pod and workload panes: last 200 or 1000 lines, the last 5 minutes,
    hour or day, or everything still retained. The pane shows when its scrollback limit trims
    older lines.
  • Show only what is unhealthy on any list — one click or Ctrl+Z narrows pods, workloads or
    events to the ones in trouble, and they appear the moment they break and leave when they
    recover.
  • Open any pod's or workload's logs from anywhere: press Ctrl/Cmd+Shift+L (or Ctrl/Cmd+K),
    type part of the name, press Enter.
  • Hover any pod or workload in the list and click its logs icon to open its logs; Shift+click,
    or Shift+L, opens them full-size (Esc goes back to the split). A new "Open logs maximized"
    preference makes full-size the default.
  • Node detail says more about the machine and what it is doing. The System card adds
    platform, every address, pod ranges, zone and region, instance type, provider ID and when
    the node joined. A new Events tab shows what the kubelet and the node controller recorded
    (disk pressure, evictions, restarts), and a new Usage tab charts measured CPU and memory
    with each figure as a share of allocatable.
  • The Events list reads like kubectl get events: when each event last happened, its type,
    reason, the object it was about, how many times it happened and its message, newest first —
    and the search box finds events by reason, object or message.
  • Open a pod's logs straight from where it is named — workload details, node details, an event
    about the pod, or an Argo CD application's resources — with L or the row's logs icon, instead
    of going back to the Pods list to find it. If the pod has gone since, it says so.

Binaries are unsigned. Windows shows a SmartScreen prompt; macOS quarantines the app (xattr -dr com.apple.quarantine <path>). See the README for per-platform instructions and verifying SHA256SUMS.txt.

kubeNimbus 0.3.3

Choose a tag to compare

@github-actions github-actions released this 22 Sep 20:40
464bb27

Added

  • Deployments, StatefulSets and DaemonSets open on their pods, conditions and events.
    Pod rows support logs and shell shortcuts. The Actions menu offers scale and rollout restart.
  • The namespace picker supports search, five recent namespaces and Ctrl/Cmd+Shift+N.
  • Resource rows support L, P, S, F, E, R, Delete and / shortcuts.
    The workspace restores the selected kind, namespace and cluster tab.

Changed

  • Pods start loading before discovery finishes. Aggregated discovery uses two requests on supported servers.
    A disk cache skips discovery on warm connections and expires after six hours or a server-version change.
    The sidebar context menu can refresh the catalog immediately.
  • A new app icon, shared with pgNimbus. The mark was redrawn so that its
    plate, field and broom match pgNimbus's exactly, and every icon size — window,
    taskbar, installer, Microsoft Store tiles — is now generated from one vector
    master instead of a set of per-size drawings that had drifted apart.
  • Dependency updates. Avalonia 12.1.2 and SvcSystems.UI.Terminal 1.1.4 (the
    exec pane's terminal). No behaviour change is intended.

Binaries are unsigned. Windows shows a SmartScreen prompt; macOS quarantines the app (xattr -dr com.apple.quarantine <path>). See the README for per-platform instructions and verifying SHA256SUMS.txt.

kubeNimbus 0.3.2

kubeNimbus 0.3.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Aug 07:11
663ec54

Added

  • kubeNimbus is on the Microsoft Store. Windows can install it from the
    Store listing, which is the same build re-signed by Microsoft during
    certification — no SmartScreen prompt, and it updates itself. The downloads on
    the Releases page are unchanged and stay unsigned.
  • Installers for every platform. Releases now carry an MSI for Windows, a
    .dmg for macOS and a .deb and .AppImage for Linux, beside the portable
    archives that were the only option before. The Windows install is per-user and
    needs no administrator rights; the macOS app is a real .app bundle you drag
    to Applications, ad-hoc signed so Gatekeeper says what is actually wrong
    instead of calling the download damaged; the .deb registers a desktop
    launcher and pulls in the libraries it needs. CI installs and launches each
    package on its own platform before a release is created.

Fixed

  • A resource list no longer says a namespace is empty while it is still
    loading it.
    Selecting a kind against a distant cluster showed the "No pods
    found" panel for as long as the list request took — a second or more — and
    only then filled in with the pods. The list now says what it is loading, and
    in which namespace, until either the first row arrives or the server confirms
    there is nothing there. A watch that reconnects, or one that fails outright,
    reaches the same states instead of flashing an empty list or spinning forever.
  • List columns no longer shift sideways on their own. A column sized to its
    content grew to fit the widest value that had ever scrolled into view and
    never shrank back, and every such growth narrowed all the other columns at
    once — so scrolling, a watch update, or just the Age and Restarts cells
    ticking over would move text the reader was in the middle of reading. Columns
    now keep the width they open with, and can still be dragged to any other.
  • Releases no longer attach the Microsoft Store package. The .msix is
    signed with a throwaway certificate for Partner Center and cannot be installed
    by anyone who downloads it, but it was being published as a release asset
    anyway.

Binaries are unsigned. Windows shows a SmartScreen prompt; macOS quarantines the app (xattr -dr com.apple.quarantine <path>). See the README for per-platform instructions and verifying SHA256SUMS.txt.

kubeNimbus 0.3.1

kubeNimbus 0.3.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Aug 19:58
5886de9

The first release with downloads. Everything listed under 0.3.0 below is in it —
that tag's build failed while archiving the Windows binary, so it never produced
a release.

Fixed

  • The release pipeline could not package the Windows build. The step that zips
    it wrote into a directory it never created, so the Windows archive failed after
    the binary had already been built and tested, and the release was abandoned
    rather than published half-finished. The other three platforms were unaffected.

Binaries are unsigned. Windows shows a SmartScreen prompt; macOS quarantines the app (xattr -dr com.apple.quarantine <path>). See the README for per-platform instructions and verifying SHA256SUMS.txt.