Files
Olares/cli/pkg/kubesphere/plugins/monitor_dashboard.go

57 lines
1.4 KiB
Go

package plugins
import (
"fmt"
"path"
"github.com/beclab/Olares/cli/pkg/common"
cc "github.com/beclab/Olares/cli/pkg/core/common"
"github.com/beclab/Olares/cli/pkg/core/connector"
"github.com/beclab/Olares/cli/pkg/core/prepare"
"github.com/beclab/Olares/cli/pkg/core/task"
"github.com/beclab/Olares/cli/pkg/core/util"
)
type InstallMonitorDashboardCrd struct {
common.KubeAction
}
func (t *InstallMonitorDashboardCrd) Execute(runtime connector.Runtime) error {
var kubectlpath, err = util.GetCommand(common.CommandKubectl)
if err != nil {
return fmt.Errorf("kubectl not found")
}
var p = path.Join(runtime.GetInstallerDir(), cc.BuildFilesCacheDir, cc.BuildDir, "ks-monitor", "monitoring-dashboard")
var cmd = fmt.Sprintf("%s apply -f %s", kubectlpath, p)
if _, err := runtime.GetRunner().SudoCmd(cmd, false, true); err != nil {
return err
}
return nil
}
type CreateMonitorDashboardModule struct {
common.KubeModule
}
func (m *CreateMonitorDashboardModule) Init() {
m.Name = "CreateMonitorDashboardModule"
installMonitorDashboardCrd := &task.RemoteTask{
Name: "InstallMonitorDashboardCrd",
Hosts: m.Runtime.GetHostsByRole(common.Master),
Prepare: &prepare.PrepareCollection{
new(common.OnlyFirstMaster),
new(NotEqualDesiredVersion),
},
Action: new(InstallMonitorDashboardCrd),
Parallel: false,
Retry: 0,
}
m.Tasks = []task.Interface{
installMonitorDashboardCrd,
}
}