patch specs with node role specific settings
This commit is contained in:
parent
7583340d23
commit
cd72e22dce
@ -39,8 +39,13 @@ func CreateCluster(cluster *k3d.Cluster, runtime k3drt.Runtime) error {
|
||||
workerCount := 0
|
||||
|
||||
for _, node := range cluster.Nodes {
|
||||
suffix := 0
|
||||
|
||||
// cluster specific settings
|
||||
node.Labels = make(map[string]string)
|
||||
node.Labels["cluster"] = cluster.Name
|
||||
|
||||
// node role specific settings
|
||||
suffix := 0
|
||||
if node.Role == "master" {
|
||||
// name suffix
|
||||
suffix = masterCount
|
||||
@ -55,7 +60,7 @@ func CreateCluster(cluster *k3d.Cluster, runtime k3drt.Runtime) error {
|
||||
|
||||
// create node
|
||||
log.Infoln("Creating node", node.Name)
|
||||
if err := runtime.CreateNode(&node); err != nil {
|
||||
if err := CreateNode(&node, runtime); err != nil {
|
||||
log.Errorln("...failed")
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,15 +50,25 @@ func CreateNode(node *k3d.Node, runtime k3drt.Runtime) error {
|
||||
*/
|
||||
|
||||
// global node configuration (applies for any node role)
|
||||
node.Labels = k3d.DefaultObjectLabels
|
||||
labels := make(map[string]string)
|
||||
for k, v := range k3d.DefaultObjectLabels {
|
||||
labels[k] = v
|
||||
}
|
||||
for k, v := range node.Labels {
|
||||
labels[k] = v
|
||||
}
|
||||
node.Labels = labels
|
||||
|
||||
// specify options depending on node role
|
||||
if node.Role == "worker" { // TODO: check here AND in CLI or only here?
|
||||
node.Args = append([]string{"agent"}, node.Args...)
|
||||
node.Labels["role"] = "worker"
|
||||
if err := patchWorkerSpec(node); err != nil {
|
||||
return err
|
||||
}
|
||||
} else if node.Role == "master" {
|
||||
node.Args = append([]string{"server"}, node.Args...)
|
||||
node.Labels["role"] = "master"
|
||||
if err := patchMasterSpec(node); err != nil {
|
||||
return err
|
||||
}
|
||||
log.Debugf("spec = %+v\n", node)
|
||||
} else {
|
||||
return fmt.Errorf("Unknown node role '%s'", node.Role)
|
||||
}
|
||||
@ -90,3 +100,17 @@ func DeleteNode(node *k3d.Node, runtimeChoice string) error {
|
||||
log.Debugln("...success")
|
||||
return nil
|
||||
}
|
||||
|
||||
// patchWorkerSpec adds worker node specific settings to a node
|
||||
func patchWorkerSpec(node *k3d.Node) error {
|
||||
node.Args = append([]string{"agent"}, node.Args...)
|
||||
node.Labels["role"] = "worker" // TODO: maybe put those in a global var DefaultWorkerNodeSpec?
|
||||
return nil
|
||||
}
|
||||
|
||||
// patchMasterSpec adds worker node specific settings to a node
|
||||
func patchMasterSpec(node *k3d.Node) error {
|
||||
node.Args = append([]string{"server"}, node.Args...)
|
||||
node.Labels["role"] = "master" // TODO: maybe put those in a global var DefaultMasterNodeSpec?
|
||||
return nil
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user