Files
ovirt-api-simulator/docs/ru/ci-cd.md
T
inecs 540675597a Add SemVer VERSION, Jenkins CI/CD, and release 0.1.1.
Ship Harbor/Hub push with latest+version tags, deploy to ovirt.devops.org.ru, and show the package version badge in Help → About.
2026-07-28 00:56:52 +03:00

3.2 KiB
Raw Blame History

Language / Язык: English | Русский

CI/CD (Jenkins + Gitea)

SemVer хранится в VERSION. Локальный bump: make bump-patch / make bump-minor (синхронизирует pyproject.toml и Helm). Jenkins версию не поднимает — собирает то, что в коммите.

Публичный URL после деплоя: https://ovirt.devops.org.ru/

Pipeline

Один Jenkinsfile на ветках main / master:

  1. Build & push (agent docker / DinD) — multi-arch linux/amd64,linux/arm64 в Harbor и Docker Hub, теги только :{VERSION} и :latest.
  2. Deploykubectl set image для simulators/simulators-ovirt (контейнер simulator + initContainer migrate), затем rollout status (--timeout=1200s).

Первый install в кластере (Ingress, Postgres, секреты) — не этот job, а make addon-simulators в DevOpsTools/K3S (simulators_proxmox_host: ovirt.devops.org.ru).

Образы

Registry Repository
Harbor hub.antropoff.ru/devops-tools/ovirt-api-simulator
Docker Hub inecs/ovirt-api-simulator

Credentials (Jenkins Global)

ID Тип Назначение
harbor-devops-tools-push-pull-access Username/password Push в Harbor
docker-hub Username/password Docker Hub inecs
k3s-kubeconfig Secret file Kubeconfig для deploy
ssh-gitea-key SSH private key Checkout из Gitea

Что сделать в Gitea

  1. Репозиторий на Gitea (зеркало или primary), ветка main.
  2. Deploy key / credential Jenkins ssh-gitea-key с правом clone (git@…:…/ovirt_api_simulator.git).
  3. По желанию: webhook Gitea → Jenkins Multibranch (или polling / Organization Folder).

Что сделать в Jenkins

  1. Credentials — четыре ID выше (как у Wrapped), если ещё нет.
  2. Agent — pod template label docker с контейнером docker (DinD / buildx), как у Wrapped.
  3. Job — Multibranch Pipeline (или Pipeline from SCM):
    • Script Path: Jenkinsfile
    • Ветки: mainmaster при необходимости)
    • SCM: SSH URL Gitea + ssh-gitea-key
  4. Harbor — проект devops-tools, robot может push ovirt-api-simulator.
  5. Docker Hub — репозиторий inecs/ovirt-api-simulator, права у docker-hub.
  6. Кластер — релиз simulators в ns simulators уже установлен (make addon-simulators). Deployment: simulators-ovirt.
  7. После bump VERSION и push в main — прогнать job и проверить:
    • теги :0.x.y и :latest в Harbor/Hub
    • kubectl -n simulators get deploy,ing
    • Help → About: badge v0.x.y на https://ovirt.devops.org.ru/

Локальный релиз без Jenkins

make bump-patch          # или bump-minor
make version-commit
git push origin HEAD
# или только Hub вручную:
make release