This PR modifies the ignition directory for master.project to enable bootstrapping an etcd-cluster automatically. Prior to this PR, the etcd cluster had to be manually enabled which required a lot of craziness because the etcd developers apparently chose to store the cluster configuration in the data directory which makes it a real pita to deal with members leaving/returning.
This is done by checking whether the master template matches the bootstrap machine-id. When it does, the etcd.service unit will fail resulting in starting the etcd-master.service unit. If the machine-id doesn't correspond to the bootstrap machine-id, then the etcd-member.service unit will be started.
To deal with the stupidity of membership being stored in the etcd data directory, the etcd-member.service unit simply removes it prior to starting. These units will also manually adjust the runtime membership configuration of the bootstrapped master when stopping/starting services.
This PR modifies the ignition directory for master.project to enable bootstrapping an etcd-cluster automatically. Prior to this PR, the etcd cluster had to be manually enabled which required a lot of craziness because the etcd developers apparently chose to store the cluster configuration in the data directory which makes it a real pita to deal with members leaving/returning.
This is done by checking whether the master template matches the bootstrap machine-id. When it does, the etcd.service unit will fail resulting in starting the etcd-master.service unit. If the machine-id doesn't correspond to the bootstrap machine-id, then the etcd-member.service unit will be started.
To deal with the stupidity of membership being stored in the etcd data directory, the etcd-member.service unit simply removes it prior to starting. These units will also manually adjust the runtime membership configuration of the bootstrapped master when stopping/starting services.