karmada/operator/pkg/tasks/init/rbac.go

30 lines
647 B
Go

package tasks
import (
"errors"
"k8s.io/klog/v2"
"github.com/karmada-io/karmada/operator/pkg/karmadaresource/rbac"
"github.com/karmada-io/karmada/operator/pkg/workflow"
)
// NewRBACTask init a RBAC task, it will create clusterrole for view/edit karmada resources
func NewRBACTask() workflow.Task {
return workflow.Task{
Name: "rbac",
Run: runRBAC,
}
}
func runRBAC(r workflow.RunData) error {
data, ok := r.(InitData)
if !ok {
return errors.New("RBAC task invoked with an invalid data struct")
}
klog.V(4).InfoS("[RBAC] Running rbac task", "karmada", klog.KObj(data))
return rbac.EnsureKarmadaRBAC(data.KarmadaClient())
}