Commit Graph

49 Commits

Author SHA1 Message Date
Ciprian Hacman 5a9cc3d216 Fix int to string conversions 2020-07-26 09:09:52 +03:00
John Gardiner Myers cc2b647d06 Create separate field for disabling rolling updates 2020-06-19 22:19:26 -07:00
John Gardiner Myers af90ecdddf Reduce test flakiness 2020-05-22 19:33:01 -07:00
Justin Santa Barbara ffb6cd61aa Rolling-update validation harmonization
This is a follow-on to #8868; I believe the intent of that was to
expose the option to do more (or fewer) retries.

We previously had a single retry to prevent flapping; this basically
unifies the previous behaviour with the idea of making it
configurable.

* validate-count=0 effectively turns off validation.

* validate-count=1 will do a single validation, without flapping
  detection.

* validate-count>=2 will require N succesful validations in a row,
waiting ValidateSuccessDuration in between.

A nice side-effect of this is that the tests now explicitly specify
ValidateCount=1 instead of setting ValidateSuccessDuration=0, which
had the side effect of doing the equivalent to ValidateCount=1.
2020-04-17 01:40:02 -04:00
Justin Santa Barbara 31bb16d4d1 Add context.Context to most signatures
The client-go signature for most methods adds a context.Context
object, and also makes Options mandatory.  Feed through a
context.Context through many of our methods (but use context.TODO to
stop it getting totally out of hand!)
2020-04-11 14:44:17 -04:00
Jesse Haka 11eaacd53e validationtimes -> validationcount 2020-04-08 13:55:29 +03:00
Jesse Haka e1e79790ef validate cluster n times in rolling update 2020-04-08 13:55:24 +03:00
John Gardiner Myers 33e23166e4 Support the kops.k8s.io/needs-update annotation on nodes 2020-03-09 22:43:09 -07:00
John Gardiner Myers 99100dc4a0 Fix flaky test 2020-03-03 20:54:22 -08:00
John Gardiner Myers ebfcf5d909 Implement recovery from previous failed surge rolling updates 2020-01-27 20:45:16 -08:00
John Gardiner Myers cee662d521 Implement MaxSurge happy path 2020-01-27 20:45:16 -08:00
John Gardiner Myers 640f5f5b74 Terminate AWS instances through EC2 instead of Autoscaling 2020-01-27 20:15:10 -08:00
John Gardiner Myers 5f72d12132 Reduce test flakiness 2020-01-12 21:27:55 -08:00
John Gardiner Myers 10d6416b8e Allow MaxConcurrency for masters and bastions 2020-01-11 18:50:35 -08:00
John Gardiner Myers 0c3651c9c8 Implement MaxUnavailable 2020-01-05 12:09:55 -08:00
John Gardiner Myers 01dd793604 Specify number of NotReady instances in makeGroup() parameter 2020-01-04 10:47:08 -08:00
John Gardiner Myers 39f849271b Fold setUpCloud() into getGroups() 2020-01-04 09:08:00 -08:00
John Gardiner Myers 612e4ae484 Extract creation of the CloudInstanceGroup 2020-01-04 09:08:00 -08:00
John Gardiner Myers cba59afac4 Change taint key per review comment 2020-01-03 10:07:21 -08:00
John Gardiner Myers 97ad2c3b54 Taint nodes needing update 2019-12-30 16:06:00 -08:00
John Gardiner Myers 5189cc1ef6 Add a third instance to each nodes group in rolling update tests 2019-12-30 13:48:37 -08:00
John Gardiner Myers 92581ab4a1 Create nodes for instances in rolling update tests 2019-12-30 13:48:37 -08:00
John Gardiner Myers 77769855af Return groups from getTestSetup() 2019-12-30 13:48:34 -08:00
Justin Santa Barbara 84835ce0ba
Update pkg/instancegroups/rollingupdate_test.go
Co-Authored-By: John Gardiner Myers <jgmyers@proofpoint.com>
2019-12-17 21:25:18 -05:00
Peter Rifel a24d9b6455
remove more trailing whitespace 2019-12-17 13:03:16 -06:00
Peter Rifel 85a1d23c18
remove trailing whitespace that was breaking gofmt 2019-12-17 12:49:20 -06:00
Justin Santa Barbara 8373c9fc4d tests: increase timeout in rolling update tests
We never know when e.g. a GC is going to delay us, so we need a lot
more padding on these timeouts.
2019-12-17 09:59:21 -05:00
John Gardiner Myers 19e165759b Add unit test for flapping validation 2019-12-13 13:45:21 -08:00
Jesse Haka 44183aef7f validate cluster twice 2019-12-12 08:48:15 +02:00
John Gardiner Myers 1239c05e71 Validate after updating bastion 2019-12-09 18:45:51 -08:00
John Gardiner Myers 2e36124f77 Expose ValidateTickDuration for use by unit tests 2019-12-09 18:43:20 -08:00
John Gardiner Myers 38b19e53b4 Add a second master to rolling update tests 2019-11-19 16:55:39 -08:00
John Gardiner Myers 8121a84089 Improve rolling update test coverage 2019-11-19 16:55:39 -08:00
John Gardiner Myers cfca6fae10 extract RollingUpdateCluster initialization in rollingupdate tests 2019-11-19 16:55:39 -08:00
John Gardiner Myers d82c834fe3 extract common test setup in rollingupdate tests 2019-11-19 16:55:39 -08:00
John Gardiner Myers 7e8c77a8bf extract CloudInstanceGroup setup in rollingupdate tests 2019-11-19 16:55:36 -08:00
John Gardiner Myers 3d6d6734e5 Make rollingupdate test assertions succinct 2019-11-19 16:45:55 -08:00
Peter Rifel 3dc06afa12 Fix goimports errors
It turns out we werent running verify-goimports in our CI jobs.

While we work to get that enabled, we can at least unblock the releases by doing a one-time fix of the failing goimports
2019-11-19 05:05:02 -08:00
John Gardiner Myers 5b8bed77fa Don't update first node in instancegroup if cluster fails validation 2019-11-04 16:26:39 -08:00
John Gardiner Myers 63e0c5e726 Add tests for cluster validation during rolling update 2019-11-04 16:26:39 -08:00
mikesplain 9e55b8230a Update copyright notices
Also cleans some white spaces
2019-09-09 14:47:51 -04:00
Derek Lemon -T (delemon - AEROTEK INC at Cisco) 4f0169bb79 codegen 2019-01-16 09:30:40 -07:00
Justin Santa Barbara 55e3a5f212 Validation: Take a cluster object, not just the name 2018-03-20 01:12:07 -04:00
Justin Santa Barbara 85b972bc28 Fill out cloudmock to do a basic lifecycle test 2018-03-11 17:04:30 -04:00
Justin Santa Barbara 737f2fcd80 rolling-update - initial GCE support 2017-10-02 23:07:35 -04:00
Justin Santa Barbara 3478031533 API types changed package 2017-10-01 14:03:56 -04:00
Justin Santa Barbara abd48ee653 Name CloudInstanceGroupMember consistently
Keep the naming of the type consistent.
2017-09-30 17:39:53 -04:00
chrislovecnm a431eb3e43 refactoring to use cloud based GetGroups 2017-09-29 12:29:07 -06:00
andrewsykim e8c99ee72e removes cluster delete code in upup/pkg/kutil duplicated in pkg/resources and puts instancegroup and rollingupdate code into its own packges 2017-06-10 15:21:06 -04:00