I recently watched a video by Anton Putra about setting up a production-grade environment using ArgoCD, and it sparked some questions for me. He suggests letting developers deploy applications to a development environment, and then at scheduled intervals, freezing that environment. After freezing, you promote it to staging, run tests, and finally promote it to production when everything checks out. He mentions using a Python script to go through the manifests, change annotations, and push changes to git. My concern is whether this is best practice. Does it seem like an anti-pattern to loop through manifests and rely on a script for promotions?
Additionally, how do you keep changes consistent across all environments? In the video, he focuses on using the image updater, but I'm wondering if it means copying manifest files between the development and staging folders to ensure they match correctly. Is there a better way to handle these promotions to stay organized and consistent? I'd love to hear how others manage this process!
4 Answers
There has to be some way to make a commit if you're following the GitOps model. Whether it's a developer doing this manually or using a script, post-deployment checks are also necessary. So, while a Python script might seem inconvenient, it's one method among many for promoting environments in a git-centric workflow.
Exactly! Every method has its pros and cons, but the goal should be to streamline without skipping vital checks.
In our team, we use a GitHub Action to manage this process. We've got a dedicated DevOps repo with all our Helm charts. When we're ready to deploy, we create a release and update the version number; this triggers an action that syncs everything in ArgoCD. It keeps things organized and allows us to track changes effectively.
That’s a solid approach! Keeping all manifests in version control helps with tracking changes.
Using GitHub Actions is a great idea! It really brings a nice level of automation to the workflow.
We built Reliza Hub for this very purpose—it’s a managed service that makes promoting Kubernetes apps simple. You don’t need to worry about freezing environments; you have full audit history and can even revert to previous states. You might want to check it out if manual promotions are a hassle.
Sounds like a useful tool! I’m all for anything that can take away the manual burden.
That sounds interesting! I’ll have to look into Reliza Hub. It’s great to know there are alternatives that simplify this process.
Codefresh might be worth a look, as it’s built to tackle these types of issues. Tools like this can help manage the complexity of deployments and maintain consistency across environments.
I’ve heard of Codefresh; it's nice to see more options that help with deployment automation.
Yeah, integration tools are definitely a step up from manual processes.
True, it's all about automating the process while still keeping checks in place. The key is to find the right balance.