mc/c/metroctl: implement simple update sequencing
Adds support for the max-unavailable flag, specifying the number of
nodes which can be concurrently in the update process.
To implement this, we now wait for the node to report as healthy again
before considering the update complete.
This allows simple gradual cluster updates.
Change-Id: If6aa44d1b8f12aadd77e35f16513a4af521fa356
Reviewed-on: https://review.monogon.dev/c/monogon/+/2770
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/cli/metroctl/BUILD.bazel b/metropolis/cli/metroctl/BUILD.bazel
index af520e1..60c59b6 100644
--- a/metropolis/cli/metroctl/BUILD.bazel
+++ b/metropolis/cli/metroctl/BUILD.bazel
@@ -58,6 +58,7 @@
"@io_k8s_apimachinery//pkg/apis/meta/v1:meta",
"@io_k8s_client_go//pkg/apis/clientauthentication/v1:clientauthentication",
"@org_golang_google_grpc//:go_default_library",
+ "@org_golang_x_sync//semaphore",
],
)