Promotion
We promote releases between environments through the uug-ai/gitops repository using the workflow defined in .github/workflows/promote.yaml. Instead of manually updating Kubernetes manifests, the workflow copies the approved image references from one environment to another and opens a pull request for review.
When to use this workflow
Use the promotion workflow when you want to:
- move a validated release from
stagingtoqualityassurance - move an approved release from
qualityassurancetoproduction - promote our approved
productionversions into a customer’sstagingenvironment for validation
For customer upgrades, we always use our internal production environment as the source of truth and promote into the customer’s staging environment first.
Running a promotion
- Open the
uug-ai/gitopsrepository in GitHub. - Go to Actions and select Promote from/to environment.
- Fill in the workflow inputs:
source_branch: the environment you want to copy versions from; for customer promotions this is alwaysproductiontarget_branch: the environment you want to update in the selected repositorycustomer: usen/afor internal environments, or select a customer repositoryservices: chooseall,hub,hub-pipeline,vault, orfactory
- Start the workflow.
For customer rollouts, the expected path is our
production-> customerstaging.
What happens behind the scenes
The workflow checks out the GitOps repository and, when needed, a customer repository. It then copies the relevant image tags and repositories from the source environment into the target environment using yq.
Depending on the selected service, it updates files such as:
environments/<env>/kerberos-hub/values.yamlenvironments/<env>/kerberos-hub/hub-pipeline-classifier.yamlenvironments/<env>/kerberos-vault/deployment.yamlenvironments/<env>/kerberos-factory/deployment.yaml
For internal promotions (customer = n/a), it also updates:
environments/<env>/kerberos.io/deployment.yamlenvironments/<env>/doc.kerberos.io/deployment.yamlenvironments/<env>/learn/deployment.yaml
After updating the manifests, the workflow creates a branch named promote-from-<source>-to-<target>, commits the changes, pushes the branch, and opens a pull request against main.
Release notes in the pull request
Every promotion pull request includes generated release notes so reviewers can quickly understand what is changing between the source and target environments. The PR body contains:
- an overview of the repositories and version changes (
from -> to) - statistics per repository, such as commits, files changed, additions, and deletions
- a short summary of the major functional changes included in each upgraded service
A typical release note section looks like this:
## Overview
This release includes changes from the following repositories:
- **uug-ai/hub-frontend**: v1.8.21 → v1.8.25
- **uug-ai/hub-api**: v1.8.25 → v1.8.26
- **uug-ai/hub-cleanup**: v1.4.7 → v1.4.11
- **uug-ai/hub-pipeline-event**: v1.2.0 → v1.3.0
- **uug-ai/hub-pipeline-sequence**: v1.6.12 → v1.6.14
## Statistics
| Repository | Commits | Files Changed | Additions | Deletions |
|------------|---------|---------------|-----------|-----------|
| uug-ai/hub-frontend | 17 | 21 | +614 | -226 |
| uug-ai/hub-api | 5 | 8 | +540 | -38 |
| uug-ai/hub-cleanup | 15 | 12 | +1078 | -101 |
| uug-ai/hub-pipeline-event | 9 | 16 | +54 | -12 |
| uug-ai/hub-pipeline-sequence | 8 | 16 | +122 | -81 |
---
## uug-ai/hub-frontend
**Release:** v1.8.21 → v1.8.25
- Updated `@uug-ai/models` dependency to v1.4.35
- Added fallback canvas dimensions for device motion regions to improve region rendering reliability
- Introduced timeline overview mode (timeline vs chart) with new state, actions, and effects
- Major refactor of timeline rendering for better performance via per-device processing, caching, and viewport prefetching
- Improved timeline and chart behavior when filters change, including correct clearing, grouping control, and reduced unnecessary reloadsThis makes the promotion PR both a deployment change and a release communication artifact for reviewers, QA, and customer rollouts.
Recommended promotion path
Follow the standard release path:
staging -> qualityassurance -> productionThis keeps validation predictable and ensures each environment has been reviewed before moving forward.
After the pull request is created
- Review the generated manifest diff and the attached release notes.
- Verify the expected image tags, version transitions, and major changes are correct.
- Request approval when the target environment is sensitive, especially
production. - Merge the pull request.
- Let ArgoCD sync the updated manifests into the target cluster.
Practical tips
- Use a specific
servicesoption when only part of the platform needs promotion. - Use the
customeroption for customer-managed environments instead of editing their repository by hand. - For customer deployments, never promote directly from our
stagingorqualityassuranceenvironments; always start from our validatedproductionversions. - If no image versions changed between environments, the workflow may finish with no meaningful commit to merge.