Fix the devopsProjectLister is nil
Signed-off-by: rick <1450685+LinuxSuRen@users.noreply.github.com>
This commit is contained in:
@@ -322,7 +322,7 @@ func (s *APIServer) buildHandlerChain(stopCh <-chan struct{}) {
|
|||||||
case authorization.RBAC:
|
case authorization.RBAC:
|
||||||
excludedPaths := []string{"/oauth/*", "/kapis/config.kubesphere.io/*", "/kapis/version", "/kapis/metrics"}
|
excludedPaths := []string{"/oauth/*", "/kapis/config.kubesphere.io/*", "/kapis/version", "/kapis/metrics"}
|
||||||
pathAuthorizer, _ := path.NewAuthorizer(excludedPaths)
|
pathAuthorizer, _ := path.NewAuthorizer(excludedPaths)
|
||||||
amOperator := am.NewReadOnlyOperator(s.InformerFactory)
|
amOperator := am.NewReadOnlyOperator(s.InformerFactory, s.DevopsClient)
|
||||||
authorizers = unionauthorizer.New(pathAuthorizer, rbac.NewRBACAuthorizer(amOperator))
|
authorizers = unionauthorizer.New(pathAuthorizer, rbac.NewRBACAuthorizer(amOperator))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -920,7 +920,7 @@ func newMockRBACAuthorizer(staticRoles *StaticRoles) (*RBACAuthorizer, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NewRBACAuthorizer(am.NewReadOnlyOperator(fakeInformerFactory)), nil
|
return NewRBACAuthorizer(am.NewReadOnlyOperator(fakeInformerFactory, nil)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAppliesTo(t *testing.T) {
|
func TestAppliesTo(t *testing.T) {
|
||||||
|
|||||||
@@ -114,8 +114,8 @@ type amOperator struct {
|
|||||||
k8sclient kubernetes.Interface
|
k8sclient kubernetes.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewReadOnlyOperator(factory informers.InformerFactory) AccessManagementInterface {
|
func NewReadOnlyOperator(factory informers.InformerFactory, devopsClient devops.Interface) AccessManagementInterface {
|
||||||
return &amOperator{
|
operator := &amOperator{
|
||||||
globalRoleBindingGetter: globalrolebinding.New(factory.KubeSphereSharedInformerFactory()),
|
globalRoleBindingGetter: globalrolebinding.New(factory.KubeSphereSharedInformerFactory()),
|
||||||
workspaceRoleBindingGetter: workspacerolebinding.New(factory.KubeSphereSharedInformerFactory()),
|
workspaceRoleBindingGetter: workspacerolebinding.New(factory.KubeSphereSharedInformerFactory()),
|
||||||
clusterRoleBindingGetter: clusterrolebinding.New(factory.KubernetesSharedInformerFactory()),
|
clusterRoleBindingGetter: clusterrolebinding.New(factory.KubernetesSharedInformerFactory()),
|
||||||
@@ -126,16 +126,17 @@ func NewReadOnlyOperator(factory informers.InformerFactory) AccessManagementInte
|
|||||||
roleGetter: role.New(factory.KubernetesSharedInformerFactory()),
|
roleGetter: role.New(factory.KubernetesSharedInformerFactory()),
|
||||||
namespaceLister: factory.KubernetesSharedInformerFactory().Core().V1().Namespaces().Lister(),
|
namespaceLister: factory.KubernetesSharedInformerFactory().Core().V1().Namespaces().Lister(),
|
||||||
}
|
}
|
||||||
|
// no more CRDs of devopsprojects if the DevOps module was disabled
|
||||||
|
if devopsClient != nil {
|
||||||
|
operator.devopsProjectLister = factory.KubeSphereSharedInformerFactory().Devops().V1alpha3().DevOpsProjects().Lister()
|
||||||
|
}
|
||||||
|
return operator
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewOperator(ksClient kubesphere.Interface, k8sClient kubernetes.Interface, factory informers.InformerFactory, devopsClient devops.Interface) AccessManagementInterface {
|
func NewOperator(ksClient kubesphere.Interface, k8sClient kubernetes.Interface, factory informers.InformerFactory, devopsClient devops.Interface) AccessManagementInterface {
|
||||||
amOperator := NewReadOnlyOperator(factory).(*amOperator)
|
amOperator := NewReadOnlyOperator(factory, devopsClient).(*amOperator)
|
||||||
amOperator.ksclient = ksClient
|
amOperator.ksclient = ksClient
|
||||||
amOperator.k8sclient = k8sClient
|
amOperator.k8sclient = k8sClient
|
||||||
// no more CRDs of devopsprojects if the DevOps module was disabled
|
|
||||||
if devopsClient != nil {
|
|
||||||
amOperator.devopsProjectLister = factory.KubeSphereSharedInformerFactory().Devops().V1alpha3().DevOpsProjects().Lister()
|
|
||||||
}
|
|
||||||
return amOperator
|
return amOperator
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user