Skip to content

Releases: kedacore/http-add-on

v0.12.1

03 Feb 12:44
c03d9e2

Choose a tag to compare

What's Changed

Full Changelog: v0.12.0...v0.12.1

v0.12.0

29 Jan 09:38
8f2e332

Choose a tag to compare

Breaking Changes

HTTPScaledObject CRD must be updated (#1419)

You must update the HTTPScaledObject CRD before upgrading the operator. The .status.conditions field now uses the standard Kubernetes metav1.Condition format.

If you have tooling that parses HTTPScaledObject conditions, update it to expect standard fields (lastTransitionTime, observedGeneration).

This fixes duplicate Ready conditions that caused issues with GitOps tools like ArgoCD and Flux.

Highlights

Wildcard host matching (#1411)

Use wildcard patterns like *.example.com to match any subdomain with a single HTTPScaledObject.

spec:
  hosts:
    - "*.example.com"  # matches foo.example.com, bar.foo.example.com, etc.

HTTP header-based routing (#1289)

Route requests to different backends based on HTTP headers. Multiple HTTPScaledObjects can now match the same host and path with different header requirements.

apiVersion: http.keda.sh/v1alpha1
kind: HTTPScaledObject
spec:
  hosts:
    - api.example.com
  headers:
    - name: X-API-Version
      value: v2
  scaleTargetRef:
    name: api-v2

Performance improvements (#1404)

The interceptor now uses significantly less memory under load, with reduced memory growth over time. Latency is also improved for high-throughput workloads.

Full-duplex HTTP/1.1 support (#1386)

Bidirectional streaming now works correctly - response bodies can start streaming while request bodies are still being sent.

Configurable request logging (#1375)

Request logging in the interceptor is now optional. Disable it to reduce log volume in high-traffic environments.

What's Changed

  • Update ADOPTERS.md for IMVARIA inc. by @dcb-imvaria in #1366
  • interceptor: make request logging optional by @wozniakjan in #1375
  • feat: add environment variables for leader election timing configuration by @nader-ziada in #1365
  • fix broken link to propulsion ai by @wozniakjan in #1381
  • chore: fix devcontainer build by updating deprecated Go tools by @linkvt in #1384
  • ci: use GitHub-hosted ARM64 runners for e2e tests by @linkvt in #1389
  • chore(deps): bump the all-updates group across 1 directory with 5 updates by @dependabot[bot] in #1377
  • chore(deps): bump github.com/expr-lang/expr from 1.17.6 to 1.17.7 by @dependabot[bot] in #1401
  • Improve interceptor performance and allocations by @linkvt in #1404
  • ci: replace stale bot with official GitHub Actions stale action by @linkvt in #1398
  • fix: spaces are allowed in project basepath (#1392) by @khauser in #1393
  • fix: decouple connection retry backoff from TCP dial timeout by @linkvt in #1387
  • fix: consolidate HTTPScaledObject status updates to prevent conflicts by @Fedosin in #1408
  • fix: prevent duplicate conditions by matching on Type instead of Reason by @linkvt in #1395
  • chore(deps): update OpenTelemetry semconv version to v1.37.0 by @jochbru in #1407
  • ci: update e2e test k8s and kind versions by @linkvt in #1413
  • feat: add wildcard host matching for HTTPScaledObject by @linkvt in #1411
  • feat: expose and secure controller-runtime metrics by @khauser in #1369
  • chore: Fix codeowner and add the notification flow by @JorTurFer in #1416
  • refactor: simplify TableMemory and remove dead code by @linkvt in #1412
  • Support full-duplex http1.1 by @jackkleeman in #1386
  • chore(deps): bump the all-updates group across 1 directory with 3 updates by @dependabot[bot] in #1414
  • Bump golang to 1.25.5 + small fixes by @JorTurFer in #1418
  • chore(deps): bump github.com/kedacore/keda/v2 from 2.18.0 to 2.18.3 by @dependabot[bot] in #1406
  • interceptor: support for HTTP header routing by @wozniakjan in #1289
  • refactor(operator)!: migrate to standard metav1.Condition by @linkvt in #1419
  • e2e test: header routing by @wozniakjan in #1420
  • feat: Add FOSSA to monitor licenses by @JorTurFer in #1422
  • chore: update dependencies and remove version pinning by @linkvt in #1424
  • chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 in the all-updates group by @dependabot[bot] in #1426
  • chore: prepare for release 0.12.0 by @linkvt in #1429

New Contributors

Full Changelog: v0.11.1...v0.12.0

v0.11.1

20 Oct 14:53
c343977

Choose a tag to compare

What's Changed

  • Update Kubernetes compatibility documentation to include v1.33, v1.34, and v0.11.0 release by @Copilot in #1349
  • fix: check endpoint readiness before forwarding by @wozniakjan in #1348
  • chore: update k8s versions by @zroubalik in #1351
  • chore(deps): bump the all-updates group across 1 directory with 5 updates by @dependabot[bot] in #1343
  • ci: bump go to 1.24.7 and fix link checker by @wozniakjan in #1357
  • feat: add environment variable to control X-KEDA-HTTP-Cold-Start response header by @sean-redmond in #1354
  • e2e: deploy zipkin as part of testsuite setup by @wozniakjan in #1358
  • chore: bump deps to k8s 0.33.4 & KEDA core 2.18.0 by @zroubalik in #1353
  • release v0.11.1 prep by @wozniakjan in #1360

New Contributors

Full Changelog: v0.11.0...v0.11.1

v0.11.0

18 Sep 12:56
1e7295c

Choose a tag to compare

What's Changed

  • chore(deps): bump the all-updates group with 4 updates by @dependabot[bot] in #1263
  • Update ADOPTERS.md by @rd-zahari-aleksiev in #1265
  • chore(deps): bump the all-updates group across 1 directory with 11 updates by @JorTurFer in #1268
  • chore(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 by @dependabot[bot] in #1269
  • chore(deps): bump github.com/expr-lang/expr from 1.16.9 to 1.17.0 by @dependabot[bot] in #1272
  • chore(deps): bump the all-updates group with 2 updates by @dependabot[bot] in #1271
  • chore(deps): bump github.com/prometheus/common from 0.62.0 to 0.63.0 in the all-updates group by @dependabot[bot] in #1270
  • Change path in walkthrough call to match httpscaledobject from example by @GilbertBckr in #1266
  • chore(deps): bump the all-updates group with 3 updates by @dependabot[bot] in #1275
  • e2e tests: use ghcr registry for otel images by @wozniakjan in #1284
  • feat: Add support for tracing for http addon by @bhussain91 in #1021
  • chore: reformat scaler code to match KEDA go style by @zroubalik in #1295
  • chore: get the correct HTTPScaledObject reference in the scaler by @zroubalik in #1296
  • e2e: fix nginx installation via helm by @zroubalik in #1300
  • scaler: allow using HSO and SO with different names by @zroubalik in #1299
  • Add a way to turn off the profiling for all three http add-on components by @jkremser in #1308
  • feat(interceptor): Add possibility to skip tls verification for upstreams by @ilia-medvedev-codefresh in #1307
  • Implement HTTPScaledObject scoped timeout by @AlexPykavy in #1285
  • chore: Bump go version and deps by @JorTurFer in #1305
  • feat: failover route on cold-start time out by @yyewolf in #1280
  • feat(middleware-logging): implement http.Hijacker by @guilhem in #835
  • chore(deps): bump the all-updates group across 1 directory with 6 updates by @dependabot[bot] in #1325
  • migrate from v1.Endpoints to discoveryv1.EndpointSlices by @jkremser in #1298
  • ci: fix semver release trigger by @wozniakjan in #1336

New Contributors

Full Changelog: v0.10.0...v0.11.0

v0.10.0

21 Feb 13:15
6fa0b98

Choose a tag to compare

What's Changed

New

  • General: Fix infrastructure crashes when deleting ScaledObject while scaling (#1245)
  • General: Fix kubectl active printcolumn (#1211)
  • General: Support InitialCooldownPeriod for HTTPScaledObject #1213

Other

  • Documentation: Correct the service name used in the walkthrough documentation (#1244)
All merged PRs

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

26 Dec 17:10
317d474

Choose a tag to compare

We are happy to release KEDA HTTP Add-on v0.9.0 🎉

Breaking Changes

  • General: Drop support for deprecated field spec.scaleTargetRef.deployment (#1061)

New

  • General: Support portName in HTTPScaledObject service scaleTargetRef (#1174)
  • General: Support setting multiple TLS certs for different domains on the interceptor proxy (#1116)
  • Interceptor: Add support for for AWS ELB healthcheck probe (#1198)

Fixes

  • General: Align the interceptor metrics env var configuration with the OTEL spec (#1031)
  • General: Include trailing 0 window buckets in RPS calculation (#1075)

Other

  • General: Sign images with Cosign (#1062)

New Contributors

Full Changelog: v0.8.0...v0.9.0

v0.8.0

02 May 06:18
1c9f734

Choose a tag to compare

We are happy to release KEDA HTTP Add-on v0.8.0 🎉

New

  • General: Add configurable TLS on the wire support to the interceptor proxy (#907)
  • General: Add support for collecting metrics using a Prometheus compatible endpoint or by sending metrics to an OpenTelemetry's HTTP endpoint (#910)
  • General: Propagate HTTPScaledObject labels and annotations to ScaledObject (#840)
  • General: Provide support for allowing HTTP scaler to work alongside other core KEDA scalers (#489)
  • General: Support aggregation windows (#882)

Fixes

  • General: Ensure operator is aware about changes on underlying ScaledObject (#900)

Deprecations

You can find all deprecations in this overview and join the discussion here.

  • General: Deprecated targetPendingRequests in favor of spec.scalingMetric.*.targetValue (#959)

Other

  • General: Align with the new format of Ingress in the example demo (#979)
  • General: Unify loggers (#958)

New Contributors

Full Changelog: v0.7.0...v0.8.0

v0.7.0

22 Jan 10:39
a59daf2

Choose a tag to compare

Breaking Changes

  • General: host field has been removed in favor of hosts in HTTPScaledObject (#552|#888)

New

  • General: Support any resource which implements /scale subresource (#438)

Improvements

  • General: Improve Scaler reliability adding probes and 3 replicas (#870)

Fixes

  • General: Add new user agent probe (#862)
  • General: Fix external scaler getting into bad state when retrieving queue lengths fails. (#870)
  • General: Increase ScaledObject polling interval to 15 seconds (#799)
  • General: Set forward request RawPath to original request RawPath (#864)

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s):

  • General: Deprecated KEDA_HTTP_DEPLOYMENT_CACHE_POLLING_INTERVAL_MS in favor of KEDA_HTTP_ENDPOINTS_CACHE_POLLING_INTERVAL_MS (#438)

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

05 Oct 15:09
8c18bd8

Choose a tag to compare

New

  • General: Add manifests to deploy the Add-on (#716)

Improvements

  • Scaler: Decrease memory usage by allowing increasing stream interval configuration (#745)

Fixes

  • Interceptor: Add support for streaming responses (#743)
  • Interceptor: Fatal error: concurrent map iteration and map write (#726)
  • Interceptor: Keep original Host in the Host header (#331)
  • Interceptor: Provide graceful shutdown for http servers on SIGINT and SIGTERM (#731)
  • Operator: Remove ScaledObject name & app custom labels (#717)
  • Scaler: Provide graceful shutdown for grpc server on SIGINT and SIGTERM (#731)
  • Scaler: Reimplement custom interceptor metrics (#718)

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s):

  • General: host field deprecated in favor of hosts in HTTPScaledObject (#552)

Other

  • General: Adding a changelog validating script to check for formatting and order (#761)
  • General: Skip not required CI checks on PRs on new commits (#801)

New Contributors

Full Changelog: v0.5.0...v0.6.0

v0.5.0

20 Jun 05:38
ce37228

Choose a tag to compare

This is the fifth beta release of the KEDA HTTP Addon. Please see the install documentation to get started.

Changelog

New

  • Routing: Add multi-host support to HTTPScaledObject (#552)
  • Routing: Support path-based routing (#338)
  • General: Log incoming requests using the Combined Log Format (#669)

Improvements

  • General: Automatically tag Docker image with commit SHA (#567)
  • RBAC: Introduce fine-grained permissions per component and reduce required permissions (#612)
  • Operator: Migrate project to Kubebuilder v3 (#625)
  • Routing: New routing table implementation that relies on the live state of HTTPScaledObjects on the K8s Cluster instead of a ConfigMap that is updated periodically (#605)

Fixes

  • General: HTTPScaledObject is the owner of the underlying ScaledObject (#703)
  • Routing: Lookup host without port (#608)
  • Controller: Use kedav1alpha1.ScaledObject default values (#607)
  • General: Changes to HTTPScaledObjects now take effect (#605)

Breaking Changes

  • General: Pod selector labels have changed, this could force to uninstall the HTTP Add-on and reinstall it.

Deprecations

You can find all deprecations in this overview and join the discussion here.

New deprecation(s):

  • General: host field deprecated in favor of hosts in HTTPScaledObject (#552)

Previously announced deprecation(s):

  • None.

Other

  • General: Use kubernetes e2e images for e2e test and samples (#665)
  • e2e tests: Use the same e2e system as in core (#686)

Contributions

New Contributors

Full Changelog: v0.4.0...v0.5.0