Авторизация в платформе
Чтобы авторизоваться в платформе, необходимо подготовить переменные и выполнить команды:
# Экспортируйте переменные
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"