All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.7.0 - 2023-02-23
install
anduninstall
commands to interact directly with the current cluster- one letter aliases to the main commands: render, install, uninstall
compile
is now calledrender
because compile itself is inherent to all commands that interact with a package- order for CRDs is ignored for performance reasons, otherwise we would need to run discover everytime a CRD is applied
0.6.0 - 2023-02-05
- order objects at same depth according to their
kind
- add
set
tocompile
subcommand to help users change specific inputs
- no automatic input for
_.files
, now it gets it from the second parameter - optional input parameter for
_.files
to keep the old experience - optional input parameter for
_.include
for packages without input - separate package crate into compiler and jsonnet crates
_.include
shared same external vars as parent compiler because of thread_local in jrsonnet
- package command was removed because its original purpose is now achieved with jsonnet bundler
- schema validation for
example.json
- you can compile with it as input to validate it
0.5.0 - 2022-07-01
_.sdk.inOrder
function to help specify the order in which your objects should be appliedkct.io
external variable for the current environment, previously global_
kct.libsonnet
to export things fromkct.io
more easily along with a future std
- refactor compiler to be more pluggable with properties and validators
- refactor bin crate as result of update to clap 3.0
fullName
now is an "installation property" under_.name
- centralize compilation information
- stop compiling archived packages due to lack of dependencies management
_
global removed in favor ofkct.io
lib
0.4.0 - 2021-12-14
- allows multiple occurrences of
input
- enable subpackages to render their own subpackages
- subpackages as normal jsonnet dependencies
- change from
_.values
to_.input
on injected global - expect
schema.json
instead ofvalues.schema.json
- read
default.json
instead ofvalues.json
for defaults - no more
default.json
, now there's onlyexample.json
to enforce explicit inputs
- fix missing conversion from
values
toinput
0.3.1 - 2021-07-03
- documentation about motivation, usage, and package structure
include
function to render a subpackage underkcps
with the provided values--output
parameter oncompile
to specify where to place compiled artifacts
- render yaml multi-documents stream instead of kubectl List object
--values|-f
option into--input|-i
on compile
- unwanted print when validating values
- wrong package version on
--version
0.2.0 - 2020-10-23
- compile KCPs from
.tgz
archives with files at root package
command to create.tgz
archives for valid KCPsfiles
function to the global for compiling files with Jinja like engine--only
and--except
parameters oncompile
to control which objects should be yieldedvalues.json
file on the KCP structure for defaults- include
lib
path for package aliasing - inspired by tanka
- stop using TLAs and use
_
global with the previous TLAs as properties - rename crates to
kct_$crate
to enable publishing on [crates.io][https://crates.io] - remove
main
field fromkcp.json
in favor of statictemplates/main.jsonnet
0.1.0 - 2020-09-29
compile
command to build your KCP into K8s objects forkubectl apply
- help options on CLI with the help of Clap
- provision of values through file or stdin
- support for jsonnet bundler by including
vendor
as search path - values validation using JSON Schema extracted from
values.schema.json
- values injection through TLA
- package description from
kcp.json
- "extensibility" guarantees by forbidding non object paths to K8s objects