// The MachineRole indicates the purpose of the Machine, and will determine
// what software and configuration will be used when provisioning and managing
// the Machine. A single Machine may have more than one role, and the list and
// definitions of supported roles is expected to evolve over time.
//
// Currently, only two roles are supported: Master and Node. In the future, we
// expect user needs to drive the evolution and granularity of these roles,
// with new additions accommodating common cluster patterns, like dedicated
// etcd Machines.
//
// +-----------------------+------------------------+
// | Master present | Master absent |
// +---------------+-----------------------+------------------------|
// | Node present: | Install control plane | Join the cluster as |
// | | and be schedulable | just a node |
// |---------------+-----------------------+------------------------|
// | Node absent: | Install control plane | Invalid configuration |
// | | and be unscheduleable | |
// +---------------+-----------------------+------------------------+
type MachineRole string
Upstream, machines have multiple roles: