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
|
workerCount := 0
|
||||||
|
|
||||||
for _, node := range cluster.Nodes {
|
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
|
// node role specific settings
|
||||||
|
suffix := 0
|
||||||
if node.Role == "master" {
|
if node.Role == "master" {
|
||||||
// name suffix
|
// name suffix
|
||||||
suffix = masterCount
|
suffix = masterCount
|
||||||
@ -55,7 +60,7 @@ func CreateCluster(cluster *k3d.Cluster, runtime k3drt.Runtime) error {
|
|||||||
|
|
||||||
// create node
|
// create node
|
||||||
log.Infoln("Creating node", node.Name)
|
log.Infoln("Creating node", node.Name)
|
||||||
if err := runtime.CreateNode(&node); err != nil {
|
if err := CreateNode(&node, runtime); err != nil {
|
||||||
log.Errorln("...failed")
|
log.Errorln("...failed")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,15 +50,25 @@ func CreateNode(node *k3d.Node, runtime k3drt.Runtime) error {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// global node configuration (applies for any node role)
|
// 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
|
// specify options depending on node role
|
||||||
if node.Role == "worker" { // TODO: check here AND in CLI or only here?
|
if node.Role == "worker" { // TODO: check here AND in CLI or only here?
|
||||||
node.Args = append([]string{"agent"}, node.Args...)
|
if err := patchWorkerSpec(node); err != nil {
|
||||||
node.Labels["role"] = "worker"
|
return err
|
||||||
|
}
|
||||||
} else if node.Role == "master" {
|
} else if node.Role == "master" {
|
||||||
node.Args = append([]string{"server"}, node.Args...)
|
if err := patchMasterSpec(node); err != nil {
|
||||||
node.Labels["role"] = "master"
|
return err
|
||||||
|
}
|
||||||
|
log.Debugf("spec = %+v\n", node)
|
||||||
} else {
|
} else {
|
||||||
return fmt.Errorf("Unknown node role '%s'", node.Role)
|
return fmt.Errorf("Unknown node role '%s'", node.Role)
|
||||||
}
|
}
|
||||||
@ -90,3 +100,17 @@ func DeleteNode(node *k3d.Node, runtimeChoice string) error {
|
|||||||
log.Debugln("...success")
|
log.Debugln("...success")
|
||||||
return nil
|
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