-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding design doc #31
Conversation
docs/design.md
Outdated
|
||
## Architecture Diagram | ||
|
||
Below is a complete architecture diagram. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is missing, is this on purpose?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup, I forgot to mark this as WIP - sorry about that 😄
docs/design.md
Outdated
|
||
There are three major components in this system. You can find more detail and discussion about each in sections below this one. | ||
|
||
- [Operator](./operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link is broken
docs/design.md
Outdated
|
||
- [Operator](./operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate. | ||
- [Interceptor](./interceptor) - This component accepts and routes external HTTP traffic to the appropriate internal application, as appropriate. | ||
- [Scaler](./scaler) - This component tracks the size of the pending HTTP request queue for a given app and reports it to KEDA. It acts as an [external scaler](https://keda.sh/docs/2.1/scalers/external-push/). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link is broken
docs/design.md
Outdated
There are three major components in this system. You can find more detail and discussion about each in sections below this one. | ||
|
||
- [Operator](./operator) - This component listens for events related to `HTTPScaledObject`s and creates, updates or removes internal machinery as appropriate. | ||
- [Interceptor](./interceptor) - This component accepts and routes external HTTP traffic to the appropriate internal application, as appropriate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link is broken
docs/design.md
Outdated
|
||
We've introduced a new [Custom Resource (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) called `HTTPScaledObject.http.keda.sh` - `HTTPScaledObject` for short. Fundamentally, this resource allows an application developer to submit their HTTP-based application name and container image to the system, and have the system deploy all the necessary internal machinery required to deploy their HTTP application and expose it to the public internet. | ||
|
||
The [operator](./operator) runs inside the Kubernetes namespace to which they're deploying their application and watches for these `HTTPScaledObject` resources. When one is created, it will create a `Deployment` and `Service` for the app, interceptor, and scaler, and a [`ScaledObject`](https://keda.sh/docs/2.1/concepts/scaling-deployments/) which KEDA then uses to scale the application. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it will create a
Deployment
andService
for the app
We might want to check this once it gets more ready for release because I'm not sure if that should be our responsibility where, instead, we could just scale a deployment that is provided to 0 (similar to core KEDA)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or support both use cases?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree regarding both use cases, I think they cover two different types of users. I created #35 to track that feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
625c625
to
e28dcdb
Compare
@tomkerkhove @zroubalik I've made updates that you requested. Can you take another loook? (the DCO violation is because I committed a suggested fix and apparently GitHub doesn't sign those by default) |
LGTM, @tomkerkhove wdyt? |
Fixes kedacore#18 Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
I've added a design document and linked to it from the README
Checklist
Fixes #18