This adds a new leader election mode that instead of using the kube api
server to obtain a lease, it relies solely on etcd.
By removing the dependency on the api server, we can use it even before
the api server is up, before cluster creation.
In an external etcd topology, this way we can make the api server point
to the VIPs instead of to the etcd machines IPs. This configuration
isolates the CP configuration from the etcd machine IPS. It's is super
convenient to avoid having to roll new control plane nodes when the etcd
nodes change.
Signed-off-by: Guillermo Gaston <gaslor@amazon.com>
* Fix 2 broken tests
* Fix e2e ARP tests: killing one node in a 2 CP node cluster makes etcd
lose quorum. So it can't elect a new leader if the node we happen to
kill was the etcd leader.
* Separate unit tests, e2e tests, linter and scans in different jobs so
they run concurrently.
Signed-off-by: Guillermo Gaston <gaslor@amazon.com>