File tree Expand file tree Collapse file tree 1 file changed +28
-3
lines changed Expand file tree Collapse file tree 1 file changed +28
-3
lines changed Original file line number Diff line number Diff line change 11package kubernetes
22
33import (
4- "k8s.io/apimachinery/pkg/runtime "
4+ "net/http "
55
6- "github.com/containers/kubernetes-mcp-server/pkg/helm"
7- "github.com/containers/kubernetes-mcp-server/pkg/kiali"
6+ "k8s.io/apimachinery/pkg/runtime"
87 "k8s.io/client-go/kubernetes/scheme"
8+ "k8s.io/client-go/rest"
99
1010 _ "k8s.io/client-go/plugin/pkg/client/auth/oidc"
11+
12+ "github.com/containers/kubernetes-mcp-server/pkg/helm"
13+ "github.com/containers/kubernetes-mcp-server/pkg/kiali"
1114)
1215
1316type HeaderKey string
@@ -25,6 +28,28 @@ type Kubernetes struct {
2528 manager * Manager
2629}
2730
31+ // AccessControlRestClient returns the access-controlled rest.Interface
32+ // This ensures that any denied resources configured in the system are properly enforced
33+ func (k * Kubernetes ) AccessControlRestClient () (rest.Interface , error ) {
34+ config , err := k .manager .ToRESTConfig ()
35+ if err != nil {
36+ return nil , err
37+ }
38+ config .WrapTransport = func (rt http.RoundTripper ) http.RoundTripper {
39+ return & AccessControlRoundTripper {
40+ delegate : rt ,
41+ accessControlRESTMapper : k .manager .accessControlRESTMapper ,
42+ }
43+ }
44+
45+ client , err := rest .RESTClientFor (config )
46+ if err != nil {
47+ return nil , err
48+ }
49+
50+ return client , nil
51+ }
52+
2853// AccessControlClientset returns the access-controlled clientset
2954// This ensures that any denied resources configured in the system are properly enforced
3055func (k * Kubernetes ) AccessControlClientset () * AccessControlClientset {
You can’t perform that action at this time.
0 commit comments