docs: реестр убран из описаний, беклог отмечен по локальной сборке
- AGENTS.md: homepage/transcriber собираются ролью app_image, registry-плейбуков и vars/transcriber.images.yml больше нет - local-image-build: закрыты шаги по homepage и transcriber, остался вынос yc_*-переменных из vault; добавлены замеры архивов - container-hardening-nits: снят пункт про плавающий `:latest` у homepage
This commit is contained in:
@@ -25,33 +25,36 @@ remembos. Схема одинаковая — образ собирается л
|
||||
|
||||
- ~~завендорить роль `app_image`~~ — **сделано**: подписка в `SYNCED_ROLES`,
|
||||
копия в `roles/app_image`; механика переноса — [shared-roles-sync](shared-roles-sync.md)
|
||||
- homepage: завести в Taskfile таск `image` с тегом из `$BUILD_ID`, перевести
|
||||
- ~~homepage: завести в Taskfile таск `image` с тегом из `$BUILD_ID`, перевести
|
||||
плейбук на роль, удалить `playbook-homepage-registry.yml` и registry-переменные
|
||||
из `vars/homepage.yml`
|
||||
из `vars/homepage.yml`~~ — **сделано**: таск `image` собирает node-образ, сайт
|
||||
и nginx-образ одной командой; `task deploy`/`deploy-with-ansible` удалены,
|
||||
деплой целиком — `inv pl -- homepage`
|
||||
- ~~remembos: контракта сборки нет (есть Dockerfile, нет Taskfile) — завести таск
|
||||
`image`, убрать зашитый тег из compose~~ — **сделано**: в репозитории remembos
|
||||
появился `Taskfile.yml` с таском `image`, плейбук зовёт роль, compose тянет
|
||||
`remembos:{{ app_image_tag }}` с `pull_policy: never`; `docker_login` из
|
||||
плейбука убран
|
||||
- transcriber: исходников на этой машине нет — до начала решить, живой ли сервис
|
||||
и откуда его собирать; иначе он останется единственным держателем registry и
|
||||
токен из оборота не выйдет
|
||||
- убрать `docker_login`-таски и registry-переменные из vault — дальше по
|
||||
[narrow-secret-scopes](narrow-secret-scopes.md)
|
||||
- ~~transcriber: исходников на этой машине нет~~ — **сделано**: репозиторий
|
||||
нашёлся (`~/projects/private/transcriber`), Taskfile сведён к таску `image`,
|
||||
плейбук переведён на роль; `vars/transcriber.images.yml` с зашитым тегом
|
||||
удалён вместе с ритуалом «yq + коммит тега» из старого `task deploy`
|
||||
- осталось: убрать `yc_oauth_token` и `yc_container_registry` из vault — на них
|
||||
больше никто не ссылается; дальше по [narrow-secret-scopes](narrow-secret-scopes.md)
|
||||
|
||||
Готово, когда ни один плейбук не делает `docker_login`, `cr.yandex` не
|
||||
встречается в репозитории, а все три приложения деплоятся одним
|
||||
`inv pl -- <app>`.
|
||||
`inv pl -- <app>`. Осталось только вычистить vault и прогнать деплой каждого
|
||||
приложения.
|
||||
|
||||
Цена размена: дедупликации по слоям больше нет — каждый деплой везёт полный
|
||||
образ, и для сборки нужен локальный docker с тулчейном. Для ручного нечастого
|
||||
деплоя это осознанный выбор (так решено в самой роли), но у transcriber образ
|
||||
может оказаться крупным — это стоит проверить до перевода.
|
||||
деплоя это осознанный выбор (так решено в самой роли). Замеры архивов
|
||||
(`docker save`): homepage — 61 МБ, transcriber — 73 МБ, remembos — 21 МБ.
|
||||
|
||||
Пересекается с [gitea-runner-on-demand](gitea-runner-on-demand.md): если сборки
|
||||
уедут в CI, доставка образа на сервер снова становится отдельным вопросом.
|
||||
|
||||
Связано: playbook-homepage.yml, playbook-transcriber.yml, playbook-remembos.yml,
|
||||
playbook-homepage-registry.yml, playbook-transcriber-registry.yml,
|
||||
vars/homepage.yml, vars/transcriber.yml, vars/transcriber.images.yml,
|
||||
vars/homepage.yml, vars/transcriber.yml, roles/app_image,
|
||||
files/{homepage,transcriber,remembos}/docker-compose.template.yml.
|
||||
|
||||
Reference in New Issue
Block a user