Skip to content

Commit cc2b529

Browse files
authored
docs(readme): give the deployer role explicit verbs (#50)
1 parent ad5a5c9 commit cc2b529

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

‎README.md‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -682,14 +682,17 @@ one-time setup below. `__MCP_NAMESPACE__` is the namespace you chose at bootstra
682682
```sh
683683
kubectl create namespace __MCP_NAMESPACE__
684684
kubectl -n __MCP_NAMESPACE__ create serviceaccount deployer
685-
kubectl -n __MCP_NAMESPACE__ create role deployer --verb='*' \
685+
kubectl -n __MCP_NAMESPACE__ create role deployer --verb=get,list,watch,create,update,patch,delete \
686686
--resource=deployments.apps,services,secrets,serviceaccounts,ingresses.networking.k8s.io,roles.rbac.authorization.k8s.io,rolebindings.rbac.authorization.k8s.io
687687
kubectl -n __MCP_NAMESPACE__ create rolebinding deployer \
688688
--role=deployer --serviceaccount=__MCP_NAMESPACE__:deployer
689689
```
690690

691691
(`secrets` is Helm's release storage; `serviceaccounts`/`roles`/
692-
`rolebindings` are needed to install `infra/k8s/charts/mcp-index`.)
692+
`rolebindings` are needed to install `infra/k8s/charts/mcp-index`. The verbs
693+
are listed rather than `*`, which on `roles`/`rolebindings` includes `escalate`
694+
and `bind`: with those, a leaked deploy token could grant itself any
695+
permission in the namespace.)
693696

694697
`KUBE_CONFIG` is a complete kubeconfig file with a deployer token inside —
695698
not the token alone. The API server URL must be reachable from GitHub's

0 commit comments

Comments
 (0)