metropolis/proto: EnrolmentConfig -> NodeParameters
This starts off the move to a node configuration API conforming to
the lifecycle management design document.
Instead of an Enrolment Config used only to join an existing cluster, we
move to a NodeParameters proto that must always be given to a node if
it's supposed to either bootstrap a new cluster or join an existing one.
This links the existing cluster management code (and its state machine)
to work with this file. However, that state machine will be removed very
soon, anyway.
We also remove everything related to golden tickets.
This breaks multi-node tests.
X-Origin-Diff: phab/D710
GitOrigin-RevId: f22615fbccab975f2d5e6928bdc7387ab3aa5714
diff --git a/metropolis/proto/api/configuration.proto b/metropolis/proto/api/configuration.proto
new file mode 100644
index 0000000..8c953ed
--- /dev/null
+++ b/metropolis/proto/api/configuration.proto
@@ -0,0 +1,36 @@
+// Copyright 2020 The Monogon Project Authors.
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+package metropolis.proto.api;
+option go_package = "source.monogon.dev/metropolis/proto/api";
+
+// NodeParameters is the data with which a Node is set booted. It contains the
+// configuration required for a node to either bootstrap a new cluster, or
+// register into an existing one.
+// It is serialized into a proto message and supplied to Metropolis in an
+// implementation-specific way (currently: either on ESP partition or via qemu
+// fw_cfg).
+message NodeParameters {
+ message ClusterBootstrap {
+ }
+ message ClusterRegister {
+ }
+ oneof cluster {
+ ClusterBootstrap cluster_bootstrap = 1;
+ ClusterRegister cluster_register = 2;
+ }
+}