github kedacore/http-add-on v0.15.0

9 hours ago

Highlights

HTTP/2 and gRPC support (#1084)

The interceptor now supports HTTP/2 (h2c and h2 over TLS), enabling autoscaling of gRPC workloads. Backend transport is selected based on the Kubernetes appProtocol field on the Service port (#1676): cleartext backends default to HTTP/1.1 unless appProtocol: kubernetes.io/h2c is set; TLS backends negotiate via ALPN.

The KEDA_HTTP_FORCE_HTTP2 environment variable has been removed — HTTP/2 is now negotiated automatically.

Cold-start placeholder responses (#874)

New coldStart.placeholder support lets you return static HTTP responses while a workload scales from zero, instead of holding the request until a pod is ready.

Scaler resilience (#1667)

The scaler now tolerates partial interceptor pod failures instead of restarting on a single unreachable endpoint. Last-known concurrency is cached for unreachable pods to prevent underreporting.

Graceful shutdown (#1636)

The interceptor now drains in-flight requests before exiting. It waits for active handlers to complete (bounded by KEDA_HTTP_DRAIN_TIMEOUT), marks the readiness probe unhealthy immediately on SIGTERM, and delays listener closure by KEDA_HTTP_SHUTDOWN_DELAY to let Kubernetes propagate endpoint removal.

Deprecations

  • KEDAHTTP_OPERATOR_EXTERNAL_SCALER_SERVICE and KEDAHTTP_OPERATOR_EXTERNAL_SCALER_PORT have been renamed to KEDA_HTTP_OPERATOR_EXTERNAL_SCALER_SERVICE and KEDA_HTTP_OPERATOR_EXTERNAL_SCALER_PORT. Old names still work but log a deprecation warning. (#1623)

What's Changed

  • fix(deps): update module github.com/cert-manager/cert-manager to v1.19.5 by @renovate[bot] in #1612
  • fix: disable digest pinning for kindest/node in renovate by @linkvt in #1614
  • chore: group e2e-framework with Kubernetes deps in renovate by @linkvt in #1613
  • chore(deps): update e2e dependencies by @renovate[bot] in #1615
  • chore(deps): update dependency golangci/golangci-lint to v2.12.1 by @renovate[bot] in #1616
  • fix(deps): update go dependencies (non-major) by @renovate[bot] in #1611
  • chore: remove unused .dockerignore file by @linkvt in #1621
  • ci: add stable e2e summary job for branch protection by @linkvt in #1618
  • chore: improve OpenSSF Scorecard security posture by @linkvt in #1620
  • fix(ci): add retry logic to e2e Helm dependency installs by @Fedosin in #1584
  • fix: rename KEDAHTTP_OPERATOR_EXTERNAL_SCALER_* env vars to KEDA_HTTP_OPERATOR_EXTERNAL_SCALER_* by @Fedosin in #1623
  • fix: use downward API for namespace env vars instead of hardcoded value by @Fedosin in #1625
  • chore: add OpenSSF and community badges to README by @linkvt in #1624
  • chore(deps): update github actions by @renovate[bot] in #1630
  • chore(deps): update dependency golangci/golangci-lint to v2.12.2 by @renovate[bot] in #1629
  • chore(deps): update ghcr.io/wolfi-dev/static:alpine docker digest to de720d5 by @renovate[bot] in #1627
  • fix(deps): update k8s.io/utils digest to ff6756f by @renovate[bot] in #1628
  • chore: flatten nested checklist in PR template by @linkvt in #1632
  • chore: exclude gnu.org/make from lychee link checks by @linkvt in #1631
  • feat: add native Go fuzz tests for untrusted-input surfaces by @Fedosin in #1599
  • chore(deps): update actions/upload-artifact action to v7 by @renovate[bot] in #1642
  • chore(deps): update github/codeql-action action to v4.35.5 by @renovate[bot] in #1638
  • chore(deps): update e2e dependencies by @renovate[bot] in #1640
  • fix(deps): update go dependencies (non-major) to v0.34.8 by @renovate[bot] in #1639
  • fix(deps): update go dependencies (non-major) by @renovate[bot] in #1641
  • docs: reference new e2e test suite in contributor docs by @linkvt in #1635
  • chore: remove old HTTPSO examples by @linkvt in #1643
  • Replace gorilla/websocket with coder/websocket by @Akram-saj in #1633
  • fix(deps): update module github.com/coder/websocket to v1.8.14 by @renovate[bot] in #1650
  • perf: strip managed fields from controller-runtime cache by @linkvt in #1651
  • chore(deps): update module golang.org/x/net to v0.55.0 [security] by @renovate[bot] in #1652
  • chore(deps): update github actions by @renovate[bot] in #1653
  • chore(deps): update helm release opentelemetry-collector to v0.156.2 - autoclosed by @renovate[bot] in #1654
  • ci: add workflow to block PRs with 'on hold' label by @linkvt in #1647
  • feat: add coldStart.placeholder support for static responses by @linkvt in #1626
  • feat(scaler): add observability (metrics + tracing) to the external scaler by @Fedosin in #1634
  • chore(deps): update helm release opentelemetry-collector to v0.158.0 by @renovate[bot] in #1660
  • fix: filter GetMetrics response by requested metric name by @linkvt in #1664
  • feat: add s390x to release platforms by @linkvt in #1663
  • chore: clean up README and remove outdated files by @linkvt in #1666
  • fix(deps): update go dependencies (non-major) by @renovate[bot] in #1661
  • fix(interceptor): close request body to prevent panic by @linkvt in #1669
  • fix(deps): update go dependencies (non-major) to v1.44.0 by @renovate[bot] in #1673
  • chore(deps): update github actions by @renovate[bot] in #1671
  • chore(deps): update e2e dependencies by @renovate[bot] in #1672
  • fix: drain in-flight requests on shutdown by @linkvt in #1648
  • feat: add gRPC and HTTP/2 support to interceptor by @linkvt in #1658
  • chore: use pinned version comments for GitHub Actions by @linkvt in #1674
  • fix: tolerate partial interceptor pod failures in scaler by @Fedosin in #1670
  • feat: select backend transport via service appProtocol by @linkvt in #1678
  • chore: pin helm version and add timeouts to e2e helm installs by @linkvt in #1686
  • fix(deps): update go dependencies (non-major) to v0.34.9 by @renovate[bot] in #1682
  • chore(deps): update ghcr.io/wolfi-dev/static:alpine docker digest to 6a4616e by @renovate[bot] in #1680
  • chore(deps): update pre-commit hooks to v2.5.0 by @renovate[bot] in #1683
  • fix(deps): update go dependencies (non-major) by @renovate[bot] in #1684
  • chore: prepare release v0.15.0 by @linkvt in #1687

New Contributors

Full Changelog: v0.14.0...v0.15.0

Don't miss a new http-add-on release

NewReleases is sending notifications on new releases.