v1.0 release
Announcing Knative v1.0 Release¶
A new version of Knative is now available across multiple components.
Follow the instructions in the documentation Installing Knative for the respective component.
Table of Contents¶
- Highlights
- Serving v1.0
- Eventing v1.0
- Eventing Extensions
kn
CLI v1.0- Knative Operator v1.0
- Thank you contributors
Highlights¶
- All components versions are now tagged
knative-v1.0.0
, for users using go library use versionv0.27
- The per-namespace wildcard certificate provisioner has been integrated into the base controllers
- By default, the Prefer: reply header is forwarded to Broker Triggers' subscribers
Serving v1.0¶
π¨ Breaking or Notable Changes¶
-
The per-namespace wildcard certificate provisioner has been integrated into the base controllers and is now controlled by the namespace-wildcard-cert-selector field. This field allows you to use a Kubernetes LabelSelector to choose which namespaces should have certificates provisioned.
-
To migrate existing usage of the serving-nscert controller, do the following:
- Set the namespace-wildcard-cert-selector to the value:
matchExpressions: - key: "networking.knative.dev/disableWildcardCert" operator: "NotIn" values: ["true"]
- Remove the Deployment, Service and ClusterRole defined by the serving-nscert.yaml resources in the previous release (#12174)
- Set the namespace-wildcard-cert-selector to the value:
π« New Features & Changes¶
- Per-namespace wildcard certificate provisioning has been integrated into the main Knative controllers and is no longer a separate install. It is now controlled by a label selector on Kubernetes namespaces.
- A new experimental feature, "concurrencyStateEndpoint", allows a webhook to be informed when a container's concurrency goes to/from zero (#11802, #12162, #11917)
- When mesh compatibility mode is not set to "auto" in the networking config map, the activator will respect Kubernetes's readiness state and avoid probing when kubernetes readiness propagates more quickly than the activator's probe. (#12086)
π Bug Fixes¶
- Fixes an issue where TLS certificates are requested before domain-ownership is established. (#12080)
Eventing v1.0¶
π¨ Breaking or Notable Changes¶
- If the "strict-subscriber" feature flag is set, Subscriptions will require spec.subscriber to be set. Previously, a bare spec.reply would be accepted by Subscriptions. This feature will be enabled in the 1.1 release; it breaks compatibility with previous versions in order to track the eventing spec and improve the user experience when using Subscriptions. (#5762)
π« New Features & Changes¶
- By default, the Prefer: reply header is forwarded to Broker Triggers' subscribers (#5773)
- The Header Prefer: reply is added to the request sent to a Subscription Subscriber if the spec.reply field is set. (#5764)
- The field spec.delivery.deadLetterSink.ref.namespace for Broker, Trigger, Channel and Subscription if not specified is defaulted to metadata.namespace. (#5748)
- Adds deadLetterSinkUri to the Channel status.
- Deprecates deadLetterChannel with a 1-year timer. (#5746)
- Channel and Subscription will now enforce validation of the "delivery" field. (#5777)
- Next generation Multi-Tenant Scheduler and Descheduler: uses a plugin interface to specify a Scheduler profile with predicates and priorities that run filtering and scoring of pods, respectively to compute the best vreplica placements. When the autoscaler adds new pods, scheduler performs a rebalancing of the already placed vreplicas along with the new vreplicas. A Descheduler profile must be installed when vreplicas need to be scaled down and placements removed. (#5818)
- Add UID to the available Kreference mapping resolver template field (#5810)
π Bug Fixes¶
- Fix issue with Parallel updates leaked resources. In order for the fix to work the provided Channel must include the delete verb at the ClusterRole labeled duck.knative.dev/channelable. (#5775)
- Fix issue with Sequence updates leaked resources. In order for the fix to work the provided Channel must include the delete verb at the ClusterRole labeled duck.knative.dev/channelable. (#5718)
Eventing Extensions¶
Apache Kafka Broker v1.0¶
π« New Features & Changes¶
- ClusterRole
knative-kafka-data-plane
for KafkaBroker has been renamed toknative-kafka-broker-data-plane
(#1315) - ServiceAccount
knative-kafka-data-plane
for KafkaBroker has been renamed toknative-kafka-broker-data-plane
(#1315) - ClusterRoleBinding
knative-kafka-data-plane
for KafkaBroker has been renamed toknative-kafka-broker-data-plane
(#1315) - ClusterRole
knative-kafka-data-plane
for KafkaSink has been renamed toknative-kafka-sink-data-plane
(#1315) - ServiceAccount
knative-kafka-data-plane
for KafkaSink has been renamed toknative-kafka-sink-data-plane
(#1315) - ClusterRoleBinding
knative-kafka-data-plane
for KafkaSink has been renamed toknative-kafka-sink-data-plane
(#1315) - Set
status.deadLetterSinkUri
of Broker and Trigger to the resolved URI ofspec.delivery.deadLetterSink
(#1349)
RabbitMQ Broker and Source v1.0¶
π« New Features & Changes¶
- A trigger will now send events to its subscriber in parallel, with the number of in-flight messages defaulting to 10 and configurable via the annotationrabbitmq.eventing.knative.dev/prefetchCount. (#418)
- Trigger filters are now enforced to be immutable, since the underlying RMQ binding is immutable (#468)
π Bug Fixes¶
- Brokers will no longer create a queue for dead-lettered events if no dead letter sink is defined (#453)
Client v1.0¶
π« New Features & Changes¶
- Remove deprecated flags
--lookup-path
(#1506) - Rename
--extra-containers
to--containers
(#1499) - Remove deprecated flags
--min-scale
and--max-scale
(#1498) - Remove deprecated flags
--limits-cpu
and--limits-memory
(#1498) - Add more explanation to missing API error message (#1497)
- Deprecate
--concurrency-target
and--concurrency-utilization
in favor of--scale-target
and--scale-utilization
, respectively (#1490) - Deprecate
--autoscale-window
in favor of--scale-window
(#1489) - Calculate traffic split when N-1 revisions are specified (#1483)
- Create a default config file if it doesnβt exist (#1472)
π Bug Fixes¶
- Fix domain describe reference to show correct kind (#1477)
Operator v1.0¶
π« New Features & Changes¶
- Adding COC, contributing doc (#790)
- Remove pingsource-mt-adapter from the list of unsupported HA (#788)
- Apply high-availability to all deployments managed by operator (#749)
fix misspelling of
with
(#781) - Add the support of spec.deployments.affinity (#777)
- Adjust maxReplicas in HPA when high-availability has larger number (#748)
- Prepare the Knative Operator for the label app.kubernetes.io/version (#738)
- Allow to set Tolerations via spec.deployments.tolerations (#747)
- Remove pingsource from HA scaling (#740)
- Drop deprecated enabledComponents field setting (#735)
- Use knative.dev/hack/codegen-library.sh in hack/update-codegen.sh (#734)
- Remove heartbeats for eventing (#792)
π Bug Fixes¶
- Fix the error issue with installing spec.manifests (#750)
Thank you, contributors¶
- @Abirdcfly
- @aavarghese
- @benmoss
- @boaz0
- @dsimansk
- @evankanderson
- @houshengbo
- @julz
- @lionelvillard
- @mattmoor
- @matzew
- @nak3
- @odacremolbap
- @pierDipi
- @pierDipi
- @psschwei
- @travis-minke-sap
- @vyasgun
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!
- Welcome to Knative
- Getting started documentation
- Samples
- Knative working groups
- Knative User Mailing List
- Knative Development Mailing List
- Knative on Twitter @KnativeProject
- Knative on StackOverflow
- Knative Slack
- Knative on YouTube