top of page

GitOps Journey With ArgoCD and Multi-Cloud Infrastructure

I spent this weekend experiencing firsthand how incredibly effective ArgoCD is at managing the declarative state of a Kubernetes cluster. By treating Git as the absolute single source of truth, it completely streamlines cloud-native software delivery. Because ArgoCD automates application synchronization and actively tracks configuration drift, it eliminates manual deployment errors while providing crystal-clear UI based visibility into cluster health and sync history.



The setup highlights the power of automation, cloud-native tools, and security integration across both Azure and AWS platforms.



Here is a breakdown of the architecture and workflow:



🏗️ Infrastructure Automation (Terraform)


Module driven setup for Azure and AWS infrastructure - AKS, ArgoCD and AWS EC2



AWS: Deployed EC2 Instances configured with User Data Script to trigger SonarQube docker container < ensure to enable docker at system boot as User Data only runs once at the very first instance of the system boot >



Remote State Management: Secured the architecture using azurerm backend for remote state management for both AWS and Azure resources, backed by Azure AD authentication.



Flexibility: Built-in deployment toggles and terraform Count allowing for tailored infrastructure setups depending on project needs <multi-cloud, multi-instance and resource type specific>.



🔒 The DevSecOps Pipeline (GitHub Actions)


With the infrastructure live, I built a continuous integration and continuous deployment (CI/CD) pipeline using GitHub Actions to enforce quality and security gates at every step:



Code Analysis: Integrated SonarQube (setup on AWS EC2) into the workflow to perform static code analysis, ensuring high code quality and security standards.



Containerization: Using GitHub built-in docker actions to login, build and push.



Container Vulnerability Scanning: Job triggering The Aqua Security Trivy GitHub Action , that allows to automate vulnerability and misconfiguration scanning for your container images directly within your CI/CD pipelines. Integrate and view the report within GitHub security tab. < Can be used to stop the pipeline if breaches the vulnerability threshold >



GitOps Trigger: Job to update the deployment YAML files with the newly generated image tag, maintaining the desired state directly within the Git repository.



☸️ Continuous Delivery (ArgoCD & AKS)


To complete the GitOps loop, ArgoCD was bootstrapped onto the AKS cluster using Terraform.


ArgoCD monitors the application repository and branch for changes to deployment yml, triggers automated rollouts to the configured namespace to ensure the live application state perfectly syncs with our Git configurations.


Application setup can be customized based on the project structure and specific cluster and namespaces.







Comments


bottom of page