github nklmilojevic/sofka v0.27.3

3 hours ago

Experimental native resource descriptions

Sofka can now describe Kubernetes resources using its existing connection and authentication setup, without starting a kubectl process for each request.

This is powered by deskribe, a new Rust library I built on kube-rs. It supports specialized descriptions for 36 resource kinds and a generic format for custom resources, based on Kubernetes' Go describers.

In my GKE benchmarks, descriptions took 100–200 ms with deskribe, compared with 500–1,000 ms through kubectl. Results depend on the resource, cluster, and authentication setup—not a guaranteed speedup everywhere.

Enable it

Native describe is experimental and opt-in. Kubectl remains the default.

For one session:

sofka --experimental-describe

Or enable it in config.toml:

[experimental]
native_describe = true

For YAML configuration:

experimental:
  native_describe: true

Then select a resource and press d as usual. Descriptions read fresh resource data, related objects, and events. Refresh keeps the selected backend, and Helm rows still show release notes.

The configuration setting supports cluster/context overrides and :reload. The CLI flag keeps native describe enabled for the entire session, regardless of configuration overrides.

What to expect

  • Custom resources use the generic native renderer.
  • Resources without an available native description use kubectl, clearly labeled kubectl fallback.
  • Native request errors are shown directly. If the kubectl fallback fails, it shows an error rather than cached YAML.
  • Exact output compatibility across kubectl versions is still experimental. Please report missing details or unexpected output.

Treat descriptions as sensitive: service-account Secret descriptions can include tokens, just as with kubectl.

Thanks to the kube-rs contributors for making this possible. Deskribe is also available on crates.io for other Rust applications that need Kubernetes resource descriptions.

What's Changed

New Contributors

Full Changelog: v0.27.2...v0.27.3

Don't miss a new sofka release

NewReleases is sending notifications on new releases.