Этот документ описывает, как использовать команды
dodo app secret для управления секретами, связанными с вашими приложениями. Разберем использование на примере, где
namespace будет sre и приложение (service) будет
auth.
Используйте команду
list, чтобы просмотреть все секреты, привязанные к deployment’ам в рамках одного сервиса.
Чтобы получить список секретов для всех deployment в сервисе:
dodo app secret list auth -n sre
Чтобы получить список секретов для * *конкретного deployment**:
dodo app secret list auth -n sre -d web
list
list поддерживает следующие параметры:--namespace,-n: Укажите пространство имен (Namespace), в котором будет выполнена команда.--deployment,-d: Укажите конкретное развертывание (Deployment), к которому применяется команда.--all,-a: Применить ко всем развертываниям (поведение по умолчанию, если
--deployment не указан).Команда
resync позволяет принудительно обновить и переприменить конфигурацию секретов. Это может быть полезно для применения изменений, которые не отслеживаются автоматически, или для восстановления состояния секрета.
Чтобы пересинхронизировать секреты для всех deployment в сервисе:
dodo app secret resync auth -n sre -a
Чтобы пересинхронизировать секреты для **конкретного deployment **:
dodo app secret resync auth -n sre -d web
Чтобы пересинхронизировать один конкретный секрет у всех deployment’ов:
dodo app secret resync auth -n sre -s auth-tls-secret -a
resyncКоманда
resync поддерживает следующие параметры:
--namespace, -n: Укажите пространство имен (Namespace).--deployment, -d: Укажите конкретное развертывание (Deployment).--all,-a: Применить ко всем развертываниям (поведение по умолчанию).--secret,-s: Укажите имя конкретного секрета для пересинхронизации.Вся логика команд строится вокруг кастомного ресурса dodoappservice. Инструмент находит этот ресурс в указанном неймспейсе (например, -n sre) по имени вашего сервиса (auth) и считывает из него поле envSecrets.
В envSecrets перечислены базовые или "шаблонные" имена секретов. Однако реальные имена ресурсов kind: Secret в Kubernetes формируются динамически по специальному шаблону, объединяя несколько имён:
_Имя секрета в Kubernetes = [имя dodoappservice] - [имя deployment] - [базовое имя из envSecrets]
Именно этот механизм позволяет командам находить нужные ресурсы в кластере.
list: Команда использует этот шаблон для генерации полных имен секретов для целевых deployment’ов. Затем она запрашивает эти сгенерированные имена у Kubernetes API и выводит найденные секреты в виде таблицы.
resync: Команда работает по тому же принципу: сначала она вычисляет полные имена целевых секретов. После, каждый секрет удаляется и external-secret моментально подхватывает это и создаёт свежий секрет. Важно отметить, что при работе с несколькими секретами операции выполняются параллельно для максимальной производительности.