github knative/serving knative-v1.21.0
v1.21.0

6 hours ago

🚨 Breaking or Notable Changes

Secure Pod Defaults (#16042, @nader-ziada)

We've introduce secure-pod-defaults in an earlier release and included a new setting AllowRootBounded in v1.20 that offers a better security posture for your workloads but balances the compatibility with images that require/expect you to run as root.

For 1.21 release the secure-pod-defaults default will remain disabled but in a future release (most likely v1.22) we will switch this default to AllowRootBounded.

If you're unsure whether your workloads will support this new setting you should explicitly set this option to disabled prior to upgrading to v1.22.

For more information see the documentation and reach out if you foresee issues in your testing.

💫 New Features & Changes

  • You can now set the new feature pod-is-always-schedulable to true in the config-deployment ConfigMap. As a result, Knative will not mark revisions as Unschedulable when a Pod is not scheduled. This makes sense if you want to omit this transient state in clusters that have cluster-autoscaling set up, and you can guarantee that all Pods will be eventually scheduled. (#16146, @SaschaSchwarze0)
  • Activator probe timeout and frequency are now configurable via PROBE_TIMEOUT and PROBE_FREQUENCY environment variables. (#16250, @bindrad)
  • Add terminationGracePeriodSeconds support for user and sidecar container probes (#16255, @flomedja)
  • Added support for OpenTelemetry W3C Trace Context (traceparent header) in request logging, while maintaining backward compatibility with Zipkin B3 format. (#16168, @SomilJain0112)
  • Allow activator to be out of the request path when system-internal-tls is enabled (#16183, @linkvt)
  • Allow adjusting Revision min/max scale annotations (#16186, @dprotaso)
  • Allow unreachable revisions with initialScale > 1 to scale to 0 (#16327, @aviralgarg05)
  • Include two new activator metrics (kn.activator.stats.conn.reachable, kn.activator.stats.conn.errors) that reflect the stats reporter connection status (#16318, @prashanthjos)

🐞Bug Fixes

  • Preserve deployment and template annotations and labels during reconcile (#16199, @linkvt)
  • Fall back to HTTP1 on failed HTTP2 health probes (e.g. on connection error or non-readiness) (#16205, @linkvt)
  • Fix a rare data race in revision backend manager creating revision watchers during shutdown (#16225, @linkvt)
  • Fix flaky HTTPS e2e tests by waiting for HTTPS endpoint to be Ready. (#16230, @linkvt)
  • Fix metric names to match the original design document kn.queueproxy.app.duration becomes kn.serving.invocation.duration and kn.queueproxy.depth becomes kn.serving.queue.depth (#16290, @dprotaso)
  • Fix request log output corruption when using invalid log templates (#16242, @linkvt)
  • Fixed duplicate ACME challenge paths when Services with traffic tags use HTTP-01 challenges for TLS certificates. (#16259, @linkvt)
  • Services can no longer route traffic to revisions belonging to different services; attempting to do so will result in Ready=False with reason RevisionNotOwned. (#16294, @linkvt)
  • Services with invalid networking.knative.dev/* annotations on the revision template now fail immediately with a clear error instead of getting stuck. (#16296, @linkvt)
  • Switch to async metric instrumentation to avoid unbounded memory growth (#16300, @dprotaso)
  • fix sub-second precision metric reporting (#16358, @dprotaso)

New Contributors

Dependencies

Added
  • github.com/CloudyKit/fastprinter: 33d98a0
  • github.com/CloudyKit/jet/v6: v6.2.0
  • github.com/Joker/jade: v1.1.3
  • github.com/RaveNoX/go-jsoncommentstrip: v1.0.0
  • github.com/Shopify/goreferrer: 8cddb4f
  • github.com/andybalholm/brotli: v1.0.5
  • github.com/apapsch/go-jsonmerge/v2: v2.0.0
  • github.com/aymerick/douceur: v0.2.0
  • github.com/bmatcuk/doublestar: v1.1.1
  • github.com/bytedance/sonic: v1.10.0-rc3
  • github.com/chenzhuoyu/base64x: 296ad89
  • github.com/chenzhuoyu/iasm: v0.9.0
  • github.com/fatih/structs: v1.1.0
  • github.com/flosch/pongo2/v4: v4.0.2
  • github.com/gabriel-vasile/mimetype: v1.4.2
  • github.com/gin-contrib/sse: v0.1.0
  • github.com/gin-gonic/gin: v1.9.1
  • github.com/go-playground/locales: v0.14.1
  • github.com/go-playground/universal-translator: v0.18.1
  • github.com/go-playground/validator/v10: v10.14.1
  • github.com/goccy/go-json: v0.10.2
  • github.com/gomarkdown/markdown: 531d2d7
  • github.com/gorilla/css: v1.0.0
  • github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus: v1.0.1
  • github.com/grpc-ecosystem/go-grpc-middleware/v2: v2.3.0
  • github.com/iris-contrib/schema: v0.0.6
  • github.com/juju/gnuflag: 2ce1bb7
  • github.com/kataras/blocks: v0.0.7
  • github.com/kataras/golog: v0.1.9
  • github.com/kataras/iris/v12: v12.2.5
  • github.com/kataras/pio: v0.0.12
  • github.com/kataras/sitemap: v0.0.6
  • github.com/kataras/tunnel: v0.0.4
  • github.com/klauspost/cpuid/v2: v2.2.5
  • github.com/leodido/go-urn: v1.2.4
  • github.com/mailgun/raymond/v2: v2.0.48
  • github.com/microcosm-cc/bluemonday: v1.0.25
  • github.com/oapi-codegen/runtime: v1.0.0
  • github.com/pelletier/go-toml/v2: v2.0.9
  • github.com/schollz/closestmatch: v2.1.0+incompatible
  • github.com/spkg/bom: 59b7046
  • github.com/tdewolff/minify/v2: v2.12.8
  • github.com/tdewolff/parse/v2: v2.6.7
  • github.com/twitchyliquid64/golang-asm: v0.15.1
  • github.com/ugorji/go/codec: v1.2.11
  • github.com/vmihailenco/msgpack/v5: v5.3.5
  • github.com/vmihailenco/tagparser/v2: v2.0.0
  • github.com/yosssi/ace: v0.0.5
  • go.etcd.io/raft/v3: v3.6.0
  • golang.org/x/arch: v0.4.0
  • sigs.k8s.io/structured-merge-diff/v6: v6.3.0
Changed
  • cloud.google.com/go/compute/metadata: v0.7.0 → v0.9.0
  • github.com/BurntSushi/toml: v0.3.1 → v1.3.2
  • github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: v1.29.0 → v1.30.0
  • github.com/alecthomas/units: b94a6e3 → 0f3dac3
  • github.com/cncf/xds/go: 2ac532f → 0feb691
  • github.com/emicklei/go-restful/v3: v3.12.1 → v3.12.2
  • github.com/envoyproxy/go-control-plane/envoy: v1.32.4 → v1.35.0
  • github.com/envoyproxy/go-control-plane: v0.13.4 → 75eaa19
  • github.com/fsnotify/fsnotify: v1.7.0 → v1.9.0
  • github.com/fxamacker/cbor/v2: v2.7.0 → v2.9.0
  • github.com/go-jose/go-jose/v4: v4.1.1 → v4.1.3
  • github.com/golang-jwt/jwt/v5: v5.2.1 → v5.3.0
  • github.com/google/cel-go: v0.23.2 → v0.26.0
  • github.com/google/gnostic-models: v0.6.9 → v0.7.0
  • github.com/grpc-ecosystem/grpc-gateway/v2: v2.27.2 → v2.27.3
  • github.com/influxdata/influxdb-client-go/v2: v2.9.0 → v2.14.0
  • github.com/jonboulle/clockwork: v0.4.0 → v0.5.0
  • github.com/labstack/echo/v4: v4.2.1 → v4.11.1
  • github.com/labstack/gommon: v0.3.0 → v0.4.0
  • github.com/modern-go/reflect2: v1.0.2 → 35a7c28
  • github.com/prometheus/common: v0.66.1 → v0.67.4
  • github.com/prometheus/procfs: v0.17.0 → v0.19.2
  • github.com/rogpeppe/go-internal: v1.13.1 → v1.14.1
  • github.com/spf13/cobra: v1.8.1 → v1.9.1
  • github.com/spiffe/go-spiffe/v2: v2.5.0 → v2.6.0
  • github.com/tsenart/vegeta/v12: v12.12.0 → v12.13.0
  • github.com/valyala/fasttemplate: v1.2.1 → v1.2.2
  • go.etcd.io/bbolt: v1.3.11 → v1.4.2
  • go.etcd.io/etcd/api/v3: v3.5.21 → v3.6.4
  • go.etcd.io/etcd/client/pkg/v3: v3.5.21 → v3.6.4
  • go.etcd.io/etcd/client/v3: v3.5.21 → v3.6.4
  • go.etcd.io/etcd/pkg/v3: v3.5.21 → v3.6.4
  • go.etcd.io/etcd/server/v3: v3.5.21 → v3.6.4
  • go.opentelemetry.io/auto/sdk: v1.1.0 → v1.2.1
  • go.opentelemetry.io/contrib/detectors/gcp: v1.36.0 → v1.38.0
  • go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.58.0 → v0.60.0
  • go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.63.0 → v0.64.0
  • go.opentelemetry.io/contrib/instrumentation/runtime: v0.63.0 → v0.64.0
  • go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/exporters/prometheus: v0.60.0 → v0.61.0
  • go.opentelemetry.io/otel/exporters/stdout/stdouttrace: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/metric: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/sdk/metric: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/sdk: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel/trace: v1.38.0 → v1.39.0
  • go.opentelemetry.io/otel: v1.38.0 → v1.39.0
  • go.opentelemetry.io/proto/otlp: v1.7.1 → v1.9.0
  • go.uber.org/zap: v1.27.0 → v1.27.1
  • go.yaml.in/yaml/v2: v2.4.2 → v2.4.3
  • golang.org/x/crypto: v0.43.0 → v0.47.0
  • golang.org/x/mod: v0.29.0 → v0.32.0
  • golang.org/x/net: v0.46.0 → v0.49.0
  • golang.org/x/oauth2: v0.30.0 → v0.32.0
  • golang.org/x/sync: v0.17.0 → v0.19.0
  • golang.org/x/sys: v0.37.0 → v0.40.0
  • golang.org/x/telemetry: 078029d → bd525da
  • golang.org/x/term: v0.36.0 → v0.39.0
  • golang.org/x/text: v0.30.0 → v0.33.0
  • golang.org/x/tools: v0.38.0 → v0.41.0
  • golang.org/x/xerrors: 5ec99f8 → 2f41105
  • google.golang.org/genproto/googleapis/api: c5933d9 → ff82c1b
  • google.golang.org/genproto/googleapis/rpc: c5933d9 → ff82c1b
  • google.golang.org/grpc: v1.75.0 → v1.77.0
  • google.golang.org/protobuf: v1.36.8 → v1.36.10
  • k8s.io/api: v0.33.5 → v0.34.3
  • k8s.io/apiextensions-apiserver: v0.33.5 → v0.34.3
  • k8s.io/apimachinery: v0.33.5 → v0.34.3
  • k8s.io/apiserver: v0.33.5 → v0.34.3
  • k8s.io/client-go: v0.33.5 → v0.34.3
  • k8s.io/code-generator: v0.33.5 → v0.34.3
  • k8s.io/component-base: v0.33.5 → v0.34.3
  • k8s.io/gengo/v2: 1244d31 → 85fd79d
  • k8s.io/kms: v0.33.5 → v0.34.3
  • k8s.io/kube-openapi: c8a335a → f3f2b99
  • k8s.io/utils: 24370be → 4c0f3b2
  • knative.dev/caching: 09d3ca0 → f1fc03b
  • knative.dev/hack: 4fae780 → bf6758c
  • knative.dev/networking: 0bde191 → a7cdca2
  • knative.dev/pkg: 7bf6feb → 4a022ed
  • sigs.k8s.io/structured-merge-diff/v4: v4.6.0 → v4.5.0
Removed
  • github.com/cyberdelia/templates: ca7fffd
  • github.com/deepmap/oapi-codegen: v1.8.2
  • github.com/dgrijalva/jwt-go: v3.2.0+incompatible
  • github.com/getkin/kin-openapi: v0.61.0
  • github.com/ghodss/yaml: v1.0.0
  • github.com/go-chi/chi/v5: v5.0.0
  • github.com/golangci/lint-1: d2cdd8c
  • github.com/gorilla/mux: v1.8.0
  • github.com/grpc-ecosystem/go-grpc-middleware: v1.3.0
  • github.com/grpc-ecosystem/grpc-gateway: v1.16.0
  • github.com/matryer/moq: 6cfb055
  • github.com/zeebo/errs: v1.4.0
  • go.etcd.io/etcd/client/v2: v2.305.21
  • go.etcd.io/etcd/raft/v3: v3.5.21

Full Changelog: knative-v1.20.0...knative-v1.21.0

Don't miss a new serving release

NewReleases is sending notifications on new releases.