Files
Olares/cli/pkg/pipelines/add_node.go

41 lines
913 B
Go

package pipelines
import (
"fmt"
"os"
"path"
"github.com/beclab/Olares/cli/pkg/common"
"github.com/beclab/Olares/cli/pkg/phase/cluster"
"github.com/spf13/viper"
)
func AddNodePipeline() error {
arg := common.NewArgument()
if !arg.SystemInfo.IsLinux() {
fmt.Println("error: Only Linux nodes can be added to an Olares cluster!")
os.Exit(1)
}
arg.SetOlaresVersion(viper.GetString(common.FlagVersion))
arg.SetConsoleLog("addnode.log", true)
if err := arg.MasterHostConfig.Validate(); err != nil {
return fmt.Errorf("invalid master host config: %w", err)
}
runtime, err := common.NewKubeRuntime(*arg)
if err != nil {
return fmt.Errorf("error creating runtime: %v", err)
}
manifest := path.Join(runtime.GetInstallerDir(), "installation.manifest")
runtime.Arg.SetManifest(manifest)
var p = cluster.AddNodePhase(runtime)
if err := p.Start(); err != nil {
return err
}
return nil
}