What's new in Timoni v0.30 #609
Replies: 1 comment
|
Hi Stefan and the Timoni team, I just upgraded to Timoni v0.30.0 and wanted to share some feedback after refactoring a Countly chart module to test-drive two of the new features:
I have a question/feedback, I noticed that timoni mod push only accepts a local module directory but does not natively push a pre-built .tar archive file. I ended up pushing directly from the module directory instead . Are there plans to allow pushing built archives directly? |
Uh oh!
There was an error while loading. Please reload this page.
After a long pause, I'm back to shipping features in Timoni! This announcement rounds up the work landed in the v0.28, v0.29 and v0.30 releases: new module capabilities, a much faster development loop, and fixes for long-standing bugs.
Big shoutout to @reneleonhardt for relentlessly contributing fixes and improvements over the last few weeks 💟.
New Features
@embed()attribute. The redis and minimal example modules have been updated to showcase how config files can be templated and embedded in immutable ConfigMaps.timoni: healthChecks:field, and the#HealthCheckForConditionshorthand covers custom resources that signal readiness through status conditions.timoni mod buildandtimoni artifact buildcommands write reproducible OCI archives or OCI layout directories without a registry operation, allowing deterministic and sandboxed builders such as Nix to package Timoni artifacts without network access.timoni mod vendor crdcommand is now fully compatible with all CNCF projects, with the CRD-to-CUE importer being end-to-end tested against the Ecosystem schemas catalog.cue.mod/pkg. When publishing to a registry, the new--resolve-symlinksflag oftimoni mod pushandtimoni artifact pushcopies the symlink targets into the artifact to make it self-contained.timoni bundle buildcommand now builds instances concurrently. The new--concurrencyflag defaults to the number of CPU cores capped at 8.timoni fmtcommand recursively formats the CUE files of modules, bundles and runtimes. In CI,timoni fmt --diffprints a unified diff and exits with a non-zero code when files need formatting.Performance Improvements
Local modules are now built in place, directly from their source directory, instead of being copied to a temp dir. This makes the development loop much faster: build time no longer depends on module size, instance values are injected as in-memory overlays leaving the source directory untouched, and CUE errors point to the real files being edited.
The bundle instance pipeline has been restructured:
Building a bundle of 50 redis instances (Apple M5 Max):
The
timoni bundle applycommand gains the memory reduction, while remaining sequential by design.Fixes and Improvements
metadata.nameandmetadata.namespace, and the kube-apiserver constraints for label and annotation keys and values. Objects in apply sets missingapiVersion,kindormetadata.namenow fail the build with an error naming the CUE path of the offending object, instead of being silently dropped from the rendered output.timoni versionnow reports the CUE version of the linked library.brew install timoniworks without adding a tap. It can also be installed with mise.Sponsors
To support the development of Timoni going forward please consider becoming a sponsor on GitHub.
All reactions