Knative Client release v0.13.0
Pre-releaseThe 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 servingeventing.knative.dev/v1alpha1
for Knative eventingsource.knative.dev/v1alpha1
forApiServerSource
source.knative.dev/v1alpha2
forPingSource
source.knative.dev/v1alpha2
forSinkBinding
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 toPingSource
(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 forkn 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.