Releases: kedacore/http-add-on
v0.12.1
What's Changed
- chore: cleanup old docs and examples by @linkvt in #1430
- fix(interceptor): preserve upstream X-Forwarded headers by @linkvt in #1434
- chore(deps): bump docker/login-action from 3.6.0 to 3.7.0 in the all-updates group by @dependabot[bot] in #1438
- Add CodeQL by @JorTurFer in #1437
- chore: prepare release v0.12.1 by @linkvt in #1441
Full Changelog: v0.12.0...v0.12.1
v0.12.0
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-v2Performance 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
- @dcb-imvaria made their first contribution in #1366
- @nader-ziada made their first contribution in #1365
- @linkvt made their first contribution in #1384
- @khauser made their first contribution in #1393
- @Fedosin made their first contribution in #1408
- @jochbru made their first contribution in #1407
- @jackkleeman made their first contribution in #1386
Full Changelog: v0.11.1...v0.12.0
v0.11.1
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
- @Copilot made their first contribution in #1349
- @sean-redmond made their first contribution in #1354
Full Changelog: v0.11.0...v0.11.1
v0.11.0
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
- @rd-zahari-aleksiev made their first contribution in #1265
- @GilbertBckr made their first contribution in #1266
- @bhussain91 made their first contribution in #1021
- @jkremser made their first contribution in #1308
- @ilia-medvedev-codefresh made their first contribution in #1307
- @AlexPykavy made their first contribution in #1285
- @yyewolf made their first contribution in #1280
- @guilhem made their first contribution in #835
Full Changelog: v0.10.0...v0.11.0
v0.10.0
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
- chore(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.2.0 in the all-updates group by @dependabot in #1237
- chore(deps): bump the all-updates group across 1 directory with 11 updates by @dependabot in #1238
- chore: add missing examples for 0.9.0 by @brunopadz in #1240
- Readme: update status message by @zroubalik in #1243
- fix(doc): use correct service name by @ldvc in #1244
- chore(deps): bump actions/setup-go from 5.2.0 to 5.3.0 in the all-updates group by @dependabot in #1242
- chore(deps): bump the all-updates group with 2 updates by @dependabot in #1241
- Update compatibility documentation for v0.9.0 by @Spenhouet in #1247
- chore(deps): bump the all-updates group with 3 updates by @dependabot in #1249
- fix kubectl active printcolumn selector by @wozniakjan in #1248
- Fix KEDA Interceptor/Scaler issues when deleting ScaledObject while scaling by @kmd922 in #1245
- chore(deps): bump golangci/golangci-lint-action from 6.3.2 to 6.5.0 in the all-updates group by @dependabot in #1253
- fix: ingnore Make link in the linkinator workflow by @zroubalik in #1255
- chore: run e2e tests against k8s 1.32 by @zroubalik in #1257
- chore: fix kind action by @zroubalik in #1259
- bump k8s deps to 1.31.6 by @zroubalik in #1256
- bump go to 1.23.6 by @zroubalik in #1258
- fix: Rename keda-http-add-on-interceptor-proxy to keda-add-ons-http-interceptor-proxy by @kahirokunn in #1037
- Add support for initialCooldownPeriod On httpScaledObjects by @shayrybak in #1212
- Prepare release v0.10.0 by @wozniakjan in #1260
New Contributors
- @brunopadz made their first contribution in #1240
- @ldvc made their first contribution in #1244
- @Spenhouet made their first contribution in #1247
- @kmd922 made their first contribution in #1245
- @shayrybak made their first contribution in #1212
Full Changelog: v0.9.0...v0.10.0
v0.9.0
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
- @wozniakjan made their first contribution in #1040
- @d4nyll made their first contribution in #1071
- @kahirokunn made their first contribution in #1093
- @kek-Sec made their first contribution in #1137
- @boillodmanuel made their first contribution in #1199
- @step-security-bot made their first contribution in #1217
Full Changelog: v0.8.0...v0.9.0
v0.8.0
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
targetPendingRequestsin favor ofspec.scalingMetric.*.targetValue(#959)
Other
- General: Align with the new format of Ingress in the example demo (#979)
- General: Unify loggers (#958)
New Contributors
- @rohithzr made their first contribution in #913
- @nikhilchintawar made their first contribution in #953
- @devopsdynamo made their first contribution in #929
- @fmarani made their first contribution in #967
- @JoeyC-Dev made their first contribution in #979
- @zorocloud made their first contribution in #927
Full Changelog: v0.7.0...v0.8.0
v0.7.0
Breaking Changes
New
- General: Support any resource which implements
/scalesubresource (#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_MSin favor ofKEDA_HTTP_ENDPOINTS_CACHE_POLLING_INTERVAL_MS(#438)
New Contributors
- @maxmoeschinger made their first contribution in #863
- @worldspawn made their first contribution in #873
- @werdnum made their first contribution in #876
Full Changelog: v0.6.0...v0.7.0
v0.6.0
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&appcustom 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:
hostfield deprecated in favor ofhostsinHTTPScaledObject(#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
- @luckymrwang made their first contribution in #727
- @similark made their first contribution in #746
- @itayariel made their first contribution in #743
- @tommy351 made their first contribution in #745
Full Changelog: v0.5.0...v0.6.0
v0.5.0
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:
hostfield deprecated in favor ofhostsinHTTPScaledObject(#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
- add CooldownPeriod to scaledobject template by @lucakuendig in #587
- chore(deps): bump actions/cache from 3.2.3 to 3.2.4 by @dependabot in #588
- chore: Introduce changelog by @tomkerkhove in #592
- fix(static checks): Remove whitespace by @JorTurFer in #593
- chore: Add Artifact Hub to release process by @tomkerkhove in #595
- chore(deps): bump google.golang.org/grpc from 1.52.1 to 1.52.3 (#589)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tom Kerkhove kerkhove.tom@gmail.com Co-authored-by: Jorge Turrado Ferrero jorge.turrado@scrm.lidl by @dependabot in #589
- chore(deps): bump sigs.k8s.io/controller-runtime from 0.14.1 to 0.14.2 (#590)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jorge Turrado Ferrero jorge.turrado@scrm.lidl by @dependabot in #590
- chore(deps): bump sigs.k8s.io/controller-runtime from 0.14.2 to 0.14.4 (#597)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> by @dependabot in #597
- feat: build an extra docker tag with commit sha by @JorTurFer in #596
- fix: Create copy of backoff struct by @abatilo in #598
- chore(deps): bump google.golang.org/grpc from 1.52.3 to 1.53.0 by @dependabot in #603
- chore(deps): bump actions/cache from 3.2.4 to 3.2.5 by @dependabot in #602
- fix(automation): Automatically add new issues to GitHub Project by @tomkerkhove in #604
- chore(deps): bump github.com/onsi/gomega from 1.26.0 to 1.27.1 by @dependabot in #606
- fix(automation): Automatically add new issues to GitHub Project (#614 by @tomkerkhove in #614
- routing: lookup host without port by @t0rr3sp3dr0 in #609
- chore(deps): bump github.com/stretchr/testify from 1.8.1 to 1.8.2 by @dependabot in #617
- chore(deps): bump actions/cache from 3.2.5 to 3.2.6 by @dependabot in #616
- controller: use kedav1alpha1.ScaledObject default values by @t0rr3sp3dr0 in #610
- rbac: narrow permissions by @t0rr3sp3dr0 in #613
- chore: bump deps by @JorTurFer in #624
- operator: upgrade kubebuilder to v3 by @t0rr3sp3dr0 in #626
- chore: Provide update on project status (#628 by @tomkerkhove in #628
- chore: use GH_AUTOMATION_PAT instead of GH_PROJECT_AUTOMATION_AUTH (#627) by @JorTurFer in #627
- chore(deps): bump actions/cache from 3.2.6 to 3.3.1 (#631)Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> by @dependabot in #631
- chore(deps): bump github.com/kedacore/keda/v2 from 2.9.3 to 2.10.0 by @dependabot in #635
- chore(deps): bump github.com/onsi/ginkgo/v2 from 2.8.4 to 2.9.1 by @dependabot in #632
- chore(deps): bump google.golang.org/protobuf from 1.28.1 to 1.29.0 by @dependabot in #634
- chore(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1 by @dependabot in #636
- chore: Remove v1.23 from e2e tests by @JorTurFer in #637
- chore(deps): bump actions/setup-go from 3 to 4 by @dependabot in #638
- chore: bump deps by @JorTurFer in #645
- Update ARM64 e2e test flow by @JorTurFer in #664
- chore(deps): bump actions/setup-python from 4.5.0 to 4.6.0 by @dependabot in #663
- chore(deps): bump golang.org/x/sync from 0.1.0 to 0.2.0 by @dependabot in #668
- chore(deps): bump github.com/onsi/ginkgo/v2 from 2.9.1 to 2.9.4 by @dependabot in #666
- fix: Use correct labels during e2e tests by @JorTurFer in #671
- feat: Move http scaled object from single host to multi host system by @jocelynthode in #674
- chore(deps): bump helm/kind-action from 1.5.0 to 1.7.0 by @dependabot in #679
- chore(deps): bump actions/setup-python from 4.6.0 to 4.6.1 by @dependabot in #688
- feat: use the same e2e system as in core by @JorTurFer in #686
- fix verify-codegen by @t0rr3sp3dr0 in #695
- fix: Verify manifest changes correctly by @JorTurFer in #692
- feat: Use
registry.k8s.io/e2e-test-images/agnhostinstead ofarschles/xkcdby @JorTurFer in #693 - HTTPSO-based Routing Table by @t0rr3sp3dr0 in #669
- PathPrefix-based Routing by @t0rr3sp3dr0 in #677
- fix: HTTPScaledObject is the owner of the underlying ScaledObject by @JorTurFer in #704
New Contributors
- @lucakuendig made their first contribution in #587
- @abatilo made their first contribution in #598
- @t0rr3sp3dr0 made their first contribution in #609
- @jocelynthode made their first contribution in #674
Full Changelog: v0.4.0...v0.5.0