Учётка создавалась задачей ansible через kubectl exec — по явной команде оператора и в обход GitOps. Теперь это делает сам под при каждом старте: стартовый скрипт подхватывает креды из Vault и вызывает штатную createsuperuser --noinput. Идемпотентность обеспечена ветвлением, а не подавлением ошибки: на уже существующем логине Django возвращает "That username is already taken" с ненулевым кодом, что под set -e из command базы уронило бы под на втором запуске. Ошибка ожидаема и гасится веткой else. Заодно в стартовый скрипт добавлен migrate. В entrypoint.sh образа он уже есть, но запущен без set -e — его падение не мешает uwsgi стартовать. Именно так контур несколько часов отдавал 200 на /admin/ с пустой схемой: backend не мог аутентифицироваться в СУБД, миграции падали, приложение работало. Здесь команда идёт под set -e, поэтому отказ виден сразу. Ansible остаётся владельцем значений: генерирует логин и пароль (теперь безусловно, а не по флагу — их ждёт vault-agent) и кладёт в secrets/apps/django/superuser. Задача poe superuser печатает креды. Убраны временные диагностические задачи с ignore_errors, добавленные при разборе отказа createsuperuser. |
||
|---|---|---|
| .. | ||
| aero | ||
| base | ||
| brusnika-prod | ||
| brusnika-stage | ||
| d8-ugmk-prod | ||
| dsinv | ||
| yc-k8s-test | ||
| .env.example | ||
| CONFIGURATION.md | ||
| ENDPOINTS.md | ||
| FRONTEND_REQUESTS.md | ||
| openapi.yaml | ||