ci: bump infra image.tag прямым коммитом в main вместо auto-MR
propose-prod-image-bump открывал MR в ordinis-infra на каждый release. MR никто не мерджил — накопилось 5+ открытых, image.tag в values отставал на несколько релизов, и infra deploy-prod (helm upgrade -f values-prod.yaml) откатывал prod на старый образ. Переименован в commit-prod-image-bump: коммитит bump image.tag в values-prod.yaml + values-staging.yaml напрямую в infra main с rebase-retry. Убран промежуточный MR и 405-квирк при merge вечно-manual инфра-пайплайна. Токену нужна роль Maintainer для push в protected main (было Developer); api-scope больше не нужен.
This commit is contained in:
+21
-11
@@ -26,20 +26,27 @@ human кликает Deploy.
|
||||
|
||||
После этого release job в `.gitlab-ci.yml` будет работать.
|
||||
|
||||
### Auto-PR в ordinis-infra (опционально)
|
||||
### Auto-bump image.tag в ordinis-infra (опционально)
|
||||
|
||||
`propose-prod-image-bump` job открывает MR в `ordinis-infra` после каждого
|
||||
release tag — bump'ит `image.tag` в `values-prod.yaml` на свежий immutable
|
||||
SHA tag (e.g. `v2-16-0-abc12345`). Чинит historical bug когда manual deploys
|
||||
через infra repo получали `:latest` (stale cache → split-brain pods).
|
||||
`commit-prod-image-bump` job коммитит обновление `image.tag` в
|
||||
`values-prod.yaml` + `values-staging.yaml` на свежий immutable SHA tag
|
||||
(e.g. `v2-16-0-abc12345`) **прямо в `ordinis-infra` main** после каждого
|
||||
release tag. Чинит historical bug когда manual deploys через infra repo
|
||||
получали `:latest` (stale cache → split-brain pods).
|
||||
|
||||
> Раньше bump шёл через auto-MR — но MR никто не мерджил, values отставали
|
||||
> на несколько релизов, и infra `deploy-prod` откатывал prod на старый
|
||||
> образ. Перешли на direct commit (нет ручного шага, нет 405-квирка при
|
||||
> merge вечно-manual инфра-пайплайна).
|
||||
|
||||
Setup:
|
||||
|
||||
3. **Create Group Access Token** в `2-6/2-6-4/terravault`:
|
||||
- `Group → Settings → Access Tokens → Add new token`
|
||||
- Name: `ordinis-ci-infra-bump`
|
||||
- Role: `Developer`
|
||||
- Scopes: `write_repository`, `api`
|
||||
- Role: `Maintainer` (нужен push в protected `main`; Developer-роль
|
||||
push в protected branch не имеет)
|
||||
- Scopes: `write_repository`
|
||||
- Expiry: 1 год
|
||||
|
||||
4. **Add CI variable в ordinis project (367)**:
|
||||
@@ -47,9 +54,12 @@ Setup:
|
||||
- Value: (token из шага 3)
|
||||
- Flags: `Masked` ✅, `Protected` ✅
|
||||
|
||||
5. **ordinis-infra → Protected branches → `main`**: убедись что `Allowed
|
||||
to push` покрывает этот токен (роль Maintainer покрывает по умолчанию).
|
||||
|
||||
Без этой переменной job exits early (`allow_failure: true`), tag pipeline
|
||||
не блокируется. Manual MR в `ordinis-infra` остаётся всегда доступен как
|
||||
fallback.
|
||||
не блокируется. Ручной bump `image.tag` в `ordinis-infra` остаётся доступен
|
||||
как fallback.
|
||||
|
||||
## Commit conventions
|
||||
|
||||
@@ -106,8 +116,8 @@ exit 0 → нет нового tag → нет loop'а.
|
||||
|
||||
> **Historical note:** до MR !154 (2026-05-12) сюда добавлялось `[skip ci]`.
|
||||
> Это работало для main pipeline'а, НО skip'ало и tag pipeline на том же SHA
|
||||
> → images с tag'ом `v*-*-*-<sha>` не собирались → `propose-prod-image-bump`
|
||||
> auto-PR не запускался → manual ручной MR в infra-repo. Удалено.
|
||||
> → images с tag'ом `v*-*-*-<sha>` не собирались → `commit-prod-image-bump`
|
||||
> не запускался → manual ручной bump в infra-repo. Удалено.
|
||||
|
||||
## ⚠ Skip-ci marker trap
|
||||
|
||||
|
||||
Reference in New Issue
Block a user