Авторизация в Комплексе
Чтобы авторизоваться в Комплексе, необходимо подготовить переменные и выполнить команды.
Подготовка переменных:
Экспортируйте переменные
export SH_USERNAME="admin"
export SH_PASS="my-password"
В переменной INGRESS указать ingress кластера управления
export INGRESS="apps.ip-x-x-x-x.shturval.link"
export AUTHENDPOINT="https://auth.$INGRESS"
export BACKENDPOINT="https://back.$INGRESS"
В переменную CLIENT_SECRET вписать значение ключа backend секрета auth-clients. Он находится в неймспейсе shturval-backend кластера управления
При отсутствии доступа к секрету, запросите данные у администратора платформы
export CLIENT_SECRET=clientsecret
export COOKIE_PATH=/tmp/cookie
Команды:
Выполнить аутентификацию к AUTHENDPOINT
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"
Получите токен доступа (access token) после успешного получения авторизационного кода
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"
Когда пройдена авторизация в Комплексе, можно перейти к добавлению провайдеров (п. Провайдеры) в Комплекс, созданию кластеров (п. Добавление кластера).
При необходимости можно получить kubeconfig одного клиентского кластера.
Переменные:
Экспортируйте переменные. Указать имя кластера, kubeconfig которого необходимо получить
export CLUSTERNAME=my-cluster
export KUBECONFIG_PATH=/tmp/$CLUSTERNAME.conf
Команды:
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"