Действия в кластере

На всех страницах кластера доступно скачивание конфига кластера и импорта манифеста.

Получение kubeconfig

Конфиг кластера с полным доступом есть у пользователей с правами администратора кластера. Для получения конфига с ограниченным доступом предоставьте пользователю дополнительно к ранее выданным ему правам доступ к кластеру с уровнем clusterdirectaccess. Пользователь сможет скачать конфигурацию кластера с доступом, соответствующим правам его ролей.

С целью обеспечения безопасности подключения по умолчанию действие токена рассчитано на 24 часа, т.е. kubeconfig будет валиден для использования не более 24 часов.

При необходимости изменения времени действия токена укажите значение параметра expired при запросе на создание kubeconfig. Время действия токена можно указать в минутах(m) и часах (h). Например, если нужен токен, выписанный на 4 дня, укажите параметр expired=168.

Для получения kubeconfig примените один из способов:

  1. Экспортируйте переменные для авторизации и скачивания kubeconfig:
export CLUSTERNAME=my-cluster
export SH_USERNAME="admin"
export SH_PASS="my-password"
export INGRESS="apps.ip-x-x-x-x.shturval.link"

export AUTHENDPOINT="https://auth.$INGRESS"
export BACKENDPOINT="https://back.$INGRESS"
export KUBECONFIG_PATH=/tmp/$CLUSTERNAME.conf
export CLIENT_SECRET=clientsecret
export COOKIE_PATH=/tmp/cookie
  1. Авторизуйтесь, при этом в пути авторизации укажите параметр expired=время жизни токена. В примере проставлено время действия токена 48 часов дня (expired=48h):
curl -k -v --silent $AUTHENDPOINT/login -c $COOKIE_PATH --data-urlencode "username=$SH_USERNAME" \
--data-urlencode "password=$SH_PASS" &>/dev/null

echo "Got cookie" 

code=$(curl -k -b $COOKIE_PATH -v "$AUTHENDPOINT/oauth/authorize?response_type=code&client_id=backend&expired=48h&redirect_uri=localhost/cb" -v 2>&1 | grep -E -o "\<code=[A-Z0-9]+")

echo "Got code"

token=$(curl -k --silent "$AUTHENDPOINT/oauth/token" \
--header 'Content-Type: application/x-www-form-urlencoded' \
-b $COOKIE_PATH \
--data-urlencode 'client_id=backend' \
--data-urlencode "client_secret=$CLIENT_SECRET" \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode "$code" \
--data-urlencode "redirect_uri=localhost/cb" | jq -r '.access_token')

echo "Got token"

  1. Отправьте запрос на получение кубконфига:
curl -k --silent "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/kubeconfig" -H "Authorization: Bearer $token" -H 'accept: application/json, text/plain, */*' > $KUBECONFIG_PATH 

echo "Kubeconfig is ready"
echo "export KUBECONFIG=$KUBECONFIG_PATH"

Импорт манифестов

С помощью функции импорта манифестов пользователь может загрузить манифесты объектов для применения в кластере.

По нажатию на иконку импорта манифеста открывается страница с заголовком “Импорт манифеста” с большим полем для ввода текста. На странице есть возможность ручного введения текста, перетаскивания (drag’n’drop) или выбора с файла манифеста устройства.

Файл, перетянутый или выбранный с устройства, распознается и отображается в окне введения данных. Может быть распознан только валидный YAML. Должны быть доступны кнопки проверки, очищения блока ввода и загрузки (применения). Для всех загружаемых манифестов должна быть выполнена проверка, только после этого появится возможность отправки на применение. В файле может быть несколько манифестов, разделенных с помощью трех дефисов: “—”.

После проверки в правой части экрана отобразятся результаты проверки манифестов в виде списка изолированных блоков. Каждый блок выглядит как название манифеста (kind ресурса). Раскройте блок, чтобы увидеть полный вид манифеста, который удалось распознать.

Успешный результат подсвечиваются зеленым. Неуспешный результат содержит ошибку и подсвечивается красным.

Вне зависимости от результатов проверки, кнопка загрузки манифестов становится доступной для запуска. В случае изменения данных манифеста, активной становится снова только проверка.

После загрузки манифестов в правой части экрана отобразится результат применения манифестов. Каждый блок выглядит как название манифеста (kind ресурса). Раскройте блок, чтобы увидеть полный вид манифеста, который удалось распознать.

Успешный результат подсвечиваются зеленым. Неуспешный результат содержит ошибку и подсвечивается красным.