Skip to content

Releases: bcollard/marina-ui

Marina UI 0.3.1

Choose a tag to compare

@bcollard bcollard released this 20 Oct 13:27
0703cf3
  • Detects when an MDM encrypted-DNS profile bypasses /etc/resolver (marina 0.3.3 marina-probe record): banner on the Services tab and in Diagnostics › Local DNS, with the exemption to ask the MDM admin for.
  • Flags clusters whose ExternalDNS Ingress source doesn't match network.dns.ingress, with a Re-attach button.
  • Fix: VM disk usage (Disk / Images rows) no longer disappears for good when the first guest stats call fails at launch.

Signed with Developer ID, notarized and stapled.

Marina UI 0.3.0

Choose a tag to compare

@bcollard bcollard released this 28 Sep 12:11
4cbcbf3

Klimax UI is now Marina UI, following the klimax → marina rename of the CLI (marina v0.3.0).

  • Reads ~/.marina and runs the marina binary; fleet label marina.run/fleet
  • New harbour icon
  • Bundle id is now dev.bcollard.MarinaUI, so preferences start fresh
  • Homebrew: brew install --cask marina-ui (brew upgrade --cask klimax-ui moves existing installs over)

Run marina migrate first if you are coming from klimax.

v0.2.7

Choose a tag to compare

@bcollard bcollard released this 28 Sep 09:25
8cbea37

Services tab, reworked

  • Each LoadBalancer card leads with its chosen name: the external-dns.kubernetes.io/hostname annotation first, then other names on the VIP (Ingress hosts), then the automatic <svc>.<ns>.<cluster>.<domain> name, dimmed. A badge on each name says where it comes from.
  • Ports render as a table: port, protocol, appProtocol, name, targetPort, endpoint.
  • The endpoint is a link only when the port speaks HTTP(S) — decided by appProtocol, then the port name (http, https-admin), then 80/8080/443/8443. Raw TCP ports show host:port to copy instead of a bogus http:// URL.

🤖 Generated with Claude Code

v0.2.6

Choose a tag to compare

@bcollard bcollard released this 26 Sep 13:39
c3865ee

Local DNS names and the local CA from klimax 0.2.x.

  • Services tab: links use <svc>.<ns>.<cluster>.klimax.internal, with the VIP as secondary text. Each name shows whether the Mac resolves it, separately from TCP reachability. Fleet-zone names get a badge; a lock marks names a klimax wildcard covers.
  • Cluster Info: Local DNS card with the cluster and fleet zones, ExternalDNS state, Attach / Re-attach, and the cluster and fleet TLS wildcards with Issue / Renew and Copy to namespace.
  • Diagnostics: DNS server, macOS resolver file, published names, names the Mac can't route to (with per-cluster re-attach), local CA trust and expiry, Copy root PEM.
  • klimax's DNS containers no longer appear under Docker containers.

Requires klimax 0.2.0+ for DNS, 0.2.2+ for the CA, 0.2.3+ for fleet names; hidden on older versions.

v0.2.5

Choose a tag to compare

@bcollard bcollard released this 24 Sep 07:25
9e948dd

New: delete a whole fleet in one click. Clusters are now grouped by fleet in the sidebar and the overview, and each fleet header has a delete button (also on right-click of a member cluster in the sidebar), behind a confirmation that lists the fleet's clusters. Runs klimax fleet delete (klimax 0.1.37+), so membership is resolved by klimax itself — a cluster whose labels the app hadn't loaded yet is still included.

v0.2.4

Choose a tag to compare

@bcollard bcollard released this 11 Sep 16:18
95aeabe

Fix: a cluster's fleet badge and age could stay permanently blank in the sidebar if the very first label/creation-time fetch raced the cluster still finishing creation (API server/kubeconfig not quite ready in that instant) — nothing ever prompted a second try since that fetch only re-runs when the cluster set itself changes. Now retried on every external-change poll tick (~6s), a no-op once the data is actually cached.

v0.2.3

Choose a tag to compare

@bcollard bcollard released this 11 Sep 12:48
72d212c

Disk usage in the sidebar VM card — both of klimax's VM disks (root, and the persistent image-cache disk mounted at /var/lib/containerd where docker pull/build actually writes), shown as used/total GiB and colored by fraction full.

A full image disk fails opaquely today: `docker compose up --build` just says "no space left on device" with no indication which of the VM's two disks is full, or that there even are two. This surfaces it before it bites.

v0.2.2

Choose a tag to compare

@bcollard bcollard released this 11 Sep 12:26
8cb3df8

Remove button for docker-compose stacks, next to Start/Stop in the sidebar and overview. Force-removes every container in the stack (running or not) via a confirmation dialog.

Useful because `docker compose ls` only lists running projects by default — a stack sitting fully stopped in the guest is invisible to a plain `ls` (needs `-a`) even though `compose down` would work fine on it. The app always lists every container regardless of state, so this is the in-app way to clear one out without digging up `-a` or the original compose files.

v0.2.1

Choose a tag to compare

@bcollard bcollard released this 11 Sep 12:09
406c474

Start/stop buttons for docker-compose stacks, next to the stack's name in the sidebar and overview dashboard. Every container in the stack starts or stops in one action, without invoking the real `docker compose` (which has previously pruned a running kind node as an "orphan").

v0.2.0

Choose a tag to compare

@bcollard bcollard released this 11 Sep 09:29
5bc6a2a

Picks up the three features klimax added in 0.1.59 / 0.1.60 — volume mounts, HTTP proxy, and extra CA trust — and makes the first of them do something for you.

Volume mounts, and the bind you didn't notice was empty

klimax 0.1.59's vm.mounts shares host directories into the VM. Its absence has a silent failure mode:

Docker runs inside the VM and resolves a bind-mount source there. So docker run -v ~/Desktop:/data against a path klimax doesn't share does not fail — dockerd creates the missing directory in the guest, and your container starts up healthy, seeing nothing.

Every container's mounts are now checked against what the VM actually shares:

  • ✅ on your Mac — reaches the host through a share (flagged when that share is read-only)
  • ⚠️ not shared from your Mac — the path exists only inside the VM
  • docker volumes get no verdict, and neither does anything else when the klimax CLI is too old to report its mounts

A new Volume mounts section on the overview lists what the VM can see of your Mac, with a restart pending badge when your config has changes the VM hasn't picked up. The share list is read from klimax status, not from config.yaml — klimax reads it from the live Lima instance, so it reflects what the VM has, not what it will have after a restart.

Diagnostics: network & trust

The Diagnostics tab gains the two settings that decide whether pulls work at all on a corporate network: the HTTP proxy and any extra CA trust klimax applies to dockerd, the registry mirrors and every kind node. Both fail as something else — a proxy-less pull hangs, an untrusted CA fails with x509: certificate signed by unknown authority.

An unset proxy is not "no proxy": klimax inherits macOS's own settings, so it says so.

Renames

  • Un-managed containers → Docker containers. The old name defined them by what they aren't, and needed you to know klimax's ownership model.
  • Shared with the VM → Volume mounts.
  • The VM resources heading moved outside its card, so every section title on the overview now sits at the same depth.

Requires klimax 0.1.59+ for the mount features and 0.1.60+ for proxy and CA trust; older CLIs simply omit those sections.

Install

brew upgrade --cask klimax-ui