I'm part of a team that utilizes Kubernetes and CI/CD pipelines, and we're facing challenges in managing the promotion of releases through different environments, from development to QA and finally production. I want to know how others handle this process. Do you rely primarily on GitOps or CI pipelines, or use dedicated release management tools? I've been contemplating whether there's a need for a standalone open-source tool for release management, or if the existing solutions adequately address our needs. Additionally, I'm curious if many teams still rely on legacy methods like emails for approvals, or if there's a more streamlined approach out there.
1 Answer
I use ArgoCD alongside a PR generator for our development process, moving through to Kargo following a specific branch pattern for staging, canary, and production. For production, Kargo creates a 'staged/prod' branch that requires multiple manager approvals before merging into the 'deployed/prod' branch. I'm currently working on getting better diffs between dev and the higher environments before merging to main, particularly focusing on the rendered manifests.

That's interesting how Kargo handles the rendered manifests! I initially worked on that project during its proof of concept. We aimed to ensure stable deployments, especially since changes from our master branch sometimes broke things in upstream environments. The rendered branch pattern was developed with feedback from TurboTax, where I came up with the implementation.