Releases: stefanprodan/timoni
v0.23.0
This version comes with new features and various bug fixes.
To support the development of Timoni going forward please consider becoming a sponsor on GitHub.
The highlight of this release is that Timoni comes with CUE v0.11 and extends suport for schema generation from Kubernetes CRDs. Starting with this version, CRDs with oneOf
and anyOf
such as Istio, Flagger, Google Cloud can be imported into Timoni modules using timoni mod vendor crd
.
What's Changed
- Fix CLI autocompletion on ZSH when installed with Homebrew by @natemccurdy in #443
- Fix typo in website home by @matheuscscp in #441
- Fix CRD import issue with
oneOf
,not
, andanyOf
by @errordeveloper in #424 - Bumps CUE to version 0.11.0 by @jmgilman in #458
- Add --digest flag to
timoni apply
andtimoni build
by @matheuscscp in #452 - Update dependencies to Kubernetes 1.32.0 by @stefanprodan in #460
- Add the
Bundle
Go type to the public API by @stefanprodan in #461 - Allow disabling waiting for specific resources by @stefanprodan in #462
- Fix cluster-wide resource readiness check by @stefanprodan in #464
New Contributors
- @natemccurdy made their first contribution in #443
- @matheuscscp made their first contribution in #441
Full Changelog: v0.22.1...v0.23.0
v0.22.1
This version comes with various bug fixes and updates Timoni to Kubernetes 1.31
To support the development of Timoni going forward please consider becoming a sponsor on GitHub.
What's Changed
- [bundle] Fix local module refs for multi-cluster by @huguesalary in #429
- Honor the log related cli parameters by @tired-old-man in #434
- fix: fix slice init length by @cuishuang in #430
- Update dependencies to Kubernetes v1.31 by @stefanprodan in #438
New Contributors
- @huguesalary made their first contribution in #429
- @tired-old-man made their first contribution in #434
- @cuishuang made their first contribution in #430
Full Changelog: v0.22.0...v0.22.1
v0.22.0
Timoni's CUE engine has been updated from v0.8.1 to v0.9.2.
To support the development of Timoni going forward please consider becoming a sponsor on GitHub.
What's Changed
- Doc typo fix by @falstaff1288 in #396
- Refactor
cmd/timoni
and extract reconciler logic to dedicated package by @errordeveloper in #366 - Update
cuelang.org/go
to v0.9.1 by @myitcv in #401 - Post-refactoring cleanup by @errordeveloper in #404
- build(deps): bump the ci group with 3 updates by @dependabot in #402
- Add language version to all modules by @stefanprodan in #407
- Update dependencies to Kubernetes v1.30.2 by @stefanprodan in #408
New Contributors
- @falstaff1288 made their first contribution in #396
- @myitcv made their first contribution in #401
Full Changelog: v0.21.0...v0.22.0
v0.21.0
Timoni's CUE engine has been updated from v0.7.1 to v0.8.1.
To support the development of Timoni going forward please consider becoming a sponsor on GitHub.
What's Changed
- Update dependencies to Kubernetes 1.29 by @stefanprodan in #377
- Update
cuelang.org/go
to v0.8.1 by @stefanprodan in #378 - Add finalizers to
#Metadata
definition by @stefanprodan in #379 - build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by @dependabot in #382
- ci: Build release with latest Go 1.22 patch by @stefanprodan in #384
Full Changelog: v0.20.0...v0.21.0
v0.20.0
This release was made possible by the generous support of RawkodeAcademy 💟.
To support the development of Timoni going forward please consider becoming a sponsor on GitHub.
New Features
- Referencing local modules in bundles - Timoni now supports referencing local modules in bundle files, allowing users to define a bundle that includes modules from the same repository using relative paths.
- #ImagePullSecret - The
#ImagePullSecret
definition is now available in the Timoni's CUE schemas that can be used by module authors to generate Kubernetes Secrets of typekubernetes.io/dockerconfigjson
. - Scoop and Proto installers - The Timoni CLI is now available as a Scoop package for Windows and as a Proto plugin for Linux, macOS and Windows.
New Documentation
- Flux OCI sync - A guide on how to configure Flux to deploy workloads from OCI artifacts hosted on container registries.
- Flux AIO upgrade - A guide on how to upgrade Flux AIO on Kubernetes clusters.
What's Changed
- Generate a Markdown Table from a Module Configuration by @Nalum in #318
- doc/fix cue command parameter order by @fberube in #326
- fix(doc): Fix typo on "Push to GitHub Container Registry" by @yyvess in #328
- fix(engine): return the cue values merge error if non nil by @GeorgeMac in #331
- chore: add proto plugin by @b4nst in #339
- Use shorter syntax for string keys in CUE schemas by @errordeveloper in #335
- Refactor
#ImagePullSecret
CUE generator by @stefanprodan in #342 - Build with Go 1.22 by @stefanprodan in #343
- Update
cuelang.org/go
to v0.7.1 by @stefanprodan in #344 - Update
fluxcd/pkg/ssa
to v0.36.0 by @stefanprodan in #345 - Run e2e tests for Kubernetes v1.29.2 by @stefanprodan in #346
- Document the Flux AIO upgrade procedure by @stefanprodan in #347
- Correct reference to
timoniv1.#ObjectReference
by @ametad in #350 - Add support for file based module in bundle by @b4nst in #348
- Add scoop.sh instructions to install.md by @fcbry in #354
- Add tests for bundles with local modules by @stefanprodan in #355
- Allow runtime definition to be coupled with a bundle by @stefanprodan in #357
- Document the
flux-oci-sync
usage by @stefanprodan in #358 - Update Redis module to v7.2.4 by @stefanprodan in #359
- Add docs for referencing local modules in bundles by @stefanprodan in #360
- Adjust copyright year by @stefanprodan in #361
New Contributors
- @fberube made their first contribution in #326
- @yyvess made their first contribution in #328
- @GeorgeMac made their first contribution in #331
- @ametad made their first contribution in #350
- @fcbry made their first contribution in #354
Full Changelog: v0.19.0...v0.20.0
v0.19.0
Timoni v0.19.0 comes with a new documentation section dedicated to learning CUE lang and authoring Timoni modules.
New Documentation
- CUE Features Walkthrough - A reference guide that walks you through the core features of CUE and how to use them to generate Kubernetes objects.
- Get Started with Timoni Modules - A step-by-step guide on how to create Timoni modules.
- Immutable ConfigMaps and Secrets - A guide on how to generate immutable ConfigMaps and Secrets to trigger Deployment rolling updates.
- Kubernetes Custom Resources - A guide on how add Kubernetes Custom Resources and CRD schemas to Timoni modules.
- Run tests with Kubernetes Jobs - A guide on how to add end-to-end tests to Timoni modules.
New Commands
- timoni mod init --blueprint - The init command now supports the
--blueprint
flag that allows initializing a module from a custom blueprint.
What's Changed
- docs: Format code blocks with CUE v0.7.0 by @stefanprodan in #294
- Change the
config
type to definition by @stefanprodan in #302 - ci: Push blueprints on-demand by @stefanprodan in #303
- docs: Add CUE walkthrough and module dev guides by @stefanprodan in #301
- docs: specifies where the instance inventory is stored by @jmgilman in #307
- Find the correct kubeconfig based on the current context by @algobot76 in #310
- Add Cosign keyless verification example by @Nalum in #316
- Persist the Module OCI annotations in the in-cluster Instance by @stefanprodan in #315
- Fix typo by @webwurst in #320
- Add
#ImmutableConfig
generator to Timoni's CUE schemas by @stefanprodan in #321
New Contributors
- @jmgilman made their first contribution in #307
- @algobot76 made their first contribution in #310
- @webwurst made their first contribution in #320
Full Changelog: v0.18.0...v0.19.0
v0.18.0
Timoni's CUE engine has been updated to v0.7.0.
New Features
- Timoni CUE Schemas - New Timoni CUE schemas are available under the
timoni.sh/core/v1alpha1
package that can be imported and used by module authors to generate Kubernetes metadata for components, image pull secrets, resource requirements and semantic version constraints.
New Commands
timoni artifact tag
- Allow adding extra tags to OCI artifacts after publishing. This command can be used to move the latest tag for modules, in case the latest version needs to be retracted.timoni mod vet
- The vet command gains two new optional flags,--name
and--values
, that allow vetting a module with a custom name and values.timoni --registry-insecure
- All commands that perform pull and push operations gain a new optional flag,--registry-insecure
, that allows connecting to container registry servers over plain HTTP or with self-signed certs.
What's Changed
- Improve cmd test coverage by @stefanprodan in #260
- Document the module config required fields by @stefanprodan in #261
- Improve Timoni's CUE
#Metadata
schema by @stefanprodan in #263 - Add instance definitions to Timoni's CUE schemas by @stefanprodan in #264
- Add resource requirements to Timoni's CUE schemas by @stefanprodan in #265
- Add semver validation to Timoni's CUE schemas by @stefanprodan in #266
- Add image pull secret generator to Timoni's CUE schemas by @stefanprodan in #267
- Update
cuelang.org/go
to v0.7.0 by @stefanprodan in #276 - Add
--name
flag totimoni mod vet
command by @Nalum in #272 - Add
#MetaComponent
generator to Timoni's CUE schemas by @stefanprodan in #270 - Refactor init module by @stefanprodan in #280
- Refactor Redis module using latest schemas by @stefanprodan in #282
- Document the Timoni's CUE schemas by @stefanprodan in #283
- Add
timoni artifact tag
command by @stefanprodan in #281 - Document
managed-by
label usage by @stefanprodan in #284 - Bump golang.org/x/crypto from 0.16.0 to 0.17.0 by @dependabot in #286
- Introduce starter module blueprint by @stefanprodan in #262
- Allow connecting to insecure container registries by @stefanprodan in #290
- Add
--values
arg totimoni mod vet
cmd by @b4nst in #292 - Add
--blueprint
arg totimoni mod init
cmd by @stefanprodan in #291 - Add
#ObjectReference
to Timoni's CUE schemas by @stefanprodan in #293 - Fix
x-kubernetes-preserve-unknown-fields
path mismatch by @stefanprodan in #279
New Contributors
Full Changelog: v0.17.0...v0.18.0
v0.17.0
New Features
- Multi-cluster deployments - Starting with this version, Timoni offers a declarative way of managing the delivery of applications across environments.
- Flux AIO Distribution - Flux All-In-One is a lightweight Flux CD distribution made with Timoni for running the GitOps Toolkit controllers as a single deployable unit.
- Helm interoperability - With Flux AIO, Timoni users can take full advantage of existing Helm charts by leveraging Flux's helm-controller and the Timoni
flux-helm-release
module.
What's Changed
- Create output dir instead of returning error for OCI artifacts by @FrenchBen in #246
- Handle immutable resources at dry-run by @stefanprodan in #247
- Tidy up commands by @stefanprodan in #248
- Correct small mistakes in the docs by @mocdaniel in #249
- Update dependencies to Kubernetes v1.28 by @stefanprodan in #254
- Add multi-cluster deployments capability to bundles by @stefanprodan in #250
- Update example modules by @stefanprodan in #255
- Improve error handling by @stefanprodan in #256
- Add Flux AIO distribution to docs by @stefanprodan in #258
- Add Helm interoperability with Flux AIO to docs by @stefanprodan in #259
New Contributors
- @FrenchBen made their first contribution in #246
- @mocdaniel made their first contribution in #249
Full Changelog: v0.16.0...v0.17.0
v0.16.0
New Features
- Module caching - Timoni maintains a local cache of modules pulled from remote container registries to reduce network traffic and to speed up the bundle apply operations.
New Commands
- timoni bundle vet - The vet command validates that a bundle and its runtime definition conforms with Timoni's schema. If the validation passes, Timoni will list all the instances found in the computed bundle. With
--print-value
, Timoni will write the Bundle computed value to stdout which is particular useful when debugging runtime attributes.
What's Changed
- Add node affinity to example modules by @stefanprodan in #236
- Introduce
timoni bundle vet
command by @stefanprodan in #234 - Use direct cluster reader for health checks by @stefanprodan in #239
- docs: update secret doc to use FIFO instead of temporary file by @b4nst in #240
- Implement caching for modules pulled from registries by @stefanprodan in #237
- Update dependencies by @stefanprodan in #241
- Add install docs for Arch Linux and openSUSE by @stefanprodan in #242
- Add local cache to install docs by @stefanprodan in #243
Full Changelog: v0.15.0...v0.16.0
v0.15.0
🎉 Timoni now has an official logo and a brand-new website homepage.
New Features
- Bundle Secrets Injection - Timoni supports injecting secrets when deploying application from CI runner secret store, in-cluster secrets and SOPS encrypted files.
- Running tests with Kubernetes Jobs - Timoni has the capability of running e2e tests after installing or upgrading a module instance. Module authors can define tests with Kubernetes Jobs and include those as the last stage of a module apply.
- Update Timoni's CUE schemas - Module authors can now keep the Timoni's CUE schemas up-to-date using the
timoni artifact pull
command.
New Commands
- timoni bundle status - The status command lists the instances managed by a Bundle, including their Module information, the container images referenced in the Module and the current status of all managed Kubernetes resources.
- timoni inspect values - The inspect command prints the user-supplied values enabling reproducible instance builds based on the metadata stored in cluster.
- timoni mod vet - The vet command verifies that a local module has a valid file structure and contains required schemas, then it builds and validates the resulting Kubernetes objects. When run with the
--debug
flag, the validation usesdebug_values.cue
instead of the default values, allowing vetting of modules with required values that don't have a default.
Breaking changes
- Bundle delete command new format is
timoni bundle delete <name>
, the--namespace
flag is now ignored and the-A
flag was removed.
What's Changed
- Refactor
timoni bundle delete
by @stefanprodan in #213 - Persist the user-supplied values in the cluster storage by @stefanprodan in #214
- Use tabular view for
timoni inspect resources
by @stefanprodan in #215 - Bump golang.org/x/net from 0.14.0 to 0.17.0 by @dependabot in #217
- Update example modules by @stefanprodan in #219
- Add
timoni bundle status
command by @stefanprodan in #216 - Migrate the instance storage from the Opaque type by @stefanprodan in #221
- Add capability to run tests with Kubernetes Jobs by @stefanprodan in #220
- Improve module validation and add
timoni mod vet
cmd by @stefanprodan in #222 - Inventorying of container images referenced by a modules by @stefanprodan in #223
- ci: Publish Timoni's CUE schemas to GHCR by @stefanprodan in #224
- ci: Fix schemas push by @stefanprodan in #225
- Bump example model to Redis 7.2.2 by @stefanprodan in #226
- Refactor action cue schema by @stefanprodan in #227
- Add Timoni logo by @stefanprodan in #228
- Bump the ci group with 1 update by @dependabot in #229
- fix: vendor CRDs with no spec by @b4nst in #230
- Design the homepage of Timoni's website by @stefanprodan in #231
- Add social cards to website by @stefanprodan in #232
- Document how to inject secrets at apply-time by @stefanprodan in #233
Full Changelog: v0.14.2...v0.15.0