RSS

Version v0.17 release

Knative v0.17 release announcement

Announcing Knative v0.17 Release

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

  • Serving continues their journey with test and benchmark optimizations on the already v1 API version.
  • Eventing now provides ContainerSource and PingSource as v1beta1.
  • kn CLI continues the journey to full Eventing support adding Channel resources.
  • Operator adds support of customized manifests for Knative installation.

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

Serving v0.17

InitialScale annotation to control the initial deployment size

There is a new annotation that can be used to control the number of pods that are initially deployed when new Revisions are rolled out.

net-contour and net-kourier have moved to Beta

In addition to net-istio, Knative now supports three other networking layers that are in Beta status.

Kubernetes minimum version has NOT changed

Kubernetes 1.16 remains as the minimum version.

Autoscaling
Core API
  • Leader Election enabled by default (thanks @mattmoor)
    • By default control plane components now enable leader election, which can be disabled (for now) with –disable-ha.
  • New feature flags are now available - see config-features for details
  • pkg#1512 Adopt a two-lane work queue for our controllers to prevent starvation during global re-syncs (thanks @vagababov)
  • #8951 Add config knob “max-value,” which allows for setting a cluster-wide value for the max scale of any revision that doesn’t have the “autoscaling.knative.dev/maxScale” annotation (thanks @arturenault)
  • #8724 Adds a 60 second timeout for image digest resolution to guard against slow registries (thanks @julz)
  • #8621 Implemented new garbage collector that allows for either time-based or min/max count bounds for automatic deletion of old revisions (thanks @whaught)
    • To enable this a new v2 Labeler populates RoutingState and RoutingStateModified annotations on Revisions
  • #8828 PodSpec DryRun also validates unparented (service-less) Configurations thanks @whaught)
  • #8846 Users can specify the size of the initial deployment with both cluster-wide flag initial-scale, and annotation “autoscaling.internal.knative.dev/initialScale”. Cluster-wide flag allow-zero-initial-scale controls whether the cluster-wide and revision initial scale can be zero (thanks @taragu)
  • #8757 When enabled, the ResponsiveGC feature flag disables lastPinned annotation timestamp refreshes (thanks @whaught)
  • pkg#1592 Added a workaround so Knative will work on AKS 1.17+ (thanks @n3wscott)
  • pkg#1517 Webhooks now drain for longer when shutting down (thanks @mattmoor)
Networking
  • #2737 Net-contour is moved to Beta stage (thanks @mattmoor)
  • #2738 Net-kourier is moved to Beta stage (thanks @mattmoor)
  • #8965 The default Kingress timeout is increased to 48 hours to prevent gRPC stream timeout (thanks @tcnghia)
  • Code in knative/serving/pkg/network is completely moved to knative/networking repo (thanks @tcnghia)
  • #8798 Placeholder service’s labels and annotations are propagated from Route (thanks @nak3)
  • knative-sandbox/net-istio#170 When auto TLS is enabled, now net-istio controller generates Istio TLS Gateway per Kingress instead of reconciling the knative-ingress-gateway Gateway (thanks @ZhiminXiang)
  • knative-sandbox/net-istio#174 Kingress (net-istio) introduces RewriteHost feature (thanks @julz)
  • knative-sandbox/net-istio##190 Kingress prober improvement for net-istio: probing a single host instead of every host to improve the throughput of the prober queue (thanks @JRBANCEL)

Eventing v0.17

Action Required

  • #3564 High availability is now enabled by default on control-plane components; it can be disabled with –disable-ha for now. (thanks @mattmoor)
    • You must manually delete the (previously scaled to 0) Deployment:
    metadata:
    name: broker-controller
    namespace: knative-eventing
    
  • #3547 kubectl delete deployment -n knative-eventing broker-controller (thanks @vaikas)
New Features
  • #3661 ContainerSource is now in v1beta1 (thanks @bharattkukreja)
  • #3577 SinkBinding is now in v1beta1 (thanks @nachocano)
  • #3605 Eventing conformance tests now can validate Sources status conformance (thanks @devguyio)
  • #3607 PingSource now supports setting the time zone. (thanks @lionelvillard)
  • #3741 The APIServerSource now sets name, kind and namespace as extension attributes in the CloudEvent. (thanks @danyinggu)
  • #3632 Add two flags to broker to control rest client QPS / Burst. Defaults to same as before. (thanks @vaikas)
  • #2932 In Memory Channel and Multi-Tenant Channel Based Broker retry sending events (thanks @pierDipi)
Removed Features
Bug Fixes
  • #3534 Fixes issue where migration jobs would fail on Istio cluster with auto-inject enabled (thanks @vayyappaneni)
  • #3693 For ApiServerSource, the Kubernetes event “ApiServerSourceReconciled” is no longer produced for clean runs of the ReconcileKind method. (thanks @n3wscott)
  • #3694 For Channel, the Kubernetes event “ChannelReconciled” is no longer produced for clean runs of the ReconcileKind method. (thanks @n3wscott)
  • #3696 For EventType, the Kubernetes event “EventTypeReconciled” is no longer produced for clean runs of the ReconcileKind method. (@n3wscott)
  • #3697 For MTBroker, the Kubernetes event “BrokerReconciled” is no longer produced for clean runs of the FinalizeKind method. (@n3wscott)
  • #3698 For Parallel, the Kubernetes event “ParallelReconciled” is no longer produced for clean runs of the ReconcileKind method. (thanks @n3wscott)
  • #3699 For PingSource, the Kubernetes event “PingSourceReconciled” is no longer produced for clean runs of the ReconcileKind method. For Sequence, the Kubernetes event “SequenceReconciled” is no longer produced for clean runs of the ReconcileKind method. (thanks @n3wscott)
  • #3695 For Subscription, the Kubernetes event “SubscriptionReconciled” is no longer produced for clean runs of the ReconcileKind method. (thanks @n3wscott)
  • #3574 DeadLetterChannel was being dropped when converting between v1beta1<->v1 (thanks @vaikas)
    • Not all the conditions were being properly converted between v1beta1<->v1. Basically only the Ready was.
  • #3596 Extend the terminationGracePeriod to fix issues shutting down the webhook. (thanks @mattmoor)
  • #3619 v1 and v1beta1 DeliverySpec.BackoffDelay accept ISO8601 duration (thanks @pierDipi)
  • #3831 PingSource does not lose events anymore when being shutdown close to the minute (thanks @lionelvillard)
Other Changes
  • #3562 Add missing “leases” RBAC to controller and webhook to support leader election. (thanks @mattmoor)
  • #3795 Control plane components now specify anti-affinity so that replicas will not be colocated. (thanks @mattmoor)
  • #3451 The multi-tenant PingSource adapter consumes less resources. (thanks @lionelvillard)
  • #3587 Reconcile eventing.{Broker,Trigger} using v1 api shape. Operate on dependent resources (Subscriptions, etc.) using their v1 shapes. (thanks @vaikas)
  • #3643 When Trigger is reconciled, do not emit an event for it (thanks @vaikas)

Eventing Contributions v0.17

Eventing Contributions include source and channels references implementations. Sources with v1beta1 APIs get improvements and bug fixes.

New Features
Bug Fixes
  • #1155 KafkaChannel now correctly implements tracing using eventing-wise tracing configuration from config-tracing ( thanks @slinkydeveloper)
  • #1398 KafkaChannel conversion v1beta1<>v1alpha1 is fixed (thanks @aliok)
Other Changes
  • #1407 Reconcile KafkaChannel using v1beta1 api shape. Operate on dependent resources (Subscriptions, etc.) using their v1 shapes. (thanks @aliok)
  • #1405 Reconcile KafkaSource and KafkaBinding using v1beta1 API shape. Operate on dependent resources (Subscriptions, etc.) using their v1 shapes. Note that resource and serviceAccountName fields are removed from the types in v1beta1. (thanks @aliok)

Client v0.17

CLI (Command Line Interface) continues the journey to full Eventing support and adds some additional goodies for this release.

Meta

The compile dependencies have been updated to Knative Serving 0.17.0 and Knative Eventing 0.17.0.

Eventing support

  • #967 This release adds full support for managing Channel resources . It allows you to specify the channel type during creation and also to add some mappings of GVK coordinates to symbolic names in your configuration.

Plugin Inline Support

  • #902 It is possible now to create custom variations of kn that can inline golang based plugins into a single binary. See the plugin README for a brief explanation about the mechanics. More documentation and examples pending. (thanks @rhuss)
    • It is important to note, that kn as released from the client repository will not inline any plugins. It just provides the hooks for enabling plugin inlining.
New Features
  • #980 kn source list use now an own list type for heterogeneous lists (thanks @navidshaikh)
  • #951 NAMESPACE header column has been added to kn source list -A (thanks @Kaustubh-pande)
  • #937 Add support to combine kn service create –filename with other options (thanks @dsimansk)
Bug Fixes
  • #975 Client side volume name generation has been fixed (thanks @navidshaikh)
  • #948 List only built-in sources if access to CRDs is restricted (thanks @navidshaikh)
Other Changes
  • #974 Build test images for e2e tests, add .ko.yaml specifying base image (thanks @itsmurugappan)
  • #972 Add mock test client for dynamic client (thanks @priyshar01)
  • #971 Fix exit code for kn service delete and kn revision delete failures (thanks @hemanrnjn)
  • #957 Allow the kn test image to be customized via environment variable (thanks @mvinkler)
  • #943 Separate PodSpecFlags from Service ConfigurationEditFlags (thanks @daisy-ycguo)

Operator v0.17

This new version of the Operator enables the support of customized manifests for Knative installation. The field spec.manifests is introduced in the operator CRD’s to specify the links of Knative component to install. This field is usually used together with the field spec.version.

Bug Fixes
  • #236 Adding istio ignore annotation transformer for jobs (thanks @AceHack)
  • #224 Update to latest manifestival to fix an issue on CRD/v1 transformer (thanks @jimoosciuc])
  • #147 Add the support to specify customized yamls (thanks @houshengbo)
  • #246 Validate whether spec.version matches the version of manifests (thanks @houshengbo)
  • #255 sinkBindingSelectionMode in CR spec (thanks @aliok)
Other Changes

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!