CLI: Авторизация
auth — команда для авторизации в Spirit через сервис-аккаунт или пользовательский логин. Срок действия токена — 1 час. Что такое Spirit CLI
Возможности
Изменить рабочую директорию
Для этого задайте значение переменной окружения DP_WORKDIR_:
DP_WORKDIR=~/temp-1/ ./dp auth print-token
Работать с несколькими конфигами одновременно
Для этого передайте разные значения переменной окружения DP_WORKDIR:
DP_WORKDIR=~/temp-1/ ./dp auth print-token
token1
DP_WORKDIR=~/temp-2/ ./dp auth print-token
token2
Логирование
Для запуска логирования в файл нужно передать параметр в переменную DP_LOGGER=debug. Файл логирования будет записан в директорию DP_WORKDIR.
Пример запуска:
DP_LOGGER=debug dp auth login
По умолчанию название файла debug.log который можно изменить через переменную окружения DP_DEBUG_LOG_FILE.
Аргументы
login
Аргумент для аутентификации вашей рабочей учётной записи в Spirit. Если выполнить команду, откроется вкладка в браузере для ввода логина и пароля учётной записи.
dp auth login
Пример корректного вывода StdOut:
user "t.malevinskaya@t-technologies.ru" successfully authorized
Ошибка: authorization grant failed:
Текст ошибки:
authorization grant failed: Post “https://polygon.t-technologies.ru/api/v1/oauth2/token”: dial tcp: lookup devplatform.tcsbank.ru on 0.0.0.0:53: read udp 127.0.0.1:57593->127.0.0.1:53: read: connection refused
Решение:
- Напишите запрос в Поддержку Spirit
service-acc
Аргумент для аутентификации сервис-аккаунта в Spirit.
Из файла
Чтобы прочитать токен из файла:
dp auth service-acc --key-file sa-test-0201-test-6f84e5d4-3247-4779-a1fb-e7f9994026d3.json
Через StdIn
Также вы можете ввести токен вручную. Всё зависит от того, как используемая система работает с переменными, валидирует символы и так далее. Есть несколько протестированных вариантов реализации:
echo $DP_SA_KEY | dp auth service-acc --key-file -
dp auth service-acc --key-file - <<< "$KEY"
Где:
| Параметр | Целевое значение |
|---|---|
| key-file | Путь к секретному файлу ключа SA, полученному с платформы разработки или "-", если SA ключ передается через stdin. |
| "$KEY" | Файл с ключом сервис-аккаунта. Как его получить. |
Успех — StdOut выдает строку:
service account successfully authorized
Код завершения — 0.
print-token
Аргумент выводит в StdOut текущий активный токен пользователя или сервис-аккаунта.
dp auth print-token
Если токена нет или он истёк, в StdErr будет выведено сообщение:
no active access token
Код завершения — 1.
configure-docker или configure-kaniko
Добавляет в конфигурацию Docker имя скрипта, который
авторизует вас через Docker credential helpers и добавит сам скрипт в $PATH.
Docker credential helpers MacOS и Linux создается и сохраняется по пути /usr/local/bin.
Вызывайте команду один раз, потому что токены обновляются.
dp auth configure-docker
dp auth configure-kaniko
| Параметр | Целевое значение |
|---|---|
| config-path | Путь к конфигурации Docker JSON. По умолчанию: $HOME/.docker/config.json |
| helper-path | Путь к credential учетным данным Docker. По умолчанию: /usr/local/sbin/docker-credential-artifactory |
crypto - Commands for encrypting secrets
encode-service-acc
Необходимо авторизация сервис-аккаунта. См. команду dp auth service-acc
Кодирует сервис аккаунт для дальнейшего использования в сценарии авторизации с использованием Container Registry Proxy.
dp crypto encode-service-acc --sa-key sa-devplatform-key.json --pub-keys devplatform/systems/syskey
Где:
| Параметр | Целевое значение |
|---|---|
| sa-key | Путь к секретному файлу ключа SA, полученному с платформы разработки |
| pub-keys | Запрос по шаблону tenant_key/systems/system_key для получения открытого ключа из хранилища tenant-manager |