Skip to content

Commit 02f494d

Browse files
authored
Vmcp rbac mcpremoteproxies (#3013)
* add mcpremoteproxies to vMCP RBAC rules * add the tests to cover each resource
1 parent 6eddcb7 commit 02f494d

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

cmd/thv-operator/controllers/virtualmcpserver_controller_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,20 @@ func TestVirtualMCPServerEnsureRBACResources(t *testing.T) {
268268
assert.Equal(t, vmcpServiceAccountName(vmcp.Name), role.Name)
269269
assert.NotEmpty(t, role.Rules)
270270

271+
// Verify Role includes required ToolHive resources (mcpgroups, mcpservers, mcpremoteproxies, mcpexternalauthconfigs)
272+
var toolhiveRule *rbacv1.PolicyRule
273+
for i := range role.Rules {
274+
if len(role.Rules[i].APIGroups) > 0 && role.Rules[i].APIGroups[0] == "toolhive.stacklok.dev" {
275+
toolhiveRule = &role.Rules[i]
276+
break
277+
}
278+
}
279+
require.NotNil(t, toolhiveRule, "Role should have a rule for toolhive.stacklok.dev API group")
280+
assert.Contains(t, toolhiveRule.Resources, "mcpgroups", "Role should allow listing mcpgroups")
281+
assert.Contains(t, toolhiveRule.Resources, "mcpservers", "Role should allow listing mcpservers")
282+
assert.Contains(t, toolhiveRule.Resources, "mcpremoteproxies", "Role should allow listing mcpremoteproxies")
283+
assert.Contains(t, toolhiveRule.Resources, "mcpexternalauthconfigs", "Role should allow listing mcpexternalauthconfigs")
284+
271285
// Verify RoleBinding was created
272286
rb := &rbacv1.RoleBinding{}
273287
err = fakeClient.Get(context.Background(), types.NamespacedName{

cmd/thv-operator/controllers/virtualmcpserver_deployment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ var vmcpRBACRules = []rbacv1.PolicyRule{
5959
},
6060
{
6161
APIGroups: []string{"toolhive.stacklok.dev"},
62-
Resources: []string{"mcpgroups", "mcpservers", "mcpexternalauthconfigs"},
62+
Resources: []string{"mcpgroups", "mcpservers", "mcpremoteproxies", "mcpexternalauthconfigs"},
6363
Verbs: []string{"get", "list", "watch"},
6464
},
6565
}

0 commit comments

Comments
 (0)