v0.13.1 (2018-11-21)
ksonnet 0.13.1 introduces the following changes:
Bug Fixes:
- Fix panic during ksonnet-lib generate - when parameters exist after body parameter in cluster OpenAPI spec
v0.13.0 (2018-09-20)
ksonnet 0.13 introduces the following changes:
Enhancements:
- Added
--without-modules
flag to list params set within the environment #817 - Added
--tls-skip-verify
global flag to disable TLS verification #831 - Added reuse of installed packages in other scopes #833
- Added
ks pkg remove
#834 - Added validation to check environment exists prior to installing package #835
- Added garbage collection for vendored packages #837
- Helm client caches chart configuration to avoid multiple back-to-back downloads #841
- Changed
ks import
to use/
by default #843 - Upgraded cobra and pflag #845
- Added
--dir
flag to allow running ksonnet from any path #847 - Added
--override
flag toks env set
#855 - Qualified packages to allow identically named packages from different registries to be installed #855
- Dropped support for 0.0.1 apps #855
- Added
--override
flag toks env targets
#865 - Added sort for resources to handle semantic dependencies #867
Bug Fixes:
- Fixed
ks env current
to allow setting an environment only if it exists #818 - Updated deployment example from
labels
towithLabels
#823 - Fixed sourcePath for imported json on root module #844
- Fixed failing Jsonnet version and pipeline e2e tests #852
- Upgraded ksonnet-lib printer to avoid double-escaping param values #863
v0.12.0 (2018-8-2)
ksonnet 0.12.0 introduces the following changes:
Enhancements:
- Added Helm Registry support where charts operate as ksonnet parts #583
- Added docker-image target to Makefile for building an image with ks #588
- Added
--installed
flag toks pkg list
to show installed packages #600 - Changed location of cached registry manifests #604
- Added
--server
to change Kubernetes server address in an environment #612 - Added
--api-spec
to change Kubernetes API version in an environment #618 - Added
ks registry set <name> --uri <uri>
command to update a registry URI #622 - Changed GitHub-based registries to automatically follow remote branches #622
- Removed versioning for ksonnet registries #632
- Added retries up to five times for
ks apply
#639 - Added
lib/
to jsonnet path #647 - Changed vendored packages to be qualified with their versions and allow side-by-side installation #669
- Updated
ks pkg list
to show canonical versions for packages #673 - Added package version to
ks pkg list
#673 - Added package versioning support where fully-qualified package identifiers can be specified by
<registry>/<pkg>@<version>
#683 - Added
--output=json
to print tabular output as JSON #695 - Added support for packages to be installed in an environment with
ks pkg install --env <env> <registry/package>
#697 - Added environment scope for packages with
ks pkg list
#727 - Added a force option to allow re-installing an existing version of a package with
ks pkg install --force
#744 - Updated
ks upgrade
to change environment target separators from/
to.
#792 - Change
ks component list
to aggregate components from all modules #797 - Updated go-jsonnet version from dfddf2b to v0.11.2 #800
Bug Fixes:
- Allowed component selection for
ks diff
#592 - Ensured registry paths exist prior to adding #601
- Picked up proper kubernetes version when running on OpenShift #640
- Re-added docker image resolver for setting parameters #645
- Fixed case where
ks apply --dry-run
modified the cluster #699 - Reworked failing end-to-end tests #706
- Fixed error message when passing verbose flag to
ks generate
#772 - Update resource version on retry due to conflict #787
- Fixed case where params are required to render multiple components #790
- Allow removing component in a module with dot notation #796
- Fixed sorting of objects for consistent
ks diff
behavior #808 - Fixed
ks diff
to return all object types #811 - Updated
ks diff
to use environment rather than current context #811
v0.11.0 (2018-6-1)
ksonnet 0.11 introduces the following changes:
ks apply
will now use merge patching when it can, so Service NodePorts will not be reassignedks diff
now provides more concise output- ksonnet built-in prototypes have been reworked to not use ksonnet-lib
- Allow parameters with underscores in the name
- Jsonnet printer now produces jsonnet formatter compliant output
ks show
output in JSON format will use a Kubernetes list object- Components can now return lists and ksonnet will wrap them in a Kubernetes list object
- App override configuration now has a kind/apiVersion
- Fixed various panics due to ksonnet not being run in an application or receiving unknown input
v0.10.2 (2018-5-11)
ksonnet 0.10.2 is a bug fix release
- gracefully recover when setting parameters from the command line
- add module paths to jsonnet path when evaluating components
- support all Jsonnet language functions
- adds option to reduce verbosity of debug logging
- re-enable native functions for Jsonnet vm
- list components in alphabetical order
- disable ksonnet-lib import in environments unless explicitly required
- omit library gitVersion if it is null
v0.10.1 (2018-04-27)
ksonnet 0.10.1 fixes issues with evaluating components
v0.10.0 (2018-04-26)
ksonnet 0.10.0 introduces the following new features:
- support for YAML/JSON components
- global environment parameters
- use Jsonnet AST for all Jsonnet transformations
- filesystem based registries
- upgrade jsonnet to 0.10
- registry and environment overrides
- many bug fixes and usability improvements
Closed issues:
- Iteration plan for release 0.10 #360
- Public Git Repository Setup #352
- Generate registry scaffolding #234
- ks disk-based registry can't generate prototype #480
- param::import is broken in alpha version #475
- ks apply --component not working on 0.10.0-alpha.2 or 0.10.0-alpha.3 #472
- ks param set does not seem to work for yaml components #468
- ks import doesn't take namespace into account #467
- X.509 certificate issue when executing ks init #436
- Move
main.go
tocmd/ks
#112
Merged pull requests:
- Adding initial override documentation #487 (bryanl)
- Adding initial registry document #486 (bryanl)
- updating ksonnet-lib to v0.1.0 #485 (bryanl)
- Removing index columns from e2e tests #484 (bryanl)
- edit ksonnet license info so that GitHub recognizes it #483 (eirinikos)
- Rework jsonnet external vars #482 (bryanl)
- Update printer for jsonnet nulls #481 (bryanl)
- Support double quoted params in prototypes #479 (bryanl)
- .yml is a valid YAML file extension #477 (bryanl)
- Cleaning up travis build #474 (bryanl)
- bug: filter components #473 (bryanl)
- Allow setting nested global env vars from cli #471 (bryanl)
- Add random id to YAML imported objects #469 (bryanl)
v0.10.0-alpha.3 (2018-04-20)
Fixed bugs:
- Support GitHub registries with contents in the root path. #459
Closed issues:
- ksonnet version 0.10.0-alpha.2 unable to import libsonnet files #464
- Cannot use importstr: ERROR find objects: output: unknown node type: (*ast.ImportStr) #461
- update ksonnet libs #454
- ks param set command is not able to set array or map. #448
- ks param list command shows error if components/params.libsonnet has null or array. #447
- ks import -f some-component.yaml does not set component index in components/params.libsonnet #437
- Regression from 0.9.1: Getting "ERROR Unauthorized" when using --token parameter in 0.9.2 #430
Merged pull requests:
- Reorganize layout #466 (bryanl)
- Supply proper codes for building env jsonnet #465 (bryanl)
- Updating ksonnet-lib printer to handle importstr #463 (bryanl)
- When importing YAML, extract objects into separate component files #462 (bryanl)
- Generate proper vendor paths for gh registry with in root #460 (bryanl)
- evaluator is missing ksonnet vendor path #458 (bryanl)
- Fixed year 2017 -> 2018 #456 (uthark)
- Add env update command #455 (bryanl)
- Handle null as a value #453 (bryanl)
v0.10.0-alpha.2 (2018-04-17)
Fixed bugs:
- Drop-in YAML components with parameters #426
Closed issues:
- ksonnet 1.10 no longer uses environments/env/main.jsonnet #446
- ks diff local:prod local:dev: RUNTIME ERROR: max stack frames exceeded #445
ks generate
panics "runtime error: index out of range" instead of printing usage #441ks param list
: ERROR retrieve values for mixin.spec.template.spec.hostNetwork: can't handle type bool #438ks generate prototype --help
should be a thing #120
Merged pull requests:
- Set maps in arrays from cli #452 (bryanl)
- Convert diff to use pipline #451 (bryanl)
- Ensure param diff works with all component types #450 (bryanl)
- Use main.jsonnet for rendering components #449 (bryanl)
- Support bool for object values in YAML #444 (bryanl)
- Don't panic when runing
ks generate
with no args #443 (bryanl) - Merge in new YAML params #442 (bryanl)
- Fixing broken link in docs and also typos #439 (Maerville)
- Add help when generating or previewing prototypes #435 (bryanl)
- FS registry can handle relative paths #434 (bryanl)
v0.10.0-alpha.1 (2018-04-10)
Implemented enhancements:
- Generated environment parameters can't assume component parameters path #354
- Upgrade to client-go version 6 #297
- Support local folders for registries #232
- Load test data as fixtures #168
- Document or provide better error messages for breaking ks changes #155
- Consider naming the default environment after the initialized context #82
- Move
constructBaseObj
out of root.go #72 - Autogenerate .gitignore file (e.g. for libs or hidden files) #55
Fixed bugs:
Closed issues:
- In-cluster API access #431
- inception server not working #429
- Question: import not available kubeflow/core/all.libsonnet and other problems with master #420
- ks pkg install does not install the correct branch set in the registry #398
- 1.9 & 1.10 support? #394
ks -v
should print an equivalentjsonnet
command line string #378- Proposal: Create
ks param unset
command for "unsetting" params #325 - use /swagger.json from apiserver for api-spec #264
- Update VSCode extension to work better with the new
ks
-generated files #224 - Implement
ks install
#217 - Increase test coverage #216
- Should be able to be used offline #204
- Add bash completion #124
- Consolidate
expandEnvObjs
andexpandEnvCmdObjs
into one function #70 - Move core logic of new commands (
dep
andregistry
) to pkg kubecfg #65
Merged pull requests:
- Action option tests #433 (bryanl)
- bug: param list with env #432 (bryanl)
- listing params for yaml components works for more cases #428 (bryanl)
- add .ks_environment to generated gitignore #425 (bryanl)
- Add
ks env current
command #424 (bryanl) - Add JSON output to
env list
#423 (bryanl) - import component from a http URL #422 (bryanl)
- Support global env parameters #421 (bryanl)
- Add e2e for built in prototypes #417 (bryanl)
- Print location of kubeconfig #416 (bryanl)
- Update
show
to ksonnet action #415 (bryanl) - Update delete action #414 (bryanl)
- Print more stack frames on infinite loops #413 (redbaron)
- generate env params with ext var to support modules #412 (bryanl)
- Param unset #411 (bryanl)
- Override default env name #410 (bryanl)
- ignore app override by default #409 (bryanl)
- Handle YAML components which end with
--
#408 (bryanl) - Rename component namespaces to modules #407 (bryanl)
- Allow for regeneration of lib and registry cache #406 (bryanl)
- Allow user to skip inclusion of default registries #405 (bryanl)
- remove stringsAppendToPath #404 (bryanl)
- moved env to pkg/env #403 (bryanl)
- update actions to use action args #402 (bryanl)
- Reworks apply action #401 (bryanl)
- Create plumbing for cluster based e2e tests #399 (bryanl)
- Action validate #397 (bryanl)
- introduce method to test cmd flags #395 (bryanl)
- removing need for github access for registry tests #393 (bryanl)
- use provided tls configuration if possible when fetching api spec #392 (bryanl)
v0.9.1 (2018-03-08)
This patch focuses on fixes around usability bugs.
Closed issues:
Merged pull requests:
- bug: mapContainer extension typo #350 (bryanl)
- bug: env used incorrent params for rendering #349 (bryanl)
- bug: 0.1.0 apps don't rename envs in config #347 (bryanl)
- Fix formatting for param diff #344 (jessicayuen)
- Parse server version from GitVersion #343 (jessicayuen)
v0.9.0 (2018-03-05)
To update older ksonnet applications, run ks upgrade --help
.
This release focuses on two major areas:
-
Changes to the underlying ksonnet-lib dependency and utilizing them in ks. The changes involve a major uplift to how the ksonnet language APIs are generated, so that support for future Kubernetes versions are easier.
-
Improvements to the support for environments and components. Environments are now able to specify targets, to apply a subset of components as opposed to all components. We've introduced the concept of component namespaces to add division and hierarchy to components. We've also added commands to support removing and listing of components.
In 0.8.0, each ks application contained a spec.json file per environment. This file contained the environment specification details; corresponding to a Kubernetes cluster server address and namespace.
i.e.,
{
"server": "https://35.230.00.00",
"namespace": "default"
}
With 0.9.0, we will be consolidating majority of the application specification
details into a top-level app.yaml file. As opposed to opening multiple files,
this approach will make it easier for users to configure changes in a single
place. Similar to spec.json
, this metadata will be auto-generated when a
environment is created or modified from the command line. However, it is also
meant to be user-modifiable.
i.e.,
apiVersion: 0.0.1
environments:
default:
destination:
namespace: default
server: https://35.230.00.00
k8sVersion: v1.7.0
path: default
kind: ksonnet.io/app
name: new
registries:
incubator:
gitVersion:
commitSha: 422d521c05aa905df949868143b26445f5e4eda5
refSpec: master
protocol: github
uri: github.com/ksonnet/parts/tree/master/incubator
version: 0.0.1
You will notice a couple new fields under the environments field.
-
destination is identical to the contents of the previous spec.json, containing the server address and namespace that this environment points to.
-
k8sVersion is the Kubernetes version of the server pointed to at the destination field.
-
path is the relative path in the environments directory that contains other metadata associated with this environment. By default, path is the environment name.
In 0.8.0, each environment's .metadata
directory stored 3 files related to
the generated ksonnet-lib
. It was unecessary and also costly as the number of
environments grow. We didn't need to store multiple copies of the same API
version on disk.
With 0.9.0, the Kubernetes API version that each environment uses will be
recorded in the environment specification (as seen in the previous section).
The metadata files are cached once locally per k8s API version in lib
.
These files also no longer need to be checked into source control, as ks will auto-generate lib files that aren't found.
In 0.8.0, there was no simple way for users to declare that a environment should only operate on a subset of components.
With 0.9.0, environments can now choose the set of components that they wish to operate (i.e., apply, delete, etc.) on. These targets can be specified in the app.yaml file, mentioned in an earlier section.
For example, if the components directory is structured as follows:
my-ks-app
├── components
│ ├── auth
│ │ ├── ca-secret.jsonnet
│ │ ├── params.libsonnet
│ │ └── tls-certificate.jsonnet
│ ├── dev
│ │ ├── memcached.jsonnet
│ │ └── params.libsonnet
│ ├── params.libsonnet
│ └── prod
│ ...
An environment configuration in app.yaml may appear as follows:
environments:
dev:
k8sVersion: 1.7.0
destinations:
namespace: default
server: https://35.230.00.00
targets:
- auth
- dev
In the above example, the dev environment would only operate on the components within the auth and dev component namespaces.
Note: Component files do not need to be namespaced. Top-level components and individual component files can also be referenced by targets.
ks component list
is a new command. See docs here.
ks component rm
is a new command. See docs here.
- Create Jsonnet AST printer
- Convert ksonnet-lib generation process to Asonnet AST
Closed issues:
- tutorial document as linked from Google seems semi-broken? #322
- Incorrect imports in ks generated files #321
- delete component ERROR strconv.Atoi: parsing "8+": invalid syntax #316
- ks param set when used with boolean does not create string value #311
- Move custom constructors k8s.libsonnet to k.libsonnet #304
- ERROR user: Current not implemented on linux/amd64 #298
- Difficulty handling components unique to environments #292
- ks delete ERROR strconv.Atoi #272
- Create darwin binaries and make the available via brew #270
- Unable to install packages with the same name under different registries #269
- prototypes can't rely on a registry name, but they do #262
- Confirm that ksonnet-lib generation works for Kubernetes 1.9#260
- ks can't recognise the registry 'kubeflow'#258
- ksonnet.io website is not available#256
- ks init fails when using $KUBECONFIG env var#251
- Badly formatted client-go version string#250
- Remove components#243
- List components#242
Merged pull requests:
- ksonnet app.yaml format changes in next minor release. Handle both versions #338 (bryanl)
- Attempt to generate lib directory when not found #337 (jessicayuen)
- Fix the execution paths for the 0.8 > 0.9 migration warning #335 (jessicayuen)
- Resolve api spec based on swagger version #334 (jessicayuen)
- Use new ksonnet lib generator #333 (bryanl)
- Set param boolean types as strings #331 (jessicayuen)
- Create support for plugins in ksonnet #330 (bryanl)
- Fix bug with invalid base.libsonnet import path #329 (jessicayuen)
- App spec to take a single destination #328 (jessicayuen)
- Add warning for running deprecated ks app against ks >= 0.9.0 #327 (jessicayuen)
- Pull client-go logic out of cmd/root.go and into client/ package #324 (jessicayuen)
- Introduce component namespaces #323 (bryanl)
- Add LibManager for managing k8s API and ksonnet-lib metadata #315 (jessicayuen)
- Migrate environment spec.json to the app.yaml model #309 (jessicayuen)
- Add interface for Environment Spec #308 (jessicayuen)
- Extract ksonnet generator #307 (bryanl)
- [docs] Clarify prototypes + add troubleshooting issue #303 (abiogenesis-now)
- updating 1.0 roadmap #302 (bryanl)
- use afero when possible #301 (bryanl)
- Upgrade to client-go version 5 #299 (jessicayuen)
- Proposal: Modular components and cleaner environments #295 (jessicayuen)
- pruning vendor from dep conversion #293 (bryanl)
- Versions retrospective and fixes #289 (hausdorff)
- Add remove component functionality #288 (jessicayuen)
- Construct apimachinery version #285 (bryanl)
- Removing realpath #283 (kris-nova)
- Implement explicit env metadata #282 (jessicayuen)
- Design: propose improvements to the "fresh clone" story #280 (hausdorff)
- Design proposal: explicit environment metadata #279 (jessicayuen)
- Small fixes to release process #275 (jbeda)
- Document using goreleaser #274 (jbeda)
- Clarify error message for duplicate packages on install #271 (jessicayuen)
- Add command 'component list' #268 (jessicayuen)
- design proposal: ksonnet lib simple constructors #267 (bryanl)
- convert from govendor to dep #265 (bryanl)
- Reference current Slack channel in README #257 (lblackstone)
- Supports k8s version number including symbols etc. #254 (kyamazawa)
- Handle case where KUBECONFIG is set without named context #253 (lblackstone)
- Create a GitHub issue template #252 (lblackstone)
- Allow make file to generate ks bin with custom version and name #249 (bryanl)
v0.8.0 (2017-12-20)
Implemented enhancements:
Fixed bugs:
param set
incorrectly supporting hyphenated param names #214- Makefile hardcodes version #198
- Accurately read/write non-ASCII param identifiers #219 (jessicayuen)
Closed issues:
- Packages should be able to depend on other packages #238
- YAML components are currently disabled; docs say they aren't #208
- Confusing info in
ks version
#199 - Support/document using github token to increase rate limits #196
- Issue with redis-stateless prototype #193
- ks version missing/incorrect data #170
- Create binary releases #131
- Check apiVersion numbers #75
- Add links to http://ksonnet.heptio.com/ #20
Merged pull requests:
- Test all branches of GH URI-parsing code #245 (hausdorff)
- Implement command
ks registry add
#228 (jessicayuen) - Check error while enumerating environments #220 (tanner-bruce)
- [docs] Fix premature claim of YAML support in components explanation #213 (abiogenesis-now)
- Reverse name, registry columns for pkg list #206 (jessicayuen)
- [docs] Remove (now optional)
--name
syntax fromks generate
commands #205 (abiogenesis-now) - Revert "Update default version in Makefile to v0.7.0" #203 (jessicayuen)
- Implement github token to work around rate limits #201 (jbeda)