-
Notifications
You must be signed in to change notification settings - Fork 274
KREP-007: Horizontal scaling in KRO (Scale subresource + RGD Set) #866
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
base: main
Are you sure you want to change the base?
Conversation
- Integrate KRO with the Kubernetes autoscaling ecosystem by exposing the Scale subresource on RGDs, enabling `kubectl scale`, HPA, and external autoscalers like keda. - Treat each RGD instance as a “unit of deployment”; rely on graph resolution for intra-unit ordering and propagation without progressive rollout inside a single instance. - Introduce an optional Set abstraction to replicate RGD instances and control rollout across replicas (ordering, concurrency, readiness), reducing blast radius during updates. - Simplify user workflows with familiar tooling and declarative controls while improving operator observability and separation of concerns. - Clearly scopes initial functionality (replica-count scaling with randomized names) an outlines future paths without coupling rollout logic into the core RGD reconciler.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: tjamet The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Hi @tjamet. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
| - `| scale` on integer fields to represent desired/current replicas. | ||
| - `| scaleSelector` on a status string field that holds a label selector for Pods (used by HPA/VPA). |
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.
Firstly, this KREP is really cool.
I wonder a bit about the proliferation of keywords. WDYT about building this concept to be a bit more aware of kubernetes subresources? e.g.
integer | subresource:autoscaling/v1.Scale:specReplicasPath
integer | subresource:autoscaling/v1.Scale:statusReplicasPath
map[string]string | subresource:autoscaling/v1.Scale:labelSelectorPath
| desiredReplicas: "integer | scale" | ||
| status: | ||
| replicas: "integer | scale" | ||
| podSelector: "string | scaleSelector" |
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.
Noticing that a podSelector is not a string, it's a map[string]string. How would you model this?
kubectl scale, HPA, and external autoscalers like keda.