Skip to content

Commit d279ee2

Browse files
committed
Minor improvements
1 parent 997264b commit d279ee2

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

pkg/kubernetes/kubernetes.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ func (m *Manager) ToRESTMapper() (meta.RESTMapper, error) {
141141
}
142142

143143
func (m *Manager) Derived(ctx context.Context) *Kubernetes {
144+
// If RequireOAuth is enabled, we are not allowed to
145+
// create a kubeconfig using the client token, as it violates the token passthrough.
146+
// MCP Server must use its own service account.
144147
if m.staticConfig.RequireOAuth {
145148
return &Kubernetes{manager: m}
146149
}

pkg/kubernetes/pods.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,22 @@ func (k *Kubernetes) PodsTop(ctx context.Context, options PodsTopOptions) (*metr
249249
namespace = k.NamespaceOrDefault(namespace)
250250
}
251251

252-
if err := k.CanClientAccess(ctx, &schema.GroupVersionResource{
253-
Group: "metrics.k8s.io",
254-
Version: "v1beta1",
255-
Resource: "podmetrics",
256-
}, options.Name, namespace, "get", ""); err != nil {
257-
return nil, err
252+
if options.Name != "" {
253+
if err := k.CanClientAccess(ctx, &schema.GroupVersionResource{
254+
Group: "metrics.k8s.io",
255+
Version: "v1beta1",
256+
Resource: "podmetrics",
257+
}, options.Name, namespace, "get", ""); err != nil {
258+
return nil, err
259+
}
260+
} else {
261+
if err := k.CanClientAccess(ctx, &schema.GroupVersionResource{
262+
Group: "metrics.k8s.io",
263+
Version: "v1beta1",
264+
Resource: "podmetrics",
265+
}, "", namespace, "list", ""); err != nil {
266+
return nil, err
267+
}
258268
}
259269

260270
return k.manager.accessControlClientSet.PodsMetricses(ctx, namespace, options.Name, options.ListOptions)

0 commit comments

Comments
 (0)