CICDFlow
๐ CICD Flow for Unibeamยถ
This page provides a summary of the CI/CD process for Unibeam services, including repository structure, workflow automation, and authentication flows.
It is optimized for GitOps using ArgoCD and GitHub Actions, with Docker images stored in AWS ECR and configuration managed via environment-specific branches.
๐ CICD Workflow Overviewยถ
flowchart TD
subgraph CI_CD["CI/CD Repository"]
GH_Action["GitHub Actions Workflow"]
end
subgraph ArgoCD["ArgoCD Repository"]
Helm_Values["Helm values.yaml (per branch/env)"]
end
subgraph AWS_ECR["AWS ECR"]
Docker_Image["Docker Image"]
end
subgraph K8s["Kubernetes Cluster"]
App_Deploy["Application Deployment"]
end
GH_Action -- Builds & Pushes --> Docker_Image
GH_Action -- Updates --> Helm_Values
Helm_Values -- Triggers Sync --> App_Deploy
Docker_Image -- Used by --> App_Deploy
ยถ
๐ Authentication & Access Flow
- GitHub Actions uses an IAM role (via AssumeRole) to authenticate to AWS and push Docker images to ECR.
- ArgoCD uses a deployment key to access the repository and synchronize application definitions.
- Kubernetes clusters authenticate to AWS ECR for pulling images using IRSA (IAM Roles for Service Accounts) or node roles.
sequenceDiagram
participant Dev as Developer
participant GH as GitHub Actions
participant AWS as AWS ECR
participant Argo as ArgoCD
participant K8s as Kubernetes
Dev->>GH: Push code / trigger workflow
GH->>AWS: Assume IAM Role, push Docker image
GH->>Argo: Update values.yaml in env branch
Argo->>K8s: Sync application definition
K8s->>AWS: Pull Docker image for deployment
Environment Separation
Each environment is managed in its own branch, ensuring isolated configuration and deployment.
GitOps Automation
All changes are tracked and automatically deployed via ArgoCD, providing a robust and auditable pipeline.
๐ Summaryยถ
-
ArgoCD Repository:
Stores application definitions and Helm chart values for each environment.
Each environment (e.g.,dev-us,demo,prod) is managed in its own branch, ensuring isolated configuration and deployment. -
CI/CD Repository:
Contains GitHub Actions workflows for building and deploying services.
Workflows build Docker images, push them to AWS ECR, and update the correspondingvalues.yamlin the ArgoCD repository for the target environment. -
Automation:
Changes to application configuration or Docker images are automatically propagated to the Kubernetes cluster via ArgoCD, providing a robust and auditable deployment pipeline.
๐ Referencesยถ
CI/CD Workflow Documentation ArgoCD Documentation Maven Flow for Unibeam