获得了对 kubernetes 集群的访问权限,但没有 API 密钥,如何以编程方式为 rancher 服务器创建 API 密钥?
方法在此处的文档中描述需要密码登录网络浏览器。我希望通过编程获得相同的结果。鉴于所有状态都应该在 etcd 上,理论上应该可以通过 kubectl 实现。
答案1
我找到了一种可以使它工作的方法:
创建一个 JSON 文件来定义令牌(即token.json
):
{
"apiVersion": "management.cattle.io/v3",
"authProvider": "local",
"current": false,
"description": <enter description>,
"expired": false,
"expiresAt": "",
"isDerived": true,
"kind": "Token",
"metadata": {
"labels": {
"authn.management.cattle.io/token-userId": <enter user id>,
"cattle.io/creator": "kubectl"
},
"name": <enter a token id>,
},
"token": <enter token>,
"ttl": 0,
"userId": <enter user id>,
}
令牌 ID 可以是任何唯一的字符串,用于为令牌命名。对于用户 ID,请选择此令牌所属的用户。(使用 查看用户列表kubectl get users -n cattle-system
)。
kubectl apply -f token.json