-
Notifications
You must be signed in to change notification settings - Fork 39.9k
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
Consider publicly exposing some or all RollingUpdater annotations #7851
Comments
What do you mean by "made public"? Why isn't the authoritative source of the desired number of replicas always in Openshift's deployment config? |
Because of autoscaling - we want to let the autoscaler manage a replication controller group, which means the deployment config can't be authoritative in the presence. Therefore the deployment config has to let the state of the cluster be authoritative, unless there are no other RCs present, in which it falls back to its initial value.
----- Original Message -----
|
Revisiting all rolling-update issues/PRs. I would like to make the rolling-update code reusable outside kubectl, such as in Deployment (#1743), and am in favor of making kubectl logic reusable, in general (#7311). That said, I'm not sure the current annotations are the right ones. I previously commented on this here: #2863 (comment) One simplification we could make would be to rectify the difference between the current number of replicas and new desired number of replicas at the beginning instead of at the end. That might enable us to drop the desired-replicas annotation. When a Deployment is present, there's the question of whether the auto-scaler should scale the RCs directly (e.g., by scaling the largest one), or whether it should scale the Deployment using a polymorphic virtual scale resource (#1629), leaving up to Deployment to propagate the change to the underlying RCs. If we took the former approach, we should consider not keeping a replica count in Deployment, or performing a bidirectional sync with the replica counts of the RCs. While the former would be really cool (like syncing contacts between a smartphone and browser), I'm leaning towards the latter, which I believe we need, anyway, for Jobs (#1624) and nominal services (#260). |
This can be closed. |
The RollingUpdater makes use of some annotations to drive behavior:
In OpenShift deployments, we found it useful to reuse one of these annotations for scale factor preservation between deployments. We chose the private upstream annotation because it not only provided the right semantics, but as a bonus also lets our deployments (ReplicationControllers) be more compatible with RollingUpdater.
Does it make any sense to expose
desired-replicas
(and/or others) publicly for these reasons? If the intent is to try and converge the deployment systems (#1743) it might not make sense in the absence of other external demand./cc @bgrant0607 @brendanburns @smarterclayton @abhgupta
The text was updated successfully, but these errors were encountered: