Version 0.2.0
This is the second beta release of the KEDA HTTP Addon. Please see the install documentation to get started.
The largest change in this release is that the interceptor and scaler components are now multi-tenant, which means:
- One scaler runs per namespace, and handles all
HTTPScaledObject
s in that namespace - One fleet of interceptors runs per namespace and handles all of the applications in that namespace. A fleet is defined as a
Deployment
of interceptors that are scaled by KEDA itself. The HTTP Addon external scaler tells KEDA how to scale the fleet.
Note: there is work pending in #240 to extend this multi-tenancy to out of the namespace scope and into the cluster-global scope
This is a beta release, we invite you to try it out and file issues if you find any bugs or have an idea for a feature you would like to see.
Changes to HTTPScaledObject
s
With this release, interceptors and scalers can scale and serve 1 or more backing applications rather than just one, as was possible in v0.1.0
and before.
To route incoming HTTP requests properly, the interceptors need to be able to map any arbitrary request to a backing application or reject the request if there is no application installed to handle it. You must provide this information in every HTTPScaledObject
that you submit.
There is a new spec.host
field that you are required to include. This field informs interceptors that all requests for the host you provide should be forwarded to the application you specify in the scaleTargetRef
.
targetPendingRequests
There is a second new field called spec.targetPendingRequests
. It is optional and unrelated to the above routing functionality.
Please see the v0.2.0 HTTPScaledObject
reference documentation for more details on this field.
Other Significant Changes
- Comprehensive debugging endpoints on all three components. See developer.md for more details
- More comprehensive unit and integration tests
- Automatically scaling the interceptor fleet
- Adding the ability to specify the target metric for any application, and for the interceptor fleet
Known Issues
- When you change certain fields on an already existing
HTTPScaledObject
, the operator may not update the correspondingScaledObject
(#323). To work around this, please delete and re-create theHTTPScaledObject
with the updated fields. This will be fixed in a patch release (e.g.v0.2.1
)
Full Changelog
- Fixing kubectl command in walkthrough documentation by @arschles in #205
- Checking for type assertion success by @arschles in #181
- Adding GOOS and GOARCH to the Dockerfiles by @arschles in #186
- Removing the Makefile by @arschles in #194
- Factoring the HTTP Transport out of the forwarder by @arschles in #184
- Bump github.com/onsi/gomega from 1.13.0 to 1.14.0 by @dependabot in #208
- Bump github.com/labstack/echo/v4 from 4.3.0 to 4.4.0 by @dependabot in #209
- Bump google.golang.org/protobuf from 1.26.0 to 1.27.1 by @dependabot in #207
- adding release process document by @arschles in #211
- chore: KEDA was accepted as CNCF Incubation project by @tomkerkhove in #229
- Added targetMetric field in CRD by @ajanth97 in #168
- Bump github.com/onsi/gomega from 1.14.0 to 1.15.0 by @dependabot in #220
- Bump github.com/labstack/echo/v4 from 4.4.0 to 4.5.0 by @dependabot in #215
- Bump github.com/onsi/gomega from 1.15.0 to 1.16.0 by @dependabot in #237
- Multi-tenant interceptor and scaler by @arschles in #206
- Bump github.com/google/uuid from 1.1.2 to 1.3.0 by @dependabot in #254
- Bump go.uber.org/zap from 1.17.0 to 1.19.0 by @dependabot in #251
- Documenting the targetPendingRequests field by @arschles in #233
- Adding Ajanth as a code owner by @arschles in #256
- Bump go.uber.org/zap from 1.19.0 to 1.19.1 by @dependabot in #260
- Specifying target in scaler for specific host by @arschles in #242
- Bump sigs.k8s.io/controller-runtime from 0.9.2 to 0.10.0 by @dependabot in #253
- Removing old conflict from ref doc by @arschles in #261
- Bump k8s.io/client-go from 0.22.1 to 0.22.2 by @dependabot in #265
- Bump google.golang.org/grpc from 1.38.0 to 1.40.0 by @dependabot in #264
- Bump google.golang.org/protobuf from 1.26.0 to 1.27.1 by @dependabot in #252
- Using external push scalers in the generated scaled objects by @arschles in #255
- Add contribution guide by @arschles in #267
- Bump sigs.k8s.io/controller-runtime from 0.10.0 to 0.10.1 by @dependabot in #268
- Adding configurability to the interceptor's HTTP round tripper by @arschles in #250
- Bump google.golang.org/grpc from 1.40.0 to 1.41.0 by @dependabot in #270
- adding devcontainer files by @arschles in #232
- Fixing typo in go comment by @arschles in #288
- Removing ingress option on xkcd chart by @arschles in #289
- Removing double sleep in scaler handler test by @arschles in #290
- Handling host value of "interceptor" in GetMetricSpec by @ajanth97 in #273
- chore: Provide configuration for automatically closing inactive issues by @tomkerkhove in #298
- Consolidating the scaler GetMetricSpec tests into one table-driven test by @arschles in #295
- Adding config endpoints on admin servers for scaler, interceptor and operator by @arschles in #280
- Checking for deployment equality in deployment cache by @arschles in #275
- Adding test for 'interceptor' as host in GetScalerMetrics by @arschles in #294
- Adding a fake controller-runtime Client implementation and improving operator tests by @arschles in #247
- using ServeContext for all production HTTP servers by @arschles in #292
- Refactoring concurrency in scaler's pending HTTP queue fetcher logic by @arschles in #291
- Follow-up tests for multi-tenant work by @arschles in #279
- swapping watch broadcaster channel behavior by @arschles in #283
- Adding test for interceptor headers and redirection by @arschles in #258
- spelling fix: KNative -> Knative by @zroubalik in #303
- Bump github.com/onsi/ginkgo from 1.16.4 to 1.16.5 by @dependabot in #299
- Small issues with install.md by @arschles in #304
- Adding proper nginx-ingress annotation to the xkcd chart's ingress resource by @arschles in #309
- Fixing issue 271 by @ajanth97 in #300
- Fixing links to ghcr by @arschles in #301
- Bump github.com/onsi/gomega from 1.16.0 to 1.17.0 by @dependabot in #311
- fixing release script for interceptor and scaler by @arschles in #314
- Fixing operator startup by @arschles in #315
- Correcting install guide for keda by @Ritikaa96 in #319
- running go mod tidy by @arschles in #320
- Adding release instructions for artifact hub by @arschles in #318
New Contributors
- @ajanth97 made their first contribution in #168
- @zroubalik made their first contribution in #303
- @Ritikaa96 made their first contribution in #319
Full Changelog: v0.1.0...v0.2.0