Создать ключ API Rancher с помощью kubectl
Имея доступ к кластеру Kubernetes, но не имея ключа API, как я могу программно создать ключ 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>,
}
Идентификатор токена может представлять собой любую уникальную строку, содержащую имя токена. В качестве идентификатора пользователя выберите пользователя, для которого этот токен должен быть длинным. (см. список пользователей сkubectl get users -n cattle-system
).
kubectl apply -f token.json