Ksonnet Versions Save

A CLI-supported framework that streamlines writing and deployment of Kubernetes configurations to multiple clusters.

v0.10.0-alpha.1

6 years ago

Change Log

0.10.0 alpha 1

Full Changelog

Implemented enhancements:

  • Generated environment parameters can't assume component parameters path #354
  • 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:

  • Misleading kubeconfig log message #287
  • Consolidate type checking between params and prototypes #44

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 equivalent jsonnet 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 and expandEnvCmdObjs into one function #70
  • Move core logic of new commands (dep and registry) to pkg kubecfg #65

Merged pull requests:

v0.9.2 (2018-03-27)

Full Changelog

Implemented enhancements:

  • Consider switching to dep from govendor #197
  • Layer of abstraction for commands that take an 'env' arg. #8

Fixed bugs:

  • Automatically generate the std.extVar and “\_\_ksonnet/components” when in ksonnet directory #259

Closed issues:

  • ks param set is broken #381
  • Remove custom native methods provided as of jsonnet 0.10.0 #376
  • Upgrade go-jsonnet to 0.10.0 #374
  • ks env set default --namespace=somenamespace doesn't change the namespace #373
  • Add environment overrides for app.yaml #370
  • Pull fresh go-jsonnet #353
  • Investigate renaming prototypes #296
  • Comparison with kapitan #261
  • Support JSON / YAML #240
  • Allow object literal params #218
  • Consider supporting ks param add #211

Merged pull requests:

v0.9.1 (2018-03-08)

Full Changelog

Fixed bugs:

Closed issues:

  • version 0.9 - ks show <env> not picking up env param overrides #346
  • ks delete default fails #342
  • Iteration plan for 0.9 #306

Merged pull requests:

v0.9.2

6 years ago

Changelog

e13f7f3 Merge pull request #391 from bryanl/release-0.9.2 3d46bb5 releasing 0.9.2 45553db Merge pull request #389 from bryanl/bug-snippet-jsonnet-10 70cc9dd handle jsonnet ast.ApplyBrace in env files b2f8338 Merge pull request #388 from bryanl/bug-update-env-ns f59c3f1 bug: fix updating env namespace


Automated with GoReleaser Built with go version go1.10 darwin/amd64

v0.9.1

6 years ago

Changelog

e380640 Merge pull request #350 from bryanl/bug-extension-map-container 2b4acaf Merge pull request #349 from bryanl/bug-use-env-params 3b225dd Merge pull request #347 from bryanl/bug-rename-env b70bdab Merge pull request #351 from jessicayuen/changelog-v0.9.1 a901732 Add ChangeLog for v0.9.1 c6aa7d2 bug: mapContainer extension typo e377526 bug: env used incorrent params for rendering e2d51c9 bug: 0.1.0 apps don't rename envs in config e428442 Merge pull request #344 from jessicayuen/param-diff 52af3f6 param diff to print colors 1fdcd06 Fix formatting for param diff aed9283 Merge pull request #343 from jessicayuen/parse-version ad39792 Parse server version from GitVersion


Automated with GoReleaser Built with go version go1.10 darwin/amd64

v0.9.0

6 years ago

v0.9.0 (2017-03-05)

Iteration Plan

Full Changelog

To update older ksonnet applications, run ks upgrade --help.

Overview

This release focuses on two major areas:

  1. 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.

  2. 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.

Changes to Environment Metadata

spec.json > app.yaml

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.

  1. destination is identical to the contents of the previous spec.json, containing the server address and namespace that this environment points to.

  2. k8sVersion is the Kubernetes version of the server pointed to at the destination field.

  3. path is the relative path in the environments directory that contains other metadata associated with this environment. By default, path is the environment name.

Consolidation of lib files

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.

Targets & Component Namespaces

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.

Command Changes

ks component list

ks component list is a new command. See docs here.

ks component rm

ks component rm is a new command. See docs here.

ksonnet-lib Changes

  • Create Jsonnet AST printer
  • Convert ksonnet-lib generation process to Asonnet AST

Github

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:


Automated with GoReleaser Built with go version go1.10 darwin/amd64

v0.8.0

6 years ago

Full Changelog

Implemented enhancements:

  • Package list/install is awkward #195
  • Rework demos/examples in light of #169 #194

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:


Automated with GoReleaser Built with go version go1.9.2 darwin/amd64

v0.7.0

6 years ago

Initial Release

This is the initial launch of ksonnet, a CLI-supported framework that streamlines how you write and deploy Kubernetes configurations.

Features

Specifically, ksonnet allows you to:

  • Reuse common manifest patterns (within your app or from external libraries)
  • Customize manifests directly with powerful object concatenation syntax
  • Deploy app manifests to multiple environments
  • Diff across environments to compare two running versions of your app
  • Track the entire state of your app configuration in version controllable files

For more info, see the official website.

What's changed, compared to previous kubecfg releases?

This release aggregates the work of kubecfg and other ksonnet open-source projects into a single unified tool. If you've been previously involved in the community, these may seem familiar:

  • ks, the ksonnet command line tool, has built upon the original kubecfg, and added more features for your workflow, with a change in focus to a more declarative, instead of imperative, approach.

  • The Kubernetes Jsonnet library, ksonnet-lib, provides the core functions for every ksonnet app.

  • Common Kubernetes configuration patterns are now distributed as prototypes and libraries in a parts repository - previously known as mixins.