metropolis: rename KubernetesWorker to KubernetesController, add no-op KubernetesWorker

This is in preparation for actually splitting the Kubernetes service
into a control plane and data plane / worker. The new Worker service is
a no-op: it can be enabled/disabled, but has no practical effect.

Since we plan on keeping the control plane stuff mostly as is, and add
split worker functionality as a new codebase, it makes sense to rename
the existing role to Controller, and createa brand new Worker one (to
make future diffs smaller).

Change-Id: I79de3219f3c190d38469a0a8d7371820471c100d
Reviewed-on: https://review.monogon.dev/c/monogon/+/1325
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/cli/metroctl/set.go b/metropolis/cli/metroctl/set.go
index 2d6eaf9..b0bfaf5 100644
--- a/metropolis/cli/metroctl/set.go
+++ b/metropolis/cli/metroctl/set.go
@@ -23,7 +23,7 @@
 
 var addRoleCmd = &cobra.Command{
 	Short:   "Updates node roles.",
-	Use:     "role <KubernetesWorker|ConsensusMember> [NodeID, ...]",
+	Use:     "role <KubernetesController|KubernetesWorker|ConsensusMember> [NodeID, ...]",
 	Example: "metroctl node add role KubernetesWorker metropolis-25fa5f5e9349381d4a5e9e59de0215e3",
 	Args:    cobra.ArbitraryArgs,
 	Run:     doAdd,
@@ -31,7 +31,7 @@
 
 var removeRoleCmd = &cobra.Command{
 	Short:   "Updates node roles.",
-	Use:     "role <KubernetesWorker|ConsensusMember> [NodeID, ...]",
+	Use:     "role <KubernetesController|KubernetesWorker|ConsensusMember> [NodeID, ...]",
 	Example: "metroctl node remove role KubernetesWorker metropolis-25fa5f5e9349381d4a5e9e59de0215e3",
 	Args:    cobra.ArbitraryArgs,
 	Run:     doRemove,
@@ -65,6 +65,8 @@
 			},
 		}
 		switch role {
+		case "kubernetescontroller", "kc":
+			req.KubernetesController = opt(true)
 		case "kubernetesworker", "kw":
 			req.KubernetesWorker = opt(true)
 		case "consensusmember", "cm":
@@ -77,7 +79,7 @@
 		if err != nil {
 			log.Printf("Couldn't update node \"%s\": %v", node, err)
 		}
-		log.Printf("Updated node %s. Must be one of: KubernetesWorker, ConsensusMember.", node)
+		log.Printf("Updated node %s.", node)
 	}
 }
 
@@ -101,6 +103,8 @@
 			},
 		}
 		switch role {
+		case "kubernetescontroller", "kc":
+			req.KubernetesController = opt(false)
 		case "kubernetesworker", "kw":
 			req.KubernetesWorker = opt(false)
 		case "consensusmember", "cm":