Open arschles opened 3 years ago
Note that this functionality would interact with #240. See https://github.com/kedacore/http-add-on/issues/240#issuecomment-905755603 for more details
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.
This issue has been automatically closed due to inactivity.
Reopening with label to keep the stale bot from closing this. This is still a valid feature that we'd like to explore
Discussed in https://github.com/kedacore/http-add-on/discussions/218
Further along in that discussion, @tomkerkhove and I talked through how to allow operators to opt-out of the shared interceptor/scaler while still using the same operator. in this proposal, I outline how to enable that exact scheme.
New CRD:
HTTPScalingComponents
The purpose of this new, optional, CRD, is to specify a set of running interceptor and scaler. Interceptor and scaler are always deployed together. When an
HTTPScalingComponents
CRD is submitted, the operator will react by ensuring the following are installed.Deployment
Service
s for proxy and admin endpointsScaledObject
Deployment
Service
s for gRPC and health check/admin endpointsSample YAML for a
HTTPScalingComponents
CRD would be similar to:Usage in
HTTPScaledObject
sA user submitting an
HTTPScaledObject
will optionally be allowed to specify the components that they would like their app to use. The field,scalingComponents
, would be used as follows:Note the new
spec.scalingInfrastructure
section.spec.scalingInfrastructure.name
specifies an already-installedHTTPScalingComponents
CRD and is optional. The HTTP Addon operator is configured with a defaultHTTPScalingComponents
on startup (and one is installed by default in the official helm chart). Users who omit thisname
field will simply use the defaultImplementation notes
The biggest changes will come to the operator if this proposal is implemented. The changes of note are:
HTTPScalingComponents
is createdHTTPScalingComponents
, and write one routing tableConfigMap
perHTTPScalingComponents
CRDDeployment
which aforementionedConfigMap
to consumeHTTPScaledObject
submission, createScaledObjects
that point to the proper scalerService
cc/ @rwkarg @tomkerkhove