87 lines
2.3 KiB
Go
87 lines
2.3 KiB
Go
package cluster
|
|
|
|
import (
|
|
"github.com/beclab/Olares/cli/pkg/bootstrap/os"
|
|
"github.com/beclab/Olares/cli/pkg/common"
|
|
"github.com/beclab/Olares/cli/pkg/core/logger"
|
|
"github.com/beclab/Olares/cli/pkg/core/module"
|
|
"github.com/beclab/Olares/cli/pkg/core/pipeline"
|
|
"github.com/beclab/Olares/cli/pkg/gpu"
|
|
"github.com/beclab/Olares/cli/pkg/k3s"
|
|
"github.com/beclab/Olares/cli/pkg/kubernetes"
|
|
"github.com/beclab/Olares/cli/pkg/manifest"
|
|
"github.com/beclab/Olares/cli/pkg/storage"
|
|
"github.com/beclab/Olares/cli/pkg/terminus"
|
|
)
|
|
|
|
func AddNodePhase(runtime *common.KubeRuntime) *pipeline.Pipeline {
|
|
var err error
|
|
var manifestMap manifest.InstallationManifest
|
|
manifestMap, err = manifest.ReadAll(runtime.Arg.Manifest)
|
|
if err != nil {
|
|
logger.Fatal(err)
|
|
}
|
|
|
|
var m []module.Module
|
|
m = append(m,
|
|
&terminus.GetMasterInfoModule{},
|
|
&terminus.CheckPreparedModule{Force: true},
|
|
&storage.InstallJuiceFsModule{
|
|
ManifestModule: manifest.ManifestModule{
|
|
Manifest: manifestMap,
|
|
BaseDir: runtime.GetBaseDir(),
|
|
},
|
|
},
|
|
&AddNodeModule{
|
|
ManifestModule: manifest.ManifestModule{
|
|
Manifest: manifestMap,
|
|
BaseDir: runtime.GetBaseDir(),
|
|
},
|
|
},
|
|
)
|
|
|
|
m = append(m, &terminus.SaveMasterHostConfigModule{}, &terminus.InstalledModule{})
|
|
|
|
return &pipeline.Pipeline{
|
|
Name: "Add Worker Node To The Cluster",
|
|
Modules: m,
|
|
Runtime: runtime,
|
|
}
|
|
}
|
|
|
|
type AddNodeModule struct {
|
|
common.KubeModule
|
|
manifest.ManifestModule
|
|
underlyingModules []module.TaskModule
|
|
}
|
|
|
|
func (m *AddNodeModule) Init() {
|
|
m.Name = "JoinKubernetesCluster"
|
|
if m.KubeConf.Arg.Kubetype == common.K8s {
|
|
m.underlyingModules = []module.TaskModule{
|
|
&kubernetes.StatusModule{},
|
|
&os.ConfigureOSModule{},
|
|
&kubernetes.InstallKubeBinariesModule{
|
|
ManifestModule: m.ManifestModule,
|
|
},
|
|
&kubernetes.JoinNodesModule{},
|
|
}
|
|
} else {
|
|
m.underlyingModules = []module.TaskModule{
|
|
&k3s.StatusModule{},
|
|
&os.ConfigureOSModule{},
|
|
&k3s.InstallKubeBinariesModule{
|
|
ManifestModule: m.ManifestModule,
|
|
},
|
|
&k3s.JoinNodesModule{},
|
|
}
|
|
}
|
|
m.underlyingModules = append(m.underlyingModules, &gpu.NodeLabelingModule{})
|
|
for _, underlyingModule := range m.underlyingModules {
|
|
underlyingModule.Default(m.Runtime, m.PipelineCache, m.ModuleCache)
|
|
underlyingModule.AutoAssert()
|
|
underlyingModule.Init()
|
|
m.Tasks = append(m.Tasks, underlyingModule.GetTasks()...)
|
|
}
|
|
}
|