From 1d8ef6857afc8fa029ea1e7669b6070b8d81c0ad Mon Sep 17 00:00:00 2001 From: lauk001 Date: Fri, 1 Sep 2023 16:11:55 +0800 Subject: [PATCH] Get the master or the worker node configuration --- app/cmd/phases/init/ign.go | 50 ++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/app/cmd/phases/init/ign.go b/app/cmd/phases/init/ign.go index a0e3a94..8a7b3f0 100644 --- a/app/cmd/phases/init/ign.go +++ b/app/cmd/phases/init/ign.go @@ -67,16 +67,39 @@ var ( } ) -func runGenerateIgnConfig(r workflow.RunData) error { - count := 1 +func runGenerateIgnConfig(r workflow.RunData, node string) error { data, ok := r.(InitData) if !ok { panic(fmt.Sprintf("Expect to fetch configuration data but got a %T", r)) } - //todo: master、worker节点配置分别调用的实现 - ctd := getMasterTmplData(data.Cfg(), count) - if err := generateConfig(ctd); err != nil { - return err + var ( + hsip string + hostName string + oneNodeName string + nodeCount int + ) + if node == "master" { + nodeCount = data.MasterCfg().System.Count + hostName = data.MasterCfg().System.HostName + for i := 0; i < nodeCount; i++ { + oneNodeName = fmt.Sprintf("%s%02d", hostName, i+1) + temp := data.MasterCfg().System.Ips[i] + oneNodeName + "\n" + hsip = hsip + temp + } + for j := 0; j < nodeCount; j++ { + ctd := getMasterTmplData(data.MasterCfg(), j+1) + if err := generateConfig(ctd); err != nil { + return err + } + } + } else { + nodeCount = data.WorkerCfg().System.Count + for j := 0; j < nodeCount; j++ { + ctd := getWorkerTmplData(data.WorkerCfg(), j+1) + if err := generateConfig(ctd); err != nil { + return err + } + } } return nil } @@ -84,7 +107,7 @@ func runGenerateIgnConfig(r workflow.RunData) error { func getMasterTmplData(nkdConfig *nkd.Master, count int) *commonTemplateData { oneNodeName := fmt.Sprintf("%s%d", nkdConfig.System.HostName, count) return &commonTemplateData{ - SSHKey: "", + SSHKey: nkdConfig.System.SSHKey, APIServerURL: "", ImageRegistry: nkdConfig.Repo.Registry, PodSandboxImage: "", @@ -96,6 +119,19 @@ func getMasterTmplData(nkdConfig *nkd.Master, count int) *commonTemplateData { } } +func getWorkerTmplData(nkdConfig *nkd.Worker, count int) *commonTemplateData { + oneNodeName := fmt.Sprintf("%s%d", nkdConfig.System.HostName, count) + return &commonTemplateData{ + SSHKey: nkdConfig.System.SSHKey, + APIServerURL: "", + ImageRegistry: nkdConfig.Repo.Registry, + PodSandboxImage: "", + Token: nkdConfig.Worker.Discovery.TlsBootstrapToken, + NodeName: oneNodeName, + NodeType: "worker", + } +} + func generateConfig(ctd *commonTemplateData) error { config := igntypes.Config{ Ignition: igntypes.Ignition{ -- Gitee