-
Notifications
You must be signed in to change notification settings - Fork 38
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
Rebase to upstream/cluster-autoscaler-release-1.14 #107
Rebase to upstream/cluster-autoscaler-release-1.14 #107
Conversation
VPA - e2e tests for v1beta2 API
Fix readme to reflect addon-resizer version 2.1.
VPA - fix names of files with junit test results
Vertical Pod Autoscaler version 0.4.0
VPA - disable errexit in run e2e scripts
Get HTTP responses together with error, so that we could get full error messages. It also fixes some edge cases for success responses.
Update VPA to beta in main README
Add version field to spec
VPA - check ConfigDeprecated condition for v1beta1 e2e tests
Fix error message for long-waiting operations
Update CA godeps to Kubernetes v1.15.0-alpha.0
Add the ability to better pass additional arguments to containers
Change default version Update docs
VPA switches to 0.4.0
Finds a machine using provider ID.
…r ID Change findMachineByNodeProviderID() to first match using ProviderID values. If there is no match (because actuator does not set the value on the machine object) then fallback to matchin based on the "machine" annotation from the node object. Update unit tests to reflect new behaviour.
Add new test that verifies that machines without a ProviderID value can still be found if there is a "machine" annotation on the node object.
When mapping from a machine to a node, prioritize the search based on ProviderID, falling back to using machine.Status.NodeRef.Name. This value is populated by the nodelink-controller.
Emit MaxNodesTotalReached in scale up when the condition is reached.
Be less specific as to when the event is generated. The qualifying criteria is when the adding a node would reach the --max-nodes-total specified.
We previously only considered a MachineSet or MachineDeployment suitable for scaling if it had positive scaling bounds. For example: annotations: machine.openshift.io/cluster-api-autoscaler-node-group-min-size: "1" machine.openshift.io/cluster-api-autoscaler-node-group-max-size: "6" On us-west-2 we have: $ kubectl get machinesets NAME DESIRED CURRENT READY AVAILABLE AGE amcdermo-ca-5ws2b-worker-us-west-2a 1 1 1 1 4h23m amcdermo-ca-5ws2b-worker-us-west-2b 1 1 1 1 4h23m amcdermo-ca-5ws2b-worker-us-west-2c 1 1 1 1 4h23m amcdermo-ca-5ws2b-worker-us-west-2d 0 0 4h23m but the autoscaler will fail to scale up any of these because the last machineset has a replica count of 0. This change modifies the criteria for where we return a nodegroup (i.e., machine set) to must have: - positive scaling bounds, and - the underlying resource must have a replica count that is > 0.
When creating a test config I had previously allowed for the number of nodes to be different to the number of replicas. We don't use this distinction so dropping that entirely from all the unit tests.
This invokes the e2e tests and is mainly invoked by CI.
9216620
to
6efd972
Compare
The only difference between what we had previously for the cloudprovider is: $ git diff openshift/master ./cluster-autoscaler/cloudprovider/openshiftmachineapi/
diff --git a/cluster-autoscaler/cloudprovider/openshiftmachineapi/machineapi_nodegroup.go b/cluster-autoscaler/cloudprovider/openshiftmachineapi/machineapi_nodegroup.go
index 383e527e5..84c1998de 100644
--- a/cluster-autoscaler/cloudprovider/openshiftmachineapi/machineapi_nodegroup.go
+++ b/cluster-autoscaler/cloudprovider/openshiftmachineapi/machineapi_nodegroup.go
@@ -24,7 +24,7 @@ import (
machinev1beta1 "github.com/openshift/cluster-api/pkg/client/clientset_generated/clientset/typed/machine/v1beta1"
apiv1 "k8s.io/api/core/v1"
"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
- schedulercache "k8s.io/kubernetes/pkg/scheduler/cache"
+ schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
)
const (
@@ -188,7 +188,7 @@ func (ng *nodegroup) Nodes() ([]cloudprovider.Instance, error) {
// allocatable information as well as all pods that are started on the
// node by default, using manifest (most likely only kube-proxy).
// Implementation optional.
-func (ng *nodegroup) TemplateNodeInfo() (*schedulercache.NodeInfo, error) {
+func (ng *nodegroup) TemplateNodeInfo() (*schedulernodeinfo.NodeInfo, error) {
return nil, cloudprovider.ErrNotImplemented
} This represents a change made in upstream/cluster-autoscaler-release-1.14. |
Key output from jenkins job: I0620 10:48:53.232455 1 main.go:345] Cluster Autoscaler 1.14.3 |
/hold Would like some feedback (if possible) from @joelsmith and/or @sjenning to ensure I haven't broken the VPA in any way. |
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
Key output from CI/openshift: I0620 11:16:48.931790 1 main.go:345] Cluster Autoscaler 1.14.3 |
/hold cancel |
The PR was created by first taking upstream/cluster-autoscaler-release-1.14 as the base then applying UPSTREAM: patches on top. The set of picks applied was derived from:
git log --oneline --no-merges 810bb14c0a53261dfa3f2afb8e563ce84f8bd566..openshift/master
where 810bb14 reflects the changes since our last rebase (which was upstream/cluster-autoscaler-release-1.13).
And in that set of picks anything that was related to vendoring in
test/openshift
was dropped because we have moved to cloning the https://github.com/openshift/cluster-api-actuator-pkg when running the e2e tests. There is no value in picking all these historical commits as they were made redundant in PR #104 .Equally, anything that was previously vendored in
cluster-autoscaler/vendor
has been dropped. We have to run thecluster-autoscaler/fix_gopath.sh
script again to pick up the new kubernetes version (defined incluster-autoscaler/kubernetes.sync
) and as part of that process you have torm -rf vendor Godeps
.To create the merge commit I have used the following steps:
Picks were as follows:
For details on the merge^{tree} syntax please read this documentation.
The result of git commit-tree in this PR is b68c8ee.
The previous rebase to upstream/cluster-autoscaler-release-1.13 was done in PR #76.