Releases: stefanprodan/timoni
v0.14.2
This patch release comes with improvements to bundle operations. At apply-time, all modules referred in a bundle are pulled from the registry before attempting the apply. At delete-time, the instances are uninstalled in reverse order, the first created instance is the last to be deleted from the cluster.
What's Changed
- Uninstall bundle instances in reverse order by @stefanprodan in #211
- Pull all modules before attempting apply by @stefanprodan in #212
Full Changelog: v0.14.1...v0.14.2
v0.14.1
This patch release comes with a fix to force applying GCP k8s-config-connector resources with immutable fields changes.
What's Changed
- Set dark mode pallet for docs website by @stefanprodan in #208
- Update dependencies by @stefanprodan in #210
Full Changelog: v0.14.0...v0.14.1
v0.14.0
New Features
- Bundle distribution - Timoni Bundles and their Runtimes can now be distributed as signed OCI artifacts stored in container registries.
- Kubernetes core APIs vendoring - Module authors can now easily import and update the CUE schemas of Kubernetes APIs with Timoni, without having to use
go get
andcue get go
commands. - Kubernetes CRDs vendoring - Module authors can now generate and update the CUE schemas of Kubernetes CRDs directly from YAML files with Timoni.
- Reproducible builds - The OCI artifacts produced by Timoni rely on Git metadata to ensure reproducible builds of modules. In addition, the storage of module artifacts in container registries has been optimised by storing the CUE schemas in a dedicated OCI layer.
New Commands
Module vendoring of Kubernetes core APIs and CRDs:
Distributing bundles, runtimes and schemas to container registries:
Authenticate to container registries:
Breaking changes
- The
--annotations
flag was renamed to--annotation
intimoni mod push
- The
--source
flag was removed fromtimoni mod push
(it is now automatically set, and can be overwritten via--annotation
) - The OCI artifacts created with Timoni v0.14 can't be pulled with Timoni v0.13 and earlier versions
- The OCI artifacts created with Timoni v0.13 and earlier versions and compatible with Timoni v0.14
Run timoni mod push --help
to see examples of how to set a module's source and other OpenContainers annotations.
What's Changed
- docs: Add the Runtime API to comparison doc by @stefanprodan in #190
- Add cmd for importing Kubernetes CRD schemas by @stefanprodan in #192
- Add cmd for importing Kubernetes API schemas by @stefanprodan in #194
- Refactor examples by @stefanprodan in #196
- Add commands for vendoring CUE schemas by @stefanprodan in #197
- Introduce Timoni's core schemas by @stefanprodan in #198
- Document Kubernetes APIs and CRDs vendoring by @stefanprodan in #199
- Add commands to push/pull artifacts by @stefanprodan in #201
- Add registry login/logout commands by @stefanprodan in #203
- Optimize the storage of modules in container registries by @stefanprodan in #204
- Document the distribution of bundles and runtimes by @stefanprodan in #205
- Consolidate artifact annotations and Git metadata by @stefanprodan in #206
- Enable dark mode for docs website by @stefanprodan in #207
Full Changelog: v0.13.1...v0.14.0
v0.13.1
What's Changed
- bundle: Fix values merge with module defaults by @stefanprodan in #189
Full Changelog: v0.13.0...v0.13.1
v0.13.0
New Features
- Bundle Runtime - a declarative API for fetching values from Kubernetes clusters.
- Module signing and verification with Sigstore Cosign.
- Enforce Kubernetes server minimum version for modules.
Breaking changes
Bundle API
The timoni(env:[TYPE]:[NAME])
CUE attribute used in Bundles was replaced with timoni(runtime:[TYPE]:[NAME])
.
The local Environment is no longer loaded by default, users need to opt-in by using the --runtime-from-env
flag in timoni bundle
commands.
To migrate, replace @timoni(env
with @timoni(runtime
in your Bundles.
Kubernetes flags
The Timoni Kubernetes command flags have been prefixed with kube
:
--kube-as string Username to impersonate for the operation. User could be a regular user or a service account in a namespace.
--kube-as-group stringArray Group to impersonate for the operation, this flag can be repeated to specify multiple groups.
--kube-as-uid string UID to impersonate for the operation.
--kube-certificate-authority string Path to a cert file for the certificate authority.
--kube-client-certificate string Path to a client certificate file for TLS.
--kube-client-key string Path to a client key file for TLS.
--kube-context string The name of the kubeconfig context to use.
--kube-insecure-skip-tls-verify if true, the Kubernetes API server's certificate will not be checked for validity. This will make your HTTPS connections insecure.
--kube-server string The address and port of the Kubernetes API server.
--kube-tls-server-name string Server name to use for server certificate validation. If it is not provided, the hostname used to contact the server is used.
--kube-token string Bearer token for authentication to the API server.
--kubeconfig string Path to the kubeconfig file.
What's Changed
- Add a YAML CRD to CUE IR conversion function by @sdboyer in #166
- Bump github.com/cyphar/filepath-securejoin from 0.2.3 to 0.2.4 by @dependabot in #181
- Prefix Kubernetes flags by @stefanprodan in #183
- Introduce the Runtime API for querying the cluster for values by @stefanprodan in #180
- Use Go 1.21 stdlib by @stefanprodan in #184
- Add cosign signing and verification for modules by @loktev-d in #182
- Enforce Kubernetes min version for modules by @stefanprodan in #185
- docs: Sign and verify modules with Cosign by @stefanprodan in #186
- ci: Push and sign minimal module by @stefanprodan in #187
- docs: Add Nix installation instructions by @stefanprodan in #188
New Contributors
Full Changelog: v0.12.1...v0.13.0
v0.12.1
What's Changed
- Fix panic when waiting for global resources by @stefanprodan in #179
Full Changelog: v0.12.0...v0.12.1
v0.12.0
Breaking Changes
- Timoni v0.12.0 is built with CUE v0.6.0. New modules generated with
timoni mod init
are not compatible with older versions of CUE due to the usage of required fields.
What's Changed
- Add support for one-off resources by @stefanprodan in #161
- Update
cuelang.org/go
to v0.6.0 by @stefanprodan in #164 - Inject runtime version info by @stefanprodan in #165
- Introduce Kubernetes metadata CUE definition by @stefanprodan in #171
- Run server-side apply operations in parallel by @stefanprodan in #172
- Build with Go 1.21 by @stefanprodan in #174
- Mark image fields as required by @stefanprodan in #176
- Update example modules by @stefanprodan in #178
Full Changelog: v0.11.1...v0.12.0
v0.11.1
What's Changed
- Update dependencies by @stefanprodan in #155
- Fail fast when waiting for resources by @stefanprodan in #156
Full Changelog: v0.11.0...v0.11.1
v0.11.0
What's Changed
- Add stale resources to the dry run output by @stefanprodan in #138
- Add completion for instances and namespaces by @jilleJr in #134
- Prettier and more colorized output for the apply commands by @jilleJr in #137
- Colorize
inspect
,status
, &bundle lint
by @jilleJr in #141 - Fix test flake for
timoni bundle build
by @stefanprodan in #147 - Add local dev setup by @stefanprodan in #148
- Update Redis to 7.0.12 and use image digest by @stefanprodan in #149
- fix: unquote instance name by @b4nst in #152
- Introduce a minimal module for
timoni mod init
by @stefanprodan in #150
New Contributors
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Changed
- feat: add YAML and JSON support for bundles by @b4nst in #128
- Document how to build bundles from JSON/YAML by @stefanprodan in #133
- Normalise the SLSA provenance files by @stefanprodan in #135
- ci: Pin cuelang version to v0.5.0 by @stefanprodan in #136
New Contributors
Full Changelog: v0.9.0...v0.10.0