Answer
Use separate roots per environment, each pointing at environment-specific child configs (overlays/values pinned to that env's revisions). Shared bases keep consistency while overlays capture differences, so promotion is a PR updating the next environment's config.
Real-world example dev/staging/prod each have a root pointing at their overlay directory, differing only in tags and sizes.