@@ -44,7 +44,10 @@ const (
44
44
45
45
// NewMaximalPermissionPolicyAuthorizer returns an authorizer that first checks if the request is for a
46
46
// bound resource or not. If the resource is bound it checks the maximal permission policy of the underlying API export.
47
- func NewMaximalPermissionPolicyAuthorizer (kubeInformers , globalKubeInformers kcpkubernetesinformers.SharedInformerFactory , kcpInformers , globalKcpInformers kcpinformers.SharedInformerFactory , delegate authorizer.Authorizer ) authorizer.Authorizer {
47
+ func NewMaximalPermissionPolicyAuthorizer (
48
+ kubeInformers , globalKubeInformers kcpkubernetesinformers.SharedInformerFactory ,
49
+ kcpInformers , globalKcpInformers kcpinformers.SharedInformerFactory ,
50
+ ) func (delegate authorizer.Authorizer ) authorizer.Authorizer {
48
51
// Make sure informer knows what to watch
49
52
kubeInformers .Rbac ().V1 ().Roles ().Lister ()
50
53
kubeInformers .Rbac ().V1 ().RoleBindings ().Lister ()
@@ -64,37 +67,39 @@ func NewMaximalPermissionPolicyAuthorizer(kubeInformers, globalKubeInformers kcp
64
67
indexers .ByLogicalClusterPathAndName : indexers .IndexByLogicalClusterPathAndName ,
65
68
})
66
69
67
- return & MaximalPermissionPolicyAuthorizer {
68
- getAPIBindings : func (clusterName logicalcluster.Name ) ([]* apisv1alpha1.APIBinding , error ) {
69
- return kcpInformers .Apis ().V1alpha1 ().APIBindings ().Lister ().Cluster (clusterName ).List (labels .Everything ())
70
- },
71
- getAPIExport : func (path logicalcluster.Path , name string ) (* apisv1alpha1.APIExport , error ) {
72
- return indexers .ByPathAndNameWithFallback [* apisv1alpha1.APIExport ](apisv1alpha1 .Resource ("apiexports" ), kcpInformers .Apis ().V1alpha1 ().APIExports ().Informer ().GetIndexer (), globalKcpInformers .Apis ().V1alpha1 ().APIExports ().Informer ().GetIndexer (), path , name )
73
- },
74
- newAuthorizer : func (clusterName logicalcluster.Name ) authorizer.Authorizer {
75
- return rbac .New (
76
- & rbac.RoleGetter {Lister : rbacwrapper .NewMergedRoleLister (
77
- kubeInformers .Rbac ().V1 ().Roles ().Lister ().Cluster (clusterName ),
78
- globalKubeInformers .Rbac ().V1 ().Roles ().Lister ().Cluster (clusterName ),
79
- kubeInformers .Rbac ().V1 ().Roles ().Lister ().Cluster (controlplaneapiserver .LocalAdminCluster ),
80
- )},
81
- & rbac.RoleBindingLister {Lister : rbacwrapper .NewMergedRoleBindingLister (
82
- kubeInformers .Rbac ().V1 ().RoleBindings ().Lister ().Cluster (clusterName ),
83
- globalKubeInformers .Rbac ().V1 ().RoleBindings ().Lister ().Cluster (clusterName ),
84
- )},
85
- & rbac.ClusterRoleGetter {Lister : rbacwrapper .NewMergedClusterRoleLister (
86
- kubeInformers .Rbac ().V1 ().ClusterRoles ().Lister ().Cluster (clusterName ),
87
- globalKubeInformers .Rbac ().V1 ().ClusterRoles ().Lister ().Cluster (clusterName ),
88
- kubeInformers .Rbac ().V1 ().ClusterRoles ().Lister ().Cluster (controlplaneapiserver .LocalAdminCluster ),
89
- )},
90
- & rbac.ClusterRoleBindingLister {Lister : rbacwrapper .NewMergedClusterRoleBindingLister (
91
- kubeInformers .Rbac ().V1 ().ClusterRoleBindings ().Lister ().Cluster (clusterName ),
92
- globalKubeInformers .Rbac ().V1 ().ClusterRoleBindings ().Lister ().Cluster (clusterName ),
93
- kubeInformers .Rbac ().V1 ().ClusterRoleBindings ().Lister ().Cluster (controlplaneapiserver .LocalAdminCluster ),
94
- )},
95
- )
96
- },
97
- delegate : delegate ,
70
+ return func (delegate authorizer.Authorizer ) authorizer.Authorizer {
71
+ return & MaximalPermissionPolicyAuthorizer {
72
+ getAPIBindings : func (clusterName logicalcluster.Name ) ([]* apisv1alpha1.APIBinding , error ) {
73
+ return kcpInformers .Apis ().V1alpha1 ().APIBindings ().Lister ().Cluster (clusterName ).List (labels .Everything ())
74
+ },
75
+ getAPIExport : func (path logicalcluster.Path , name string ) (* apisv1alpha1.APIExport , error ) {
76
+ return indexers .ByPathAndNameWithFallback [* apisv1alpha1.APIExport ](apisv1alpha1 .Resource ("apiexports" ), kcpInformers .Apis ().V1alpha1 ().APIExports ().Informer ().GetIndexer (), globalKcpInformers .Apis ().V1alpha1 ().APIExports ().Informer ().GetIndexer (), path , name )
77
+ },
78
+ newAuthorizer : func (clusterName logicalcluster.Name ) authorizer.Authorizer {
79
+ return rbac .New (
80
+ & rbac.RoleGetter {Lister : rbacwrapper .NewMergedRoleLister (
81
+ kubeInformers .Rbac ().V1 ().Roles ().Lister ().Cluster (clusterName ),
82
+ globalKubeInformers .Rbac ().V1 ().Roles ().Lister ().Cluster (clusterName ),
83
+ kubeInformers .Rbac ().V1 ().Roles ().Lister ().Cluster (controlplaneapiserver .LocalAdminCluster ),
84
+ )},
85
+ & rbac.RoleBindingLister {Lister : rbacwrapper .NewMergedRoleBindingLister (
86
+ kubeInformers .Rbac ().V1 ().RoleBindings ().Lister ().Cluster (clusterName ),
87
+ globalKubeInformers .Rbac ().V1 ().RoleBindings ().Lister ().Cluster (clusterName ),
88
+ )},
89
+ & rbac.ClusterRoleGetter {Lister : rbacwrapper .NewMergedClusterRoleLister (
90
+ kubeInformers .Rbac ().V1 ().ClusterRoles ().Lister ().Cluster (clusterName ),
91
+ globalKubeInformers .Rbac ().V1 ().ClusterRoles ().Lister ().Cluster (clusterName ),
92
+ kubeInformers .Rbac ().V1 ().ClusterRoles ().Lister ().Cluster (controlplaneapiserver .LocalAdminCluster ),
93
+ )},
94
+ & rbac.ClusterRoleBindingLister {Lister : rbacwrapper .NewMergedClusterRoleBindingLister (
95
+ kubeInformers .Rbac ().V1 ().ClusterRoleBindings ().Lister ().Cluster (clusterName ),
96
+ globalKubeInformers .Rbac ().V1 ().ClusterRoleBindings ().Lister ().Cluster (clusterName ),
97
+ kubeInformers .Rbac ().V1 ().ClusterRoleBindings ().Lister ().Cluster (controlplaneapiserver .LocalAdminCluster ),
98
+ )},
99
+ )
100
+ },
101
+ delegate : delegate ,
102
+ }
98
103
}
99
104
}
100
105
0 commit comments