Skip to content
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 1.17.0 #121

Merged
merged 360 commits into from
Jan 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
360 commits
Select commit Hold shift + click to select a range
1d39163
Upgrade vendored digitalocean/godo version to v1.22.0
Oct 6, 2019
7e69503
doks: use providerID for node.ID
Sep 15, 2019
b80a9f6
Merge pull request #2427 from digitalocean/doks-use-node-provider-id
k8s-ci-robot Oct 21, 2019
4e19609
Add mock and mutex
DavidLangworthy Oct 21, 2019
41e9271
Remove unused GetCandidatesForScaleDown
losipiuk Oct 1, 2019
7f083d2
Move core/utils.go to separate package and split into multiple files
losipiuk Oct 1, 2019
7118ea8
Merge pull request #2407 from losipiuk/lo/scale-down-cleanup-1
k8s-ci-robot Oct 22, 2019
dcd7a2b
fix golint failures
FayerZhang Oct 23, 2019
8745965
cluster-autoscaler/gce: create a test for an instance with unknown mig
JulienBalestra Oct 23, 2019
229fc95
Make error message in scale down consistent
tghartland Oct 23, 2019
72f936e
[aws] use simple string prefix placeholder match
jaypipes Oct 24, 2019
873ce0f
[aws] correct placement of static instance docs
jaypipes Oct 24, 2019
804a948
[aws] clean up docs around IAM policy
jaypipes Oct 24, 2019
8337753
Merge pull request #2482 from jaypipes/rework-aws-readme
k8s-ci-robot Oct 25, 2019
6cfd53d
Update RBAC in Azure examples to include csinodes permission
amodm Oct 25, 2019
6f5c470
Merge pull request #2478 from FayerZhang/master
k8s-ci-robot Oct 25, 2019
7c9d6e3
Do not assign return values to variables when not needed
Jarvis-Zhou Oct 23, 2019
a32987c
Merge pull request #2484 from amodm/master
k8s-ci-robot Oct 25, 2019
59df00f
Add rate limiter to the Vertical Pod autoscaler updater component
Sep 11, 2019
0e425f3
Merge pull request #2326 from monzo/eviction-rate-limiter
k8s-ci-robot Oct 25, 2019
2d92ba6
Merge pull request #2477 from Jarvis-Zhou/fix-ineffassign-failures
k8s-ci-robot Oct 25, 2019
2679b9f
Update e2e/autoscaling_utils and cut it down
bskiba Oct 22, 2019
f83981e
Update codegen with k8s 1.16.2
bskiba Oct 22, 2019
aaf8930
Add script for updating VPA dependencies
bskiba Oct 22, 2019
0f459de
Update e2e VPA code for deps update
bskiba Oct 25, 2019
f2f9f13
Webhook -> MutatingWebhook
bskiba Oct 25, 2019
d2e2550
Updating vendor against k8s v1.16.2.
bskiba Oct 25, 2019
c3aad82
Bump go to 1.12.10
bskiba Oct 25, 2019
7f0a42b
Add additional AWS labels.
cdmurph32 Oct 25, 2019
dde3341
Raise maximum memory capacity difference.
cdmurph32 Oct 25, 2019
589cd2a
Merge pull request #2121 from alexeldeib/ace/labelVmss
k8s-ci-robot Oct 27, 2019
7d2633a
Add tests for Packet cloudprovider
d-mo Oct 27, 2019
e536639
Merge pull request #2480 from jaypipes/rework-placeholder-match
k8s-ci-robot Oct 28, 2019
f953547
Fix the Allocation Strategies link in README
chingyi-lin Oct 28, 2019
03192b6
Fix config assignment issue
karataliu Oct 29, 2019
2f57dd9
Merge pull request #2494 from karataliu/patch-2
k8s-ci-robot Oct 30, 2019
9bda80d
Merge pull request #2462 from adobe-platform/aws_labels_memory
k8s-ci-robot Oct 30, 2019
41d0d44
update-gofmt
DavidLangworthy Oct 30, 2019
086999e
Merge pull request #2486 from bskiba/update
k8s-ci-robot Oct 31, 2019
0690933
Merge pull request #2490 from mistio/cluster-autoscaler-packet-tests
k8s-ci-robot Nov 1, 2019
34038ac
Improve logging of some VPA e2e tests
jbartosik Oct 30, 2019
8046b8f
Log errors from fetching selector rather than silently dropping it.
jbartosik Oct 30, 2019
cc7a214
Merge pull request #2475 from DataDog/JulienBalestra/ca-gcp-tests
k8s-ci-robot Nov 4, 2019
19dcfbd
Merge pull request #2476 from tghartland/fix-scale-down-errorf
k8s-ci-robot Nov 4, 2019
e1f0817
Declutter VPA AC e2e test logging
jbartosik Nov 4, 2019
ded3b30
Merge pull request #2496 from jbartosik/clarify-e2e-logs
k8s-ci-robot Nov 4, 2019
3e744bf
In VPA e2e tests create deployment with size 0 then scale it up
jbartosik Oct 31, 2019
f279d8b
Merge pull request #2504 from jbartosik/deflake-vpa-ac-e2e
k8s-ci-robot Nov 4, 2019
096bf04
Update test expected values for new FakeStore
DavidLangworthy Nov 4, 2019
f0fbf7a
[cluster-autoscaler] Allow “custom” DaemonSet pods
clamoriniere Oct 24, 2019
3a030dd
Merge pull request #2483 from clamoriniere/feature/customdaemonsetsup…
k8s-ci-robot Nov 6, 2019
3da8964
Merge pull request #2492 from chingyi-lin/patch-1
k8s-ci-robot Nov 6, 2019
a7488bb
Fix DeleteNodes test
DavidLangworthy Nov 6, 2019
f0e4e5e
Fix TemplateNode test
DavidLangworthy Nov 6, 2019
7a99522
Mitigate race
DavidLangworthy Nov 6, 2019
ba4c935
Mitigate race
DavidLangworthy Nov 6, 2019
cd457ff
Finally mitigate race
DavidLangworthy Nov 7, 2019
77dbb24
update readme
HerrmannHinz Nov 8, 2019
d3c9c29
Merge pull request #1 from HerrmannHinz/HerrmannHinz-patch-1
HerrmannHinz Nov 8, 2019
8d667b5
Merge pull request #2474 from DavidLangworthy/azure_api_batch_status
k8s-ci-robot Nov 11, 2019
910e753
remove temporary nodes logic
vivekbagade Nov 12, 2019
c5f50b2
Merge pull request #2520 from vivekbagade/remove-temp
k8s-ci-robot Nov 12, 2019
7b499aa
Rename STOCKOUT to RESOURCE_POOL_EXHAUSTED
losipiuk Nov 12, 2019
8871f17
Merge pull request #2521 from losipiuk/lo/rename-stockout
k8s-ci-robot Nov 12, 2019
24ec1ba
Fix metrics for list and delete instances
aleksandra-malinowska Nov 13, 2019
fe9426a
Merge pull request #2533 from aleksandra-malinowska/metric-list-insta…
k8s-ci-robot Nov 13, 2019
0e82aa0
Merge pull request #2518 from HerrmannHinz/master
k8s-ci-robot Nov 14, 2019
5dffd75
Add lease election object rbac rules
ggaaooppeenngg Nov 15, 2019
fee16bb
VPA: vendor update
wozniakjan Nov 15, 2019
0d7682a
VPA: go modules update
wozniakjan Nov 15, 2019
2f99d35
VPA: import prometheus metrics from component-base repo
wozniakjan Nov 15, 2019
4a36794
VPA: Godeps deprecated by go modules
wozniakjan Nov 15, 2019
50511dd
VPA: add k8s deps update script
wozniakjan Nov 15, 2019
48dd8dd
VPA: Store annotation metadata in internal structure
Nov 15, 2019
4cf9610
Merge pull request #2531 from wozniakjan/split_e2e_modules
k8s-ci-robot Nov 15, 2019
b232915
Merge pull request #2535 from maltenbergert/master
k8s-ci-robot Nov 15, 2019
0c194fd
Remove godeps usage from Makefile
bskiba Nov 15, 2019
87f5c93
Merge pull request #2536 from bskiba/use-modules
k8s-ci-robot Nov 15, 2019
402f334
Merge pull request #2534 from ggaaooppeenngg/add-lease-rbac
k8s-ci-robot Nov 18, 2019
db9317b
support multiple groups and GPU group for baiduCloud
wccsama Nov 18, 2019
8c1f58e
modify README and add multiple group example
wccsama Nov 18, 2019
c6a2638
Merge pull request #2539 from wccsama/wcc-ca
k8s-ci-robot Nov 18, 2019
358b735
Improve docs on azure autodiscover installation
fiunchinho Nov 18, 2019
30256a6
Merge pull request #2540 from fiunchinho/azure_autodiscover
k8s-ci-robot Nov 18, 2019
92d6329
Validate all parameters even when using managed identity
fiunchinho Nov 19, 2019
f64b6cd
CSR: fix a bug in GetClusterSize
towca Nov 19, 2019
a56fe5d
Merge pull request #2546 from towca/jtuznik/get-cluster-size-fix
k8s-ci-robot Nov 20, 2019
c06ee5b
Remove go-querystring from go.mod-extra
losipiuk Nov 8, 2019
ba23cf0
Updating vendor against git@github.com:kubernetes/kubernetes.git:mast…
losipiuk Oct 30, 2019
b4c8bbb
Fixes around metrics/ handler
losipiuk Oct 30, 2019
3470a9f
Migrate scheduler creation to scheduler.New()
losipiuk Oct 30, 2019
889ea1e
Use snapshot.NewSnapshot
losipiuk Nov 13, 2019
f50d9ec
Use MoreImportantPod instead GetPodPriority
losipiuk Oct 30, 2019
1039e93
Use quota.Equals instead of V1Equals
losipiuk Oct 30, 2019
1b6c75f
Set StartTime in Pod objects used in tests
losipiuk Oct 30, 2019
8161ca6
Use taint keys from k8s.io/api/core/v1 module
losipiuk Nov 8, 2019
3413247
Merge pull request #2515 from losipiuk/lo/ca-update-vendor-master
k8s-ci-robot Nov 22, 2019
2d5c9e3
Fix running e2e tests.
bskiba Nov 22, 2019
8467798
Run go mod vendor
bskiba Nov 22, 2019
8024e2d
Merge pull request #2553 from bskiba/fix-e2e
k8s-ci-robot Nov 22, 2019
38f72a0
fix: use version from cluster autoscaler package instead of client-go…
marwanad Nov 25, 2019
017b8d6
Merge pull request #2541 from fiunchinho/validate_all_params
k8s-ci-robot Nov 25, 2019
7e152ed
Merge pull request #2555 from marwanad/fix-azure-client-user-agent
k8s-ci-robot Nov 25, 2019
25c17c3
Bump Cluster Autoscaler version to 1.17-beta.1
losipiuk Nov 25, 2019
51b8368
Merge pull request #2558 from losipiuk/lo/1.17-beta.1
k8s-ci-robot Nov 25, 2019
237863a
Use git reset instead of git restore
jaypipes Nov 26, 2019
fe4b2c1
Run with -mod vendor when building in docker
bskiba Nov 26, 2019
4bb9b94
Merge pull request #2562 from bskiba/fix-e2e
k8s-ci-robot Nov 26, 2019
537c7b3
Run VPA e2e tests from the e2e dir
bskiba Nov 26, 2019
007c99c
Merge pull request #2563 from bskiba/fix-e2e
k8s-ci-robot Nov 26, 2019
2113e06
Fix a bug in initializing scheduler
MaciekPytel Nov 26, 2019
6ab78a8
Merge pull request #2565 from MaciekPytel/fix_predicates
k8s-ci-robot Nov 26, 2019
bc49a3f
Add nilo19 to cluster autoscaler azure owners list.
Nov 27, 2019
4ae00de
Merge pull request #2566 from nilo19/qi-add-owner
k8s-ci-robot Nov 27, 2019
0ae9d83
Merge pull request #2561 from jaypipes/go-mod-cleanup
k8s-ci-robot Nov 27, 2019
489ed6f
Remove timeout. Timeout is added by prow.
bskiba Nov 27, 2019
fedebf7
Merge pull request #2569 from bskiba/fix-e2e
k8s-ci-robot Nov 27, 2019
17a7bc5
Ignore NominatedNodeName on Pod if node is gone
losipiuk Nov 26, 2019
40aa850
Sync e2e_test file with k/k master
bskiba Nov 27, 2019
74c9229
Merge pull request #2580 from bskiba/fix-e2e
k8s-ci-robot Nov 27, 2019
fc5fa01
Add generating bindata to update deps script for e2e
bskiba Nov 27, 2019
e7332fb
Run update-kubernetes-deps-in-e2e
bskiba Nov 27, 2019
247111e
Updating vendor against git@github.com:kubernetes/kubernetes.git:mast…
losipiuk Nov 28, 2019
52a6456
Merge pull request #2576 from losipiuk/lo/ignore-nominated-node-name-…
k8s-ci-robot Nov 28, 2019
d9c7013
Merge pull request #2587 from bskiba/fix-e2e
k8s-ci-robot Nov 28, 2019
b67854e
Snapshot cluster state for scheduler every loop
losipiuk Nov 27, 2019
f6ed9c1
Merge pull request #2588 from losipiuk/lo/snapshot
k8s-ci-robot Nov 28, 2019
192ea27
Bump Cluster Autoscaler version to 1.17-beta.2
losipiuk Nov 28, 2019
aeaba2c
Run hack/update-kubernetes-deps-in-e2e.sh
bskiba Nov 28, 2019
213a09d
Merge pull request #2595 from bskiba/master
k8s-ci-robot Nov 28, 2019
10d8b69
Merge pull request #2593 from losipiuk/lo/ca-1.17-beta.2
k8s-ci-robot Nov 28, 2019
be6bf12
Cluster Autoscaler version to 1.17.0
losipiuk Nov 29, 2019
477857a
Merge pull request #2603 from losipiuk/lo/ca-1.17.0
k8s-ci-robot Nov 29, 2019
c9e97b5
merge upstream/cluster-autoscaler-1.17.0
enxebre Jan 13, 2020
90c9986
UPSTREAM: <carry>: openshift: Add spec file for cluster-autoscaler.
Apr 18, 2018
a51aa4f
UPSTREAM: <carry>: openshift: Add dockerfile for cluster autoscaler.
Apr 18, 2018
a36919e
UPSTREAM: <carry>: openshift: Add openshift/release Makefile and hack…
ingvagabund Apr 20, 2018
8b4277f
UPSTREAM: <carry>: openshift: Fix the spec and hack scripts so the pa…
ingvagabund Apr 24, 2018
480837d
UPSTREAM: <carry>: openshift: Bump embedded tools
smarterclayton Jun 7, 2018
2b342d4
UPSTREAM: <carry>: openshift: Fix spec file to be consistent
smarterclayton Jun 9, 2018
3cd1131
UPSTREAM: <carry>: openshift: cluster-autoscaler.spec: bump golang_ve…
frobware Oct 25, 2018
6c95f9e
UPSTREAM: <carry>: openshift: cluster-autoscaler.spec: set golang_ver…
frobware Oct 26, 2018
8f7703b
UPSTREAM: <carry>: openshift: initial cluster-api provider implementa…
frobware Oct 25, 2018
3f2fcbc
UPSTREAM: <carry>: openshift: Add a RHEL7 dockerfile and standarize f…
smarterclayton Nov 11, 2018
d234f23
UPSTREAM: <carry>: openshift: cluster-api switch to annotations
frobware Nov 16, 2018
2d9d5a7
UPSTREAM: <carry>: openshift: Switch to informers for observing machi…
frobware Oct 30, 2018
3c25093
UPSTREAM: <carry>: openshift: Move min/max constants to clusterapi_ut…
frobware Nov 27, 2018
b70b291
UPSTREAM: <carry>: openshift: Additional logging in provider.NodeGrou…
frobware Nov 27, 2018
9feabfd
UPSTREAM: <carry>: openshift: Rename clusterController to machineCont…
frobware Nov 27, 2018
cf13fac
UPSTREAM: <carry>: openshift: Use NamespaceAll in lieu of ""
frobware Nov 27, 2018
e26af2b
UPSTREAM: <carry>: openshift: Rename field provider.clusterapi to clu…
frobware Nov 27, 2018
9915a11
UPSTREAM: <carry>: openshift: Use 'machine' for machine parameter names
frobware Nov 27, 2018
66564f0
UPSTREAM: <carry>: openshift: Decouple nodegroup via dependency injec…
frobware Nov 27, 2018
7a234ea
UPSTREAM: <carry>: openshift: Use node.Spec.ProviderID instead of nod…
frobware Nov 30, 2018
781b36e
UPSTREAM: <carry>: openshift: utils: add unit tests for clusterapi_ut…
frobware Dec 8, 2018
00094c5
UPSTREAM: <carry>: openshift: Remove obsolete usage of "machine" anno…
frobware Jan 7, 2019
e3a8a86
UPSTREAM: <carry>: openshift: Add unit test for findMachine()
frobware Jan 10, 2019
ed94387
UPSTREAM: <carry>: openshift: Add unit test for findNodeByNodeName()
frobware Jan 10, 2019
1f72c7c
UPSTREAM: <carry>: openshift: Add unit test for findMachineOwner()
frobware Jan 10, 2019
57ca6ab
UPSTREAM: <carry>: openshift: Add unit test for findMachineByNodeProv…
frobware Jan 10, 2019
eb83b3c
UPSTREAM: <carry>: openshift: Add unit test for MachinesInMachineSet()
frobware Jan 10, 2019
294b1cb
UPSTREAM: <carry>: openshift: Remove machineController.MachineSets() …
frobware Jan 10, 2019
2e9a442
UPSTREAM: <carry>: openshift: assign ownership to cloud team
paulfantom Jan 24, 2019
336222b
UPSTREAM: <carry>: openshift: cloudprovider: pivot to machine.openshi…
frobware Jan 29, 2019
c6144e1
UPSTREAM: <carry>: openshift: Add MachineDeployment informers to cont…
frobware Feb 9, 2019
a5148aa
UPSTREAM: <carry>: openshift: Revert to whitebox testing
frobware Feb 9, 2019
218c903
UPSTREAM: <carry>: openshift: Add interface ScalableResource
frobware Feb 9, 2019
75733e4
UPSTREAM: <carry>: openshift: MachineSet implementation of ScalableRe…
frobware Feb 9, 2019
8fec79a
UPSTREAM: <carry>: openshift: MachineDeployment implementation of Sca…
frobware Feb 9, 2019
a3c51e2
UPSTREAM: <carry>: openshift: add unit test for utils
frobware Feb 9, 2019
a152c3a
UPSTREAM: <carry>: openshift: add unit test for controller
frobware Feb 9, 2019
f10d4d1
UPSTREAM: <carry>: openshift: add unit test for provider
frobware Feb 9, 2019
a0f09ac
UPSTREAM: <carry>: openshift: add unit test for nodegroup
frobware Feb 9, 2019
818a966
UPSTREAM: <carry>: openshift: openshiftmachineapi: add feature gate f…
frobware Feb 11, 2019
e664241
UPSTREAM: <carry>: openshift: address review comments
frobware Feb 13, 2019
9ac06d7
UPSTREAM: <carry>: openshift: log nodegroup discovery at level 4
frobware Feb 14, 2019
1e30987
UPSTREAM: <carry>: openshift: validate node membership in DeleteNodes()
frobware Feb 12, 2019
3478982
UPSTREAM: <carry>: openshift: create utility functions
frobware Feb 22, 2019
1030d45
UPSTREAM: <carry>: openshift: return no nodegroup when scaling bounds…
frobware Feb 22, 2019
dfd256b
UPSTREAM: <carry>: openshift: Remove old test functions
frobware Feb 22, 2019
3ce5312
UPSTREAM: <carry>: openshift: openshiftmachineapi: remove unused fields
frobware Feb 23, 2019
a082fe3
UPSTREAM: <carry>: openshift: remove TODO
frobware Mar 13, 2019
b1b943c
UPSTREAM: <carry>: openshift: Rework TestNodeGroupNewNodeGroup
frobware Mar 14, 2019
b5756f6
UPSTREAM: <carry>: openshift: Rework TestNodeGroupResize
frobware Mar 15, 2019
eff8109
UPSTREAM: <carry>: openshift: Rework TestNodeGroupDeleteNodes
frobware Mar 16, 2019
76d7dce
UPSTREAM: <carry>: openshift: Rework TestControllerNodeGroups
frobware Mar 17, 2019
789f2f4
UPSTREAM: <carry>: openshift: Rework TestControllerFindMachineByID
frobware Mar 17, 2019
fcbd039
UPSTREAM: <carry>: openshift: Rework utils test funcs
frobware Mar 17, 2019
5f86026
UPSTREAM: <carry>: openshift: Rework TestControllerNodeGroupForNodeLo…
frobware Mar 17, 2019
cc3d15a
UPSTREAM: <carry>: openshift: remove t.Helper() in test helpers
frobware Mar 20, 2019
3ab8142
UPSTREAM: <carry>: openshift: remove unused makeMachineOwner()
frobware Mar 20, 2019
3e0273c
UPSTREAM: <carry>: openshift: force test namespace ToLower()
frobware Mar 20, 2019
5b0d476
UPSTREAM: <carry>: openshift: add spec to clusterTestConfig
frobware Mar 20, 2019
be4ff8c
UPSTREAM: <carry>: openshift: simplify TestProviderConstructorProperties
frobware Mar 20, 2019
50178c0
UPSTREAM: <carry>: openshift: remove parallel tests
frobware Mar 20, 2019
94718d5
UPSTREAM: <carry>: openshift: move all test utility functions
frobware Mar 20, 2019
07ec6a1
UPSTREAM: <carry>: openshift: check for explicit errors in resize tests
frobware Mar 20, 2019
586ff32
UPSTREAM: <carry>: openshift: create git history verification script
paulfantom Mar 21, 2019
d4f7b0e
UPSTREAM: <carry>: openshift: add unit test TestNodeGroupIncreaseSize
frobware Mar 26, 2019
d41373c
UPSTREAM: <carry>: openshift: add unit test TestNodeGroupDecreaseTarg…
frobware Mar 26, 2019
e50645f
UPSTREAM: <carry>: openshift: cloudprovider updates for 1.13
frobware Mar 27, 2019
cc85b3e
UPSTREAM: <carry>: openshift: cloudprovider builder updates for 1.13
frobware Mar 27, 2019
053dbf2
UPSTREAM: <carry>: openshift: expose KubeConfigPath in CA options
frobware Mar 27, 2019
7ae93d1
UPSTREAM: <carry>: openshift: Add fmt, lint, vet scripts/Makefile
michaelgugino Mar 22, 2019
31f521c
UPSTREAM: <carry>: openshift: fix lint issue machineapi_provider
michaelgugino Mar 27, 2019
c4901da
UPSTREAM: <carry>: openshift: simplify TestControllerFindMachineOwner
frobware Mar 29, 2019
89a5065
UPSTREAM: <carry>: openshift: simplify TestControllerFindMachineByNod…
frobware Mar 29, 2019
4520ba1
UPSTREAM: <carry>: openshift: simplify TestControllerFindNodeByNodeName
frobware Mar 29, 2019
0cf56e0
UPSTREAM: <carry>: openshift: simplify TestControllerMachinesInMachin…
frobware Mar 29, 2019
1bc144a
UPSTREAM: <carry>: openshift: remove TestControllerNodeGroupsSizes
frobware Mar 29, 2019
db4aeb2
UPSTREAM: <carry>: openshift: simplify TestControllerNodeGroupForNode…
frobware Mar 29, 2019
f14f73e
UPSTREAM: <carry>: openshift: simplify controller node lookup tests
frobware Mar 29, 2019
dfedb4b
UPSTREAM: <carry>: openshift: expose nodegroup type for testing
frobware Apr 3, 2019
2b30ce8
UPSTREAM: <carry>: openshift: add new test helper
frobware Apr 3, 2019
8d29d47
UPSTREAM: <carry>: openshift: rework provider test setup
frobware Apr 3, 2019
ed3498e
UPSTREAM: <carry>: openshift: rework nodegroup test setup
frobware Apr 3, 2019
0516f61
UPSTREAM: <carry>: openshift: rework controller test setup
frobware Apr 3, 2019
c2887ae
UPSTREAM: <carry>: openshift: move machineAnnotationKey constant
frobware Apr 3, 2019
a3ac7f5
UPSTREAM: <carry>: openshift: add debugFormat const
frobware Apr 3, 2019
cd0e37d
UPSTREAM: <carry>: openshift: shorten test helper names
frobware Apr 3, 2019
35106bd
UPSTREAM: <carry>: openshift: disable MachineDeployment in normal ope…
frobware Apr 17, 2019
e57af73
UPSTREAM: <carry>: openshift: record max-nodes-total event
frobware May 1, 2019
a6a3b8b
UPSTREAM: <carry>: openshift: simplify config creation
frobware May 28, 2019
1894f6f
UPSTREAM: <carry>: openshift: add index to machine informer
frobware May 30, 2019
5204b75
UPSTREAM: <carry>: openshift: add findMachineByNodeProviderID
frobware May 30, 2019
3b0d039
UPSTREAM: <carry>: openshift: Prioritize machine search using provide…
frobware May 31, 2019
2ac5c79
UPSTREAM: <carry>: openshift: add test to search using annotation
frobware May 31, 2019
1dfc54c
UPSTREAM: <carry>: openshift: prioritize providerID in calls to Nodes()
frobware May 31, 2019
6827cd3
UPSTREAM: <carry>: openshift: Add OpenShift VPA image builds
joelsmith May 17, 2019
bf7b9b3
UPSTREAM: <carry>: openshift: Add joelsmith and sjenning to VPA OWNER…
joelsmith Jun 3, 2019
e2a995f
UPSTREAM: <carry>: openshift: move maxnodes total event
frobware Jun 5, 2019
005b471
UPSTREAM: <carry>: openshift: Revert "Merge pull request #90 from fro…
frobware Jun 5, 2019
e4ef5a5
UPSTREAM: <carry>: openshift: move MaxNodesTotalReached event again
frobware Jun 14, 2019
f31b67e
UPSTREAM: <carry>: openshift: add test/openshift/hack scripts
frobware Jun 17, 2019
5eaac16
UPSTREAM: <carry>: openshift: update criteria for returning a nodegroup
frobware Jun 17, 2019
4f06fbc
UPSTREAM: <carry>: openshift: simplify test setup for nodes/replicas
frobware Jun 18, 2019
37ef491
UPSTREAM: <carry>: openshift: fix build post 1.14 rebase
frobware Jun 19, 2019
e1cc6d6
UPSTREAM: <carry>: openshift: add test/openshift/Makefile
frobware Jun 20, 2019
d2eca3f
UPSTREAM: <carry>: openshift: Switch builds to use Go 1.12
frobware Jun 24, 2019
123b0de
UPSTREAM: <carry>: openshift: Rework logic in DeleteNodes()
frobware Feb 12, 2019
1709ef4
UPSTREAM: <carry>: openshift: reference k8s.io/api/core/v1 with corev…
frobware Jul 17, 2019
909071a
UPSTREAM: <carry>: openshift: report MaxNodesTotal count
frobware Jul 30, 2019
be2e525
UPSTREAM: <carry>: openshift: add custom nodeset comparator
frobware Aug 23, 2019
f9b81de
UPSTREAM: <carry>: openshift: Extend makefile with 'make goimports' t…
ingvagabund Aug 26, 2019
1706461
UPSTREAM: <carry>: openshift: Run 'make goimports' over cluster-autos…
ingvagabund Aug 26, 2019
cae8533
UPSTREAM: <carry>: openshift: revert https://github.com/openshift/kub…
frobware Sep 6, 2019
63b0e7a
UPSTREAM: <carry>: openshift: satisfy cloud provider interface
enxebre Oct 28, 2019
bee08b3
UPSTREAM: <carry>: openshift: update cluster-autoscaler OWNERS
enxebre Oct 29, 2019
069e58b
UPSTREAM: <carry>: openshift: Revert "Adding config for event filtering"
enxebre Oct 30, 2019
bbeccaa
UPSTREAM: <carry>: openshift: Bump deps for cloudprovider/openshiftma…
frobware Jun 20, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 4 additions & 3 deletions OWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ approvers:
- ingvagabund
- bison
reviewers:
- paulfantom
- spangenberg
- vikaschoudhary16
- enxebre
- frobware
- ingvagabund
- bison
3 changes: 2 additions & 1 deletion cluster-autoscaler/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -657,7 +657,7 @@ The following startup parameters are supported for cluster autoscaler:
| `ok-total-unready-count` | Number of allowed unready nodes, irrespective of max-total-unready-percentage | 3
| `max-node-provision-time` | Maximum time CA waits for node to be provisioned | 15 minutes
| `nodes` | sets min,max size and other configuration data for a node group in a format accepted by cloud provider. Can be used multiple times. Format: <min>:<max>:<other...> | ""
| `node-group-auto-discovery` | One or more definition(s) of node group auto-discovery.<br>A definition is expressed `<name of discoverer>:[<key>[=<value>]]`<br>The `aws` and `gce` cloud providers are currently supported. AWS matches by ASG tags, e.g. `asg:tag=tagKey,anotherTagKey`<br>GCE matches by IG name prefix, and requires you to specify min and max nodes per IG, e.g. `mig:namePrefix=pfx,min=0,max=10`<br>Can be used multiple times | ""
| `node-group-auto-discovery` | One or more definition(s) of node group auto-discovery.<br>A definition is expressed `<name of discoverer>:[<key>[=<value>]]`<br>The `aws`, `gce`, and `azure` cloud providers are currently supported. AWS matches by ASG tags, e.g. `asg:tag=tagKey,anotherTagKey`<br>GCE matches by IG name prefix, and requires you to specify min and max nodes per IG, e.g. `mig:namePrefix=pfx,min=0,max=10`<br> Azure matches by tags on VMSS, e.g. `label:foo=bar`, and will auto-detect `min` and `max` tags on the VMSS to set scaling limits.<br>Can be used multiple times | ""
| `estimator` | Type of resource estimator to be used in scale up | binpacking
| `expander` | Type of node group expander to be used in scale up. | random
| `write-status-configmap` | Should CA write status information to a configmap | true
Expand All @@ -674,6 +674,7 @@ The following startup parameters are supported for cluster autoscaler:
| `leader-elect-renew-deadline` | The interval between attempts by the acting master to renew a leadership slot before it stops leading.<br>This must be less than or equal to the lease duration.<br>This is only applicable if leader election is enabled | 10 seconds
| `leader-elect-retry-period` | The duration the clients should wait between attempting acquisition and renewal of a leadership.<br>This is only applicable if leader election is enabled | 2 seconds
| `leader-elect-resource-lock` | The type of resource object that is used for locking during leader election.<br>Supported options are `endpoints` (default) and `configmaps` | "endpoints"
| `aws-use-static-instance-list` | Should CA fetch instance types in runtime or use a static list. AWS only | false

# Troubleshooting:

Expand Down
8 changes: 7 additions & 1 deletion cluster-autoscaler/OWNERS
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# See the OWNERS docs: https://git.k8s.io/community/contributors/guide/owners.md

approvers:
- enxebre
- frobware
- ingvagabund
- bison
reviewers:
- spangenberg
- enxebre
- frobware
- ingvagabund
- bison
1 change: 1 addition & 0 deletions cluster-autoscaler/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Starting from Kubernetes 1.12, versioning scheme was changed to match Kubernetes

| Kubernetes Version | CA Version |
|--------|--------|
| 1.16.X | 1.16.X |
| 1.15.X | 1.15.X |
| 1.14.X | 1.14.X |
| 1.13.X | 1.13.X |
Expand Down
51 changes: 21 additions & 30 deletions cluster-autoscaler/cloudprovider/aws/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Cluster Autoscaler on AWS
The cluster autoscaler on AWS scales worker nodes within any specified autoscaling group. It will run as a `Deployment` in your cluster. This README will go over some of the necessary steps required to get the cluster autoscaler up and running.
The cluster autoscaler on AWS scales worker nodes within any specified autoscaling group. It will run as a `Deployment` in your cluster. This README covers the steps required to configure and run the cluster autoscaler.

## Kubernetes Version
Cluster autoscaler must run on v1.3.0 or greater.
Expand Down Expand Up @@ -27,35 +27,23 @@ A minimum IAM policy would look like:
]
}
```
If you'd like to scale node groups from 0, an
`autoscaling:DescribeLaunchConfigurations` or
`ec2:DescribeLaunchTemplateVersions` permission is required depending on if you
made your ASG with Launch Configuration or Launch Template.

If you'd like to auto-discover node groups by specifying the `--node-group-auto-discovery` flag, a `DescribeTags` permission is also required:
If you'd like the cluster autoscaler to [automatically
discover](#auto-discovery-setup) EC2 AutoScalingGroups, the
`autoscaling:DescribeTags` permission is also required.

```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:DescribeAutoScalingInstances",
"autoscaling:DescribeLaunchConfigurations",
"autoscaling:DescribeTags",
"autoscaling:SetDesiredCapacity",
"autoscaling:TerminateInstanceInAutoScalingGroup"
],
"Resource": "*"
}
]
}
```

AWS supports ARNs for autoscaling groups. More information [here](https://docs.aws.amazon.com/autoscaling/latest/userguide/control-access-using-iam.html#policy-auto-scaling-resources).
**NOTE**: You can restrict the target resources for the autoscaling actions by
specifying autoscaling group ARNS. More information can be found
[here](https://docs.aws.amazon.com/autoscaling/latest/userguide/control-access-using-iam.html#policy-auto-scaling-resources).

### Using AWS Credentials
For on premise users like to scale out to AWS, above approach that attaching policy to nodegroup role won't work. Instead, you can create an aws secret manually and add following environment variables to cluster-autoscaler deployment manifest. Cluster autoscaler will use credential to authenticate and authorize itself. Please make sure your role has above permissions.
For on premise users wishing to scale out to AWS, the above approach of attaching policy to a nodegroup role won't work. Instead, you can create an aws secret manually and add following environment variables to cluster-autoscaler deployment manifest. Cluster autoscaler will use credential to authenticate and authorize itself. Please make sure your role has above permissions.

```
```yaml
apiVersion: v1
kind: Secret
metadata:
Expand All @@ -64,11 +52,10 @@ type: Opaque
data:
aws_access_key_id: BASE64_OF_YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key: BASE64_OF_YOUR_AWS_SECRET_ACCESS_KEY

```
Please check [guidance](https://kubernetes.io/docs/concepts/configuration/secret/#creating-a-secret-manually) for creating a secret manually.

```
```yaml
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
Expand All @@ -82,7 +69,6 @@ env:
key: aws_secret_access_key
- name: AWS_REGION
value: YOUR_AWS_REGION

```

## Deployment Specification
Expand All @@ -108,7 +94,6 @@ Please replace `{{ node_asg_min }}`, `{{ node_asg_max }}` and `{{ name }}` with
kubectl apply -f examples/cluster-autoscaler-run-on-master.yaml
```


### Auto-Discovery Setup

To run a cluster-autoscaler which auto-discovers ASGs with nodes use the `--node-group-auto-discovery` flag. For example, `--node-group-auto-discovery=asg:tag=k8s.io/cluster-autoscaler/enabled,k8s.io/cluster-autoscaler/<YOUR CLUSTER NAME>` will find the ASGs where those tag keys
Expand Down Expand Up @@ -210,11 +195,17 @@ spec:
* Create an ASG with a MixedInstancesPolicy that refers to the newly-created LT.
* Set LaunchTemplateOverrides to include the 'base' instance type r5.2xlarge and suitable alternatives, e.g. r5d.2xlarge, i3.2xlarge, r5a.2xlarge and r5ad.2xlarge. Differing processor types and speeds should be evaluated depending on your use-case(s).
* Set [InstancesDistribution](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_InstancesDistribution.html) according to your needs.
* See [Allocation Strategies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.htlm#asg-allocation-strategies) for information about the ASG fulfils capacity from the specified instance types.
* See [Allocation Strategies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html#asg-allocation-strategies) for information about the ASG fulfils capacity from the specified instance types.
* Repeat by creating other LTs and ASGs, for example c5.18xlarge and c5n.18xlarge or a bunch of similar burstable instances.

See CloudFormation example [here](MixedInstancePolicy.md).

## Use Static Instance List
The set of the latest supported EC2 instance types will be fetched by the CA at run time. You can find all the available instance types in the CA logs.
If your network access is restricted such that fetching this set is infeasible, you can specify the command-line flag `--aws-use-static-instance-list=true` to switch the CA back to its original use of a statically defined set.

To refresh static list, please run `go run ec2_instance_types/gen.go` under `cluster-autoscaler/cloudprovider/aws/` and update `staticListLastUpdateTime` in `aws_util.go`

## Common Notes and Gotchas:
- The `/etc/ssl/certs/ca-bundle.crt` should exist by default on ec2 instance in your EKS cluster. If you use other cluster privision tools like [kops](https://github.com/kubernetes/kops) with different operating systems other than Amazon Linux 2, please use `/etc/ssl/certs/ca-certificates.crt` or correct path on your host instead for the volume hostPath in your cluster autoscaler manifest.
- Cluster autoscaler does not support Auto Scaling Groups which span multiple Availability Zones; instead you should use an Auto Scaling Group for each Availability Zone and enable the [--balance-similar-node-groups](../../FAQ.md#im-running-cluster-with-nodes-in-multiple-zones-for-ha-purposes-is-that-supported-by-cluster-autoscaler) feature. If you do use a single Auto Scaling Group that spans multiple Availability Zones you will find that AWS unexpectedly terminates nodes without them being drained because of the [rebalancing feature](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-benefits.html#arch-AutoScalingMultiAZ).
Expand Down
15 changes: 6 additions & 9 deletions cluster-autoscaler/cloudprovider/aws/auto_scaling_groups.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,9 @@ package aws
import (
"fmt"
"reflect"
"regexp"
"strings"
"sync"

"k8s.io/autoscaler/cluster-autoscaler/cloudprovider"
"k8s.io/autoscaler/cluster-autoscaler/config/dynamic"

"github.com/aws/aws-sdk-go/aws"
Expand All @@ -44,7 +42,7 @@ type asgCache struct {
service autoScalingWrapper
interrupt chan struct{}

asgAutoDiscoverySpecs []cloudprovider.ASGAutoDiscoveryConfig
asgAutoDiscoverySpecs []asgAutoDiscoveryConfig
explicitlyConfigured map[AwsRef]bool
}

Expand Down Expand Up @@ -72,7 +70,7 @@ type asg struct {
Tags []*autoscaling.TagDescription
}

func newASGCache(service autoScalingWrapper, explicitSpecs []string, autoDiscoverySpecs []cloudprovider.ASGAutoDiscoveryConfig) (*asgCache, error) {
func newASGCache(service autoScalingWrapper, explicitSpecs []string, autoDiscoverySpecs []asgAutoDiscoveryConfig) (*asgCache, error) {
registry := &asgCache{
registeredAsgs: make([]*asg, 0),
service: service,
Expand Down Expand Up @@ -277,18 +275,17 @@ func (m *asgCache) DeleteInstances(instances []*AwsInstanceRef) error {
return err
}
klog.V(4).Infof(*resp.Activity.Description)
}

// Proactively decrement the size so autoscaler makes better decisions
commonAsg.curSize--
// Proactively decrement the size so autoscaler makes better decisions
commonAsg.curSize--
}
}
return nil
}

// isPlaceholderInstance checks if the given instance is only a placeholder
func (m *asgCache) isPlaceholderInstance(instance *AwsInstanceRef) bool {
matched, _ := regexp.MatchString(fmt.Sprintf("^%s.*\\d+$", placeholderInstanceNamePrefix), instance.Name)
return matched
return strings.HasPrefix(instance.Name, placeholderInstanceNamePrefix)
}

// Fetch automatically discovered ASGs. These ASGs should be unregistered if
Expand Down
32 changes: 30 additions & 2 deletions cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,16 @@ var (
type awsCloudProvider struct {
awsManager *AwsManager
resourceLimiter *cloudprovider.ResourceLimiter
// InstanceTypes is a map of ec2 resources
instanceTypes map[string]*InstanceType
}

// BuildAwsCloudProvider builds CloudProvider implementation for AWS.
func BuildAwsCloudProvider(awsManager *AwsManager, resourceLimiter *cloudprovider.ResourceLimiter) (cloudprovider.CloudProvider, error) {
func BuildAwsCloudProvider(awsManager *AwsManager, instanceTypes map[string]*InstanceType, resourceLimiter *cloudprovider.ResourceLimiter) (cloudprovider.CloudProvider, error) {
aws := &awsCloudProvider{
awsManager: awsManager,
resourceLimiter: resourceLimiter,
instanceTypes: instanceTypes,
}
return aws, nil
}
Expand Down Expand Up @@ -343,12 +346,37 @@ func BuildAWS(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscover
defer config.Close()
}

// Generate EC2 list
var instanceTypes map[string]*InstanceType
var lastUpdateTime string
if opts.AWSUseStaticInstanceList {
instanceTypes, lastUpdateTime = GetStaticEC2InstanceTypes()
klog.Warningf("Use static EC2 Instance Types and list could be outdated. Last update time: %s", lastUpdateTime)
} else {
region, err := GetCurrentAwsRegion()
if err != nil {
klog.Fatalf("Failed to get AWS Region: %v", err)
}

instanceTypes, err = GenerateEC2InstanceTypes(region)
if err != nil {
klog.Fatalf("Failed to generate AWS EC2 Instance Types: %v", err)
}

keys := make([]string, 0, len(instanceTypes))
for key := range instanceTypes {
keys = append(keys, key)
}

klog.Infof("Successfully load %d EC2 Instance Types %s", len(keys), keys)
}

manager, err := CreateAwsManager(config, do)
if err != nil {
klog.Fatalf("Failed to create AWS Manager: %v", err)
}

provider, err := BuildAwsCloudProvider(manager, rl)
provider, err := BuildAwsCloudProvider(manager, instanceTypes, rl)
if err != nil {
klog.Fatalf("Failed to create AWS cloud provider: %v", err)
}
Expand Down
60 changes: 55 additions & 5 deletions cluster-autoscaler/cloudprovider/aws/aws_cloud_provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ var testAwsManager = &AwsManager{
autoScalingService: testService,
}

func newTestAwsManagerWithService(service autoScaling, autoDiscoverySpecs []cloudprovider.ASGAutoDiscoveryConfig) *AwsManager {
func newTestAwsManagerWithService(service autoScaling, autoDiscoverySpecs []asgAutoDiscoveryConfig) *AwsManager {
wrapper := autoScalingWrapper{service, map[string]string{}}
return &AwsManager{
autoScalingService: wrapper,
Expand All @@ -101,7 +101,7 @@ func newTestAwsManagerWithAsgs(t *testing.T, service autoScaling, specs []string
return m
}

func newTestAwsManagerWithAutoAsgs(t *testing.T, service autoScaling, specs []string, autoDiscoverySpecs []cloudprovider.ASGAutoDiscoveryConfig) *AwsManager {
func newTestAwsManagerWithAutoAsgs(t *testing.T, service autoScaling, specs []string, autoDiscoverySpecs []asgAutoDiscoveryConfig) *AwsManager {
m := newTestAwsManagerWithService(service, autoDiscoverySpecs)
m.asgCache.parseExplicitAsgs(specs)
return m
Expand All @@ -123,6 +123,7 @@ func testNamedDescribeAutoScalingGroupsOutput(groupName string, desiredCap int64
MinSize: aws.Int64(1),
MaxSize: aws.Int64(5),
Instances: instances,
AvailabilityZones: aws.StringSlice([]string{"us-east-1a"}),
},
},
}
Expand All @@ -133,7 +134,8 @@ func testProvider(t *testing.T, m *AwsManager) *awsCloudProvider {
map[string]int64{cloudprovider.ResourceNameCores: 1, cloudprovider.ResourceNameMemory: 10000000},
map[string]int64{cloudprovider.ResourceNameCores: 10, cloudprovider.ResourceNameMemory: 100000000})

provider, err := BuildAwsCloudProvider(m, resourceLimiter)
instanceTypes, _ := GetStaticEC2InstanceTypes()
provider, err := BuildAwsCloudProvider(m, instanceTypes, resourceLimiter)
assert.NoError(t, err)
return provider.(*awsCloudProvider)
}
Expand All @@ -143,7 +145,8 @@ func TestBuildAwsCloudProvider(t *testing.T) {
map[string]int64{cloudprovider.ResourceNameCores: 1, cloudprovider.ResourceNameMemory: 10000000},
map[string]int64{cloudprovider.ResourceNameCores: 10, cloudprovider.ResourceNameMemory: 100000000})

_, err := BuildAwsCloudProvider(testAwsManager, resourceLimiter)
instanceTypes, _ := GetStaticEC2InstanceTypes()
_, err := BuildAwsCloudProvider(testAwsManager, instanceTypes, resourceLimiter)
assert.NoError(t, err)
}

Expand All @@ -164,7 +167,7 @@ func TestNodeGroups(t *testing.T) {

func TestAutoDiscoveredNodeGroups(t *testing.T) {
service := &AutoScalingMock{}
provider := testProvider(t, newTestAwsManagerWithAutoAsgs(t, service, []string{}, []cloudprovider.ASGAutoDiscoveryConfig{
provider := testProvider(t, newTestAwsManagerWithAutoAsgs(t, service, []string{}, []asgAutoDiscoveryConfig{
{
Tags: map[string]string{"test": ""},
},
Expand Down Expand Up @@ -437,6 +440,53 @@ func TestDeleteNodes(t *testing.T) {
assert.Equal(t, 1, newSize)
}

func TestDeleteNodesWithPlaceholder(t *testing.T) {
service := &AutoScalingMock{}
provider := testProvider(t, newTestAwsManagerWithAsgs(t, service, []string{"1:5:test-asg"}))
asgs := provider.NodeGroups()

service.On("SetDesiredCapacity", &autoscaling.SetDesiredCapacityInput{
AutoScalingGroupName: aws.String(asgs[0].Id()),
DesiredCapacity: aws.Int64(1),
HonorCooldown: aws.Bool(false),
}).Return(&autoscaling.SetDesiredCapacityOutput{})

// Look up the current number of instances...
var expectedInstancesCount int64 = 2
service.On("DescribeAutoScalingGroupsPages",
&autoscaling.DescribeAutoScalingGroupsInput{
AutoScalingGroupNames: aws.StringSlice([]string{"test-asg"}),
MaxRecords: aws.Int64(maxRecordsReturnedByAPI),
},
mock.AnythingOfType("func(*autoscaling.DescribeAutoScalingGroupsOutput, bool) bool"),
).Run(func(args mock.Arguments) {
fn := args.Get(1).(func(*autoscaling.DescribeAutoScalingGroupsOutput, bool) bool)
fn(testNamedDescribeAutoScalingGroupsOutput("test-asg", expectedInstancesCount, "test-instance-id"), false)
// we expect the instance count to be 1 after the call to DeleteNodes
expectedInstancesCount = 1
}).Return(nil)

provider.Refresh()

initialSize, err := asgs[0].TargetSize()
assert.NoError(t, err)
assert.Equal(t, 2, initialSize)

node := &apiv1.Node{
Spec: apiv1.NodeSpec{
ProviderID: "aws:///us-east-1a/i-placeholder-test-asg-1",
},
}
err = asgs[0].DeleteNodes([]*apiv1.Node{node})
assert.NoError(t, err)
service.AssertNumberOfCalls(t, "SetDesiredCapacity", 1)
service.AssertNumberOfCalls(t, "DescribeAutoScalingGroupsPages", 2)

newSize, err := asgs[0].TargetSize()
assert.NoError(t, err)
assert.Equal(t, 1, newSize)
}

func TestDeleteNodesAfterMultipleRefreshes(t *testing.T) {
service := &AutoScalingMock{}
manager := newTestAwsManagerWithAsgs(t, service, []string{"1:5:test-asg"})
Expand Down