Skip to content

Branch deployments

Status: Current | Last reviewed: 2026-05-28

Per-branch preview environments. A long-lived feature branch can run in its own namespace with its own DNS without affecting Sentinel.

How it works

For a branch named feature/foo:

  1. The branch overlay file values-branch-feature-foo.yaml (or a generated variant) sets:
  2. Namespace: trueserve-feature-foo
  3. Ingress hosts: *.feature-foo.dev.trueserve.deloitte.com
  4. Image tags pinned to the branch's CI builds
  5. The deploy workflow branch-deploy.yml watches the branch and applies the overlay on push.
  6. Cleanup happens when the PR closes: the namespace is deleted.

Existing branch overlays

charts/trueserve-stack/ ships a few branch values files:

File Purpose
values-branch-default.yaml Base for any new branch overlay
values-branch-environment-vanguard.yaml Used when a branch targets the Vanguard cluster
values-branch-environment-sentinel.yaml Used when a branch is a candidate for Sentinel
values-branch-feature-*.yaml Per-feature overlays (see existing examples)

values-branch.yaml at the chart-tree root is the canonical alias; rename in the workflow values: argument.

Limits

A branch deploy gets:

  • 1 replica per service.
  • A shared media pool with Sentinel (no separate kernel rtpengine pool).
  • A shared DNS zone but its own subdomain.

Voice E2E tests on a branch deploy can dial in but throughput is limited.

Decommission

helm uninstall trueserve --namespace trueserve-feature-foo
kubectl delete namespace trueserve-feature-foo

The PR-close hook does this automatically — manual cleanup only if the hook fails.

See also