ci(release): auto-PR в ordinis-infra с новым image tag после release
Раньше release tag создавал v2.X.Y, build images, но values-prod.yaml в
ordinis-infra оставался указывать на старый tag (либо unset → fall to
:latest). Это создавало divergence:
- Auto deploy через trigger-deploy-prod использовал runtime
UPSTREAM_IMAGE_TAG = новый tag → правильный deploy.
- Manual deploy через infra repo (helm upgrade -f values-prod.yaml)
использовал static values → старый tag → split-brain ноды через
:latest cache (см. ordinis-infra MR !10 fix).
Новый job 'propose-prod-image-bump':
- Triggers только на tag pipeline (semver v*.*.*).
- Needs все docker-* jobs (images должны быть в registry).
- Clones ordinis-infra, патчит image.tag в values-prod.yaml через awk
с scope-tracking (только image: block, не writer/readApi/etc).
- Commit + push branch + создаёт MR через GitLab API.
- Reviewer approve → merge → infra pipeline auto-катит deploy-prod.
Git становится единственным источником истины: HEAD ordinis-infra main
всегда отражает что задеплоено на prod.
Setup: новая CI variable INFRA_PROJECT_TOKEN (group-level access token
scope: write_repository, api, role: Developer). Без неё job exits early
с подсказкой — pipeline не блокируется (allow_failure: true).
This commit is contained in:
+25
@@ -26,6 +26,31 @@ human кликает Deploy.
|
||||
|
||||
После этого release job в `.gitlab-ci.yml` будет работать.
|
||||
|
||||
### Auto-PR в 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).
|
||||
|
||||
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`
|
||||
- Expiry: 1 год
|
||||
|
||||
4. **Add CI variable в ordinis project (367)**:
|
||||
- Key: `INFRA_PROJECT_TOKEN`
|
||||
- Value: (token из шага 3)
|
||||
- Flags: `Masked` ✅, `Protected` ✅
|
||||
|
||||
Без этой переменной job exits early (`allow_failure: true`), tag pipeline
|
||||
не блокируется. Manual MR в `ordinis-infra` остаётся всегда доступен как
|
||||
fallback.
|
||||
|
||||
## Commit conventions
|
||||
|
||||
Conventional Commits (https://www.conventionalcommits.org/):
|
||||
|
||||
Reference in New Issue
Block a user