150 lines
3.2 KiB
Go
150 lines
3.2 KiB
Go
package daemon
|
|
|
|
import (
|
|
"github.com/beclab/Olares/cli/pkg/common"
|
|
"github.com/beclab/Olares/cli/pkg/core/task"
|
|
"github.com/beclab/Olares/cli/pkg/manifest"
|
|
"github.com/beclab/Olares/cli/pkg/terminus"
|
|
)
|
|
|
|
type UninstallTerminusdModule struct {
|
|
common.KubeModule
|
|
}
|
|
|
|
func (u *UninstallTerminusdModule) Init() {
|
|
u.Name = "UninstallOlaresdModule"
|
|
u.Desc = "Uninstall olaresd"
|
|
|
|
disableService := &task.RemoteTask{
|
|
Name: "DisableOlaresdService",
|
|
Desc: "disable olaresd service",
|
|
Hosts: u.Runtime.GetHostsByRole(common.K8s),
|
|
Action: new(DisableTerminusdService),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
uninstall := &task.RemoteTask{
|
|
Name: "UninstallOlaresd",
|
|
Desc: "Uninstall olaresd",
|
|
Hosts: u.Runtime.GetHostsByRole(common.K8s),
|
|
Action: &UninstallTerminusd{},
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
u.Tasks = []task.Interface{
|
|
disableService,
|
|
uninstall,
|
|
}
|
|
}
|
|
|
|
type ReplaceOlaresdBinaryModule struct {
|
|
common.KubeModule
|
|
manifest.ManifestModule
|
|
}
|
|
|
|
func (m *ReplaceOlaresdBinaryModule) Init() {
|
|
m.Name = "ReplaceOlaresdBinaryModule"
|
|
m.Desc = "Replace olaresd"
|
|
|
|
replace := &task.LocalTask{
|
|
Name: "ReplaceOlaresdBinary",
|
|
Desc: "Replace olaresd binary",
|
|
Action: &InstallTerminusdBinary{
|
|
ManifestAction: manifest.ManifestAction{
|
|
BaseDir: m.BaseDir,
|
|
Manifest: m.Manifest,
|
|
},
|
|
},
|
|
Retry: 3,
|
|
}
|
|
|
|
updateEnv := &task.LocalTask{
|
|
Name: "UpdateOlaresdEnv",
|
|
Desc: "Update olaresd env",
|
|
Action: new(UpdateOlaresdServiceEnv),
|
|
}
|
|
|
|
restart := &task.LocalTask{
|
|
Name: "RestartOlaresd",
|
|
Desc: "Restart olaresd",
|
|
Action: &terminus.SystemctlCommand{
|
|
Command: "restart",
|
|
UnitNames: []string{"olaresd"},
|
|
},
|
|
}
|
|
|
|
m.Tasks = []task.Interface{
|
|
replace,
|
|
updateEnv,
|
|
restart,
|
|
}
|
|
|
|
}
|
|
|
|
type InstallTerminusdBinaryModule struct {
|
|
common.KubeModule
|
|
manifest.ManifestModule
|
|
}
|
|
|
|
func (i *InstallTerminusdBinaryModule) Init() {
|
|
i.Name = "InstallOlaresdBinaryModule"
|
|
i.Desc = "Install olaresd"
|
|
|
|
updateHost := &task.LocalTask{
|
|
Name: "UpdateHosts",
|
|
Action: new(terminus.UpdateKubeKeyHosts),
|
|
Prepare: new(HostnameNotResolvable),
|
|
}
|
|
|
|
install := &task.RemoteTask{
|
|
Name: "InstallOlaresdBinary",
|
|
Desc: "Install olaresd using binary",
|
|
Hosts: i.Runtime.GetHostsByRole(common.K8s),
|
|
Action: &InstallTerminusdBinary{
|
|
ManifestAction: manifest.ManifestAction{
|
|
BaseDir: i.BaseDir,
|
|
Manifest: i.Manifest,
|
|
},
|
|
},
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
generateEnv := &task.RemoteTask{
|
|
Name: "GenerateOlaresdEnv",
|
|
Desc: "Generate olaresd service env",
|
|
Hosts: i.Runtime.GetHostsByRole(common.K8s),
|
|
Action: new(GenerateTerminusdServiceEnv),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
generateService := &task.RemoteTask{
|
|
Name: "GenerateOlaresdService",
|
|
Desc: "Generate olaresd service",
|
|
Hosts: i.Runtime.GetHostsByRole(common.K8s),
|
|
Action: new(GenerateTerminusdService),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
enableService := &task.RemoteTask{
|
|
Name: "EnableOlaresdService",
|
|
Desc: "enable olaresd service",
|
|
Hosts: i.Runtime.GetHostsByRole(common.K8s),
|
|
Action: new(EnableTerminusdService),
|
|
Parallel: false,
|
|
Retry: 1,
|
|
}
|
|
|
|
i.Tasks = []task.Interface{
|
|
updateHost,
|
|
install,
|
|
generateEnv,
|
|
generateService,
|
|
enableService,
|
|
}
|
|
}
|