Skip to content

Knative Client release v0.13.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@knative-prow-releaser-robot knative-prow-releaser-robot released this 11 Mar 11:03
· 2 commits to release-0.13 since this release
db569fa

The central theme in v0.13.0 was to adapt to the changes happening in Knative eventing and adding more features to Knative serving. The eventing support is still experimental (aka alpha) and can change anytime, like the change from kn source cronjob to kn source ping in this release. We merged 28 user-facing PRs (compared to 14 in v0.12.0) which show the momentum that kn is gaining. You can expect much more feature and improved user experience in the forthcoming releases.

We also added a first kn service export command, which is also experimental but allows to export Knative services in a JSON or YAML description file.

Again, feedback for the experimental eventing support is highly appreciated! (Please open issues for feedback)

Meta

Compile-time dependencies on Knative serving and Knative eventing have been updated to v0.13.0 and v0.13.1, respectively. The API versions to for talking to the server has been updated to:

  • serving.knative.dev/v1 for Knative serving
  • eventing.knative.dev/v1alpha1 for Knative eventing
  • source.knative.dev/v1alpha1 for ApiServerSource
  • source.knative.dev/v1alpha2 for PingSource
  • source.knative.dev/v1alpha2 for SinkBinding

This API selection also means that for serving kn is supposed to work down to Knative Serving 0.10.0. For Knative Eventing we have now backwards guarantees, so kn works for Knative eventing 0.13.0 and newer only.

Eventing Update

This kn release updates it dependency to Knative eventing v0.13.1 which introduces many (also incompatible) changes concerning v0.12.0.
kn incorporates these changes, which implies also the usage of different API endpoints:

  • All sources are moved to the API group source.knative.dev
  • CronJobSource has been renamed to PingSource (and is implemented differently on the server-side)

For kn this also implies changes in the user interface:
The command kn source cronjob has been renamed to kn source ping.
Besides the renaming, a PingSource doesn't have a mandatory schedule (the default schedule is every minute), and it has some fewer properties (no service account and no resource limits).
kn source ping has been adapted to these changes.

IMPORTANT : These changes imply that you can't manage eventing source on Knative eventing clusters with Knative eventing <= v0.12.0. Please use kn 0.12.0 for those older clusters. As mentioned, Knative eventing is still experimental (as Knative eventing itself), so there can be always incompatible API change in the next release (but we don't hope so). Also note, that the support for Knative serving is stable kn 0.13.0 support Knative serving down to v0.10.0 (always four releases backwards).

kn service export

This experimental feature is meant for exporting an interactive created service, possibly with the configured traffic split.
The primary use case is that you then can check in those service into your versioning system like GitHub and reuse it, e.g. within CI/CD pipelines, supporting the "GitOps" operational model.

It can be used just with

kn service export myservice -o yaml

And it will print out the service definition of myservice (without any server added information like status fields). The option --with-revisions allows you also to export all revisions which are referenced in a traffic declaration. A file created with

kn service export myservice -o yaml > myservice-service.yml

can then be applied with

kubectl apply myservice-service.yml

As mentioned, this is an experimental feature and can still change in a subsequent version (especially the export format of --with-revisions will differ).

Please give us any feedback on this new feature as well let us know what we can improve here.

Other features

There have been tons of other new features and fixes:

  • Introduction of a sync operation for kn service delete and hardening of wait handling for kn service create/update
  • kn trigger create --inject broker for creating a broker implicitely, with the proper security setup.
  • --user allows to specify the user under which a service's pod is running
  • Conifugable sink prefixes for kn source ... --sink
  • Better error reporting
  • Support for private services added via kn service create/update --cluster-local
  • kn version can provide JSON or YAML output

The full list can be found in the Changelog.

The next release v0.14.0 is scheduled for April 21, 2020.