From 53c2756265450b4cfa7861f4f35e01f229711646 Mon Sep 17 00:00:00 2001 From: OpeItcLoc03 Date: Thu, 18 Jun 2026 08:28:09 +0000 Subject: [PATCH] meta(tasks): create [books-task-runner-registry-auth-cred] in OpeItcLoc03/admin --- .tasks/STATUS.md | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 0c45a2d..86c4708 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -714,3 +714,43 @@ Approach ратифицирован человеком (вариант A): ко --- + +## ⚪ [books-task-runner-registry-auth-cred] — Положить кред books-ci в **task-runner** config-volume, чтобы заработал переписанный `registryGc` (чистка Docker registry через Registry v2 DELETE). + +Контекст: registryGc раньше бил в Gitea packages API и никогда не отрабатывал (образы books-* живут в standalone registry:2 на registry.kzntsv.site за htpasswd). Переписан на Registry v2 REST с Basic-auth кредом books-ci (commit books@a3734d5). Кред books-ci уже есть в **job-scheduler** config-volume (для docker pull) — нужен тот же и в **task-runner** (registryGc бежит там, http-runner, отдельный volume). + +## Что сделать +В task-runner config-volume (`/opt/books/task-runner/config/...` — local.json/production.json поверх default.json) добавить секцию: +```json +"registry": { + "baseUrl": "https://registry.kzntsv.site", + "username": "books-ci", + "password": "<из pass vds-kzntsv/registry-books-ci>" +} +``` +(baseUrl+username уже в git default.json; нужен только password — секрет, в git его нет). + +⚠️ Файл config-volume: соблюсти права как в memory `feedback_container_user_node_uid_1000` — контейнер бежит под uid 1000, НЕ ставить `600 root:root` (был прод-даун 2026-06-18 на createPickingListPdf из-за EACCES). Нужен read для uid 1000 (644). + +## Acceptance +- `registry.password` присутствует в task-runner config-volume. +- Ручной trigger registryGc через /scheduler с `dryRun=true` отрабатывает без 401: в отчёте видны repos books-* и «будет удалено N». (Если 405 на DELETE — значит на registry не включён `REGISTRY_STORAGE_DELETE_ENABLED=true`; отдельный вопрос, отметить.) + +## Обязательные скилы — вызвать до начала работы +- invoke `using-tasks` — для управления статусом задачи +- invoke `using-projects-meta` — cross-project tasks/wiki +- invoke `books-ops-mcp` — проверить контейнер/конфиг task-runner read-only до и после + +**TDD:** нет — ops/secret, кода нет. +**Разрешения:** интерны: нет (секрет) | автопуш: n/a (ручная ops на VPS). +**weight:** needs-human — секрет + доступ к VPS config-volume, критичная инфра. +**notify:** OpeItcLoc03/books + +**Status:** ready +**Where I stopped:** (not started) — код registryGc уже переписан и закоммичен в books (a3734d5), ждёт только кред +**Next action:** Добавить секцию registry в task-runner config-volume и положить пароль books-ci +**Branch:** n/a +**Notify:** OpeItcLoc03/books + + +---