v0.18 release

Published on: 2020-10-09 ,  Revised on: 2023-08-03

Announcing Knative v0.18 Release

A new version of Knative is now available across multiple components. Follow the instructions in the documentation Installing Knative for the respective component.

  • Kubernetes minimum version has changed to v1.17
  • See our K8s minimum version principle
  • Eventing APIs gradauted from v1beta1 to v1
  • Eventing Contribution sources are moved to a new github organization knative-extensions
  • The kn CLI now has alias for commands and other new features.

Remember to check the upgrade docs for any concerns applicable to your current version before you upgrade to the latest version.

Serving v0.18

Serving v1alpha1 & v1beta1 will EOL in our next release (v0.19) - This applies to the resources: Service, Route, Revision, Configuration - You will want to migrate your storage version for these resources to v1 using our post-install job

Breaking EnableVarLogCollection behaviour - We always mount a emptyDir volume at /var/log in our user-containers. This impacts some popular containers images (ie. nginx) preventing them from starting. - In the next release (v0.19) we plan on changing this default behaviour and only mount a volume when EnableVarLogCollection is set to true. - Please reach out in #7881 if you have issues/comments about the approach & timeline.

net-contour has moved to stable status

Kubernetes minimum version changed to 1.17

Core API

  • #9264 Add support for serviceAccountToken in projected volumes.
  • #9072 Added RuntimeClassName feature flag.
  • #9325 Fixes a race where the Route controller would report readiness prematurely.
  • #9489 For security reasons, registries that are shipping image metadata on TLS version 1.0 or 1.1 are no longer supported.
  • #9455,#9354,#9442 Digest resolution improvements & timeout.
  • #9335 Responsive revision garbage collection is on (allowed) by default.
  • knative/pkg#1464 Reduce the cardinality of our webhook metrics to reduce memory usage.

Autoscaling

  • #9506,#9502,#9503,#9566,#9501,#9488,#9344,#9338,#9287,#9184 Improving performance, memory allocation, testability and readability of the codebase
  • #9419,#9426,#9434 Max Scale Limit configuration
  • #9211,#9176 Use Unix socket for probing in QueueProxy
  • #9133,#9113 Random Shuffle for pod scraping improving the variety of the pods that we scrape in autoscaler
  • Permit and use configuration to the number of cached connections in the Activator
  • #9358 The absence of autoscaling annotations in both Service and Configuration's top-level metadata is now validated. This gives users an actionable error message but might potentially cause old (faulty) YAML to start to fail to be accepted now.

Networking

Eventing v0.18

Eventing APIs graduated from v1beta1 to v1

Action Required for Upgrades

  • #4031 You must run pre-install job prior to upgrading to get apiserversource to v1beta1 API.
  • #3936 Change storage version of remaining messaging.- resources from v1beta1 to v1:
    • “Subscriptions.messaging.knative.dev”
    • You must run pre-install job prior to upgrading to get messaging.- resources to v1 API.
  • #3951 Change storage versions of pingsource resource from v1alpha2 to v1beta1 API
    • You must run pre-install job prior to upgrading to get pingsource resources to v1beta2 API.
  • #3923 Change storage versions of eventing.- resources from v1beta1 to v1:
    • “brokers.eventing.knative.dev”
    • “Triggers.eventing.knative.dev”
    • You must run pre-install job prior to upgrading to get eventing.- resources to v1 API.
  • #3925 Change storage versions of flows.- resources from v1beta1 to v1:
    • “Channels.messaging.knative.dev”
    • “Inmemorychannels.messaging.knative.dev”
    • You must run pre-install job prior to upgrading to get messaging.- resources to v1 API.
  • #3924 Change storage versions of flows.- resources from v1beta1 to v1:
    • “Parallels.flows.knative.dev”
    • “Sequences.flows.knative.dev”
    • You must run pre-install job prior to upgrading to get flows.- resources to v1 API.

New Features

  • #3962 Allow MTChannelBroker TTL to be configured via ENV variable.
  • #4009 PingSource adapter now uses bucket-based leader election
  • #3987 PingSource adapter deployment can now be customized at installation time

Bug Fixes

  • #4115 The default exponential backoff duration now matches the advertised algorithm in the DeliverySpec.BackoffDelay comments. User action required to evaluate if DeliverySpec.BackoffDelay settings in Subscription.spec.delivery remain appropriate
  • #4112 Channels and Brokers correctly retry on non 2xx HTTP status codes
  • #4099 Make pingsource adapter controller read-only
  • #3946 If you create a Parallel, then later add branches to it, caused a panic.
  • #3897 In cases where Filter sends a message and it fails or response is nil, it will panic because it uses it.
  • #3906 Tests sometimes flake when the webhook fails.
  • #4042 The subscription reconciler correctly propagates delivery configurations to the channel (retry, backoffDelay, backoffPolicy).
  • #3966 Trigger reconciler correctly reconciles Triggers during parallel updates of the Trigger and the referenced Broker.
  • #4030 When not reconciling triggers not owned by my brokerclass, would print incorrect msg, logic was correct however, just wrong log message.
  • #3870 Update the spec to include v1 of the channelable.

Eventing Contributions v0.18

Code moved to the the knative-extensions Github organization

Action Required

  • knative/eventing#3924,knative/eventing#3925 Change storage versions of flows.- resources from v1beta1 to v1
    • channels.messaging.knative.dev
    • inmemorychannels.messaging.knative.dev
    • parallels.flows.knative.dev
    • sequences.flows.knative.dev
    • You must run pre-install job prior to upgrading to get eventing.- resources to v1 API.

New Features

  • #1510 Kafka Channel and Kafka Source support Kafka 2.6 (#1510, @pierDipi)

Bug Fixes

  • #1536 Cluster scoped KafkaChannel dispatcher is now created with 0 replicas in advance and will be scaled up with the creation of the first KafkaChannel. No manual operation is needed when upgrading.
  • #1533 When kafkasource goes into “sink not found” status, receiver adapter will be deleted. The receiver adapter will be created again when the sink is available and ready to receive events.

Code Moved to a different github organization

  • #1576 The AWSSQS source artifacts have moved to https://github.com/knative-extensions/eventing-awssqs
  • #1574 The Camel artifacts have moved to https://github.com/knative-extensions/eventing-camel
  • #1585 The Ceph source artifacts have moved to https://github.com/knative-extensions/eventing-ceph
  • #1583 The CouchDB source artifacts have moved to https://github.com/knative-extensions/eventing-couchdb
  • #1573 The GitHub artifacts have moved to https://github.com/knative-extensions/eventing-github
  • #1584 The GitLab source artifacts have moved to https://github.com/knative-extensions/eventing-gitlab
  • #1587 The Natss artifacts have moved to https://github.com/knative-extensions/eventing-natss
  • #1586 The Prometheus source artifacts have moved to https://github.com/knative-extensions/eventing-prometheus
  • #1555 Remove camel source from this repo. move it to https://github.com/knative-extensions/eventing-camel
  • #3923 versions of eventing.- resources from v1beta1 to v1
    • brokers.eventing.knative.dev
    • triggers.eventing.knative.dev
    • You must run pre-install job prior to upgrading to get eventing.- resources to v1 API.

Client v0.18

Release 0.18.0 of the Knative client kn comes with some bug fixes plus some additional support for Knative eventing features

Eventing Support

The kn channel support has been extended by a kn channel list-types which shows you all the channel types that are available in the cluster. This information can be used to select the type when creating a channel with kn channel create.

Subscriptions which connect a sink with a channel can now be fully managed with kn subscription commands.

Aliases

For a better user experience we added some aliases for commonly used commands:

Command ALias
service ksvc, services
revision revisions
route routes
source sources
broker brokers
trigger triggers
channel channels
subscription subscriptions, sub
plugin plugins
list ls

Other Changes

  • You can use now --annotation-service and --annotation-revision to select the part of Knative service where you want to put an annotation on. With --annotation you add an annotation to both parts, the Knative service's annotation and to the annotation of the Pod template used to create revisions.
  • A new option --scale-init allows to specify the initial number of pods that should be created when a Knative service is created. By default this number is one, but you can set it to 0 if you don't want to create a pod during service creation.

Operator v0.18

The new operator can now deploy the new version v0.18 of serving and eventing components.

Bug Fixes

  • #202 Docs for publishing the operator in OperatorHub
  • #299 Don't wait for Ksvc to scale to zero

Other Changes

  • #266 Skip the version checking for network ingress deployment
  • #275 Bumping k8s to 1.18
  • #273 Add linting config and fix issues
  • #278 Transform jobs first so images are overridable
  • #280 Pin deps to release-0.18

Learn more

Knative is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us!

We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.

× OK