I'm a DevOps Engineer focused on cloud infrastructure, CI/CD automation, containerization, and reliable deployments. I also have a background in backend development, building and deploying applications with modern technologies.

Phone

+92-304-369-6643

Email

contact@sajan.tech

Website

https://sajan.tech

Address

Karachi

Social Links

Project

πŸš€ VProfile β€” GitOps Delivery Platform on AWS EKS

End-to-end GitOps CI/CD pipeline for the VProfile application on Amazon EKS. GitHub Actions runs Maven tests, Checkstyle and SonarQube Quality Gate checks, builds and pushes the application image to Amazon ECR, then updates the separate Helm repository with the new image tag. Argo CD detects the Git change and synchronizes the Helm-defined desired state to the EKS cluster.

Client

Personal Project
πŸš€ VProfile β€” GitOps Delivery Platform on AWS EKS

πŸš€ VProfile β€” GitOps Delivery Platform on AWS EKS

An end-to-end DevOps and GitOps implementation for building, testing, containerizing, and continuously deploying the VProfile application to Amazon EKS.

AWS EKS Terraform Kubernetes Helm Argo CD Docker GitHub Actions SonarQube


🎯 What This Project Is

This repository combines three focused components into one complete delivery platform:

Component Responsibility
vprofile-app Java application, tests, Docker build and GitHub Actions CI
vprofile-helm Helm chart, Kubernetes desired state and Argo CD configuration
vprofile-infra AWS infrastructure and EKS provisioning with Terraform

The platform demonstrates a practical delivery chain:

Pull Request β†’ Build & Test β†’ Checkstyle β†’ SonarQube β†’ Quality Gate

and, after changes reach main:

Build VProfile Image β†’ Amazon ECR β†’ Update Helm Repository β†’ Argo CD β†’ Amazon EKS β†’ AWS Load Balancer β†’ Application


πŸ—οΈ Architecture

Architecture

Platform Flow

                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚      Developer      β”‚
                         β”‚     Source Code
	
	
	
	
	
	     β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
                                    β–Ό
                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚       GitHub        β”‚
                         β”‚   vprofile-app      β”‚
                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                    β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚                                β”‚
              Pull Request                      Push 
	
	
	
	
	
	to main
                    β”‚                                β”‚
                    β–Ό                                β–Ό
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚  GitHub Actions  β”‚             β”‚  GitHub Actions  β”‚
          β”‚ Build 
	
	
	
	
	
	+ Test     β”‚             β”‚ Docker Build 
	
	
	
	
	
	    β”‚
          β”‚ Checkstyle       β”‚             β”‚ VProfile App     β”‚
          β”‚ SonarQube        β”‚             β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚ Quality Gate     β”‚                      β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β–Ό
                                             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                             β”‚   Amazon ECR   β”‚
                                             β”‚ VProfile Image β”‚
                                             β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                     β”‚
                                                     β–Ό
                                      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                      β”‚    vprofile-helm        β”‚
                                      β”‚                         β”‚
                                      β”‚ values.yaml image/tag   β”‚
                                      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                   β”‚
                                                   β”‚ Git push

	
	
	
	
	
	                                                   β–Ό
                                             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                             β”‚  Argo CD   β”‚
                                             β”‚   GitOps   β”‚
                                             β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                                   β”‚
                                                   β–Ό
                                             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                             β”‚   AWS EKS  β”‚
                                             β”‚ Kubernetes β”‚
                                             β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                                   β”‚
                                                   β–Ό
                                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                         β”‚ AWS Load Balancerβ”‚

	
	
	
	
	
	                                         β”‚ / Kubernetes     β”‚
                                         β”‚ Ingress          β”‚
                                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                  β”‚
                                                  β–Ό
                                           🌐 VProfile App

Runtime Application Components

The CI pipeline builds and publishes the VProfile application image. The supporting services are deployed from their configured container images through the Helm deployment.

                         AWS EKS
                            β”‚
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚             β”‚             β”‚
              β–Ό             β–Ό             β–Ό
        VProfile App      Database     RabbitMQ
        (ECR image)    (configured     (configured
                       container
	
	
	
	
	
	)      container
	
	
	
	
	
	)
                            β”‚
                            β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                                   β–Ό
                              Memcached
                            (configured
                             container
	
	
	
	
	
	)

                    + application dependencies
                       defined by
	
	
	
	
	
	 the chart

The exact image sources, tags, replicas, services, and configuration are maintained in:

vprofile-helm/helm/
	
	
	
	
	
	vprofile/values.yaml
	
	
	
	
	
	

πŸ”„ CI/CD Pipeline

The application workflow is:

vprofile-app
	
	
	
	
	
	/.github/workflows/ci
	
	
	
	
	
	.yml

The workflow uses two event-driven paths.

1. Pull Request β†’ Build, Test & Quality Validation

When a pull request targets main:

Pull Request
     β”‚
     β–Ό
Checkout
     β”‚
     β–Ό
JDK 
	
	
	
	
	
	21
	
	
	
	
	
	
     β”‚
     β–Ό
Maven Build 
	
	
	
	
	
	+ Unit Tests
     β”‚
     β–Ό
Checkstyle
     β”‚
     β–Ό
SonarQube Analysis
     β”‚
     β–Ό
SonarQube Quality Gate

The workflow:

  • Checks out the repository with full history.
  • Sets up JDK 21.
  • Caches Maven dependencies.
  • Caches the Sonar scanner cache.
  • Runs mvn clean verify checkstyle:checkstyle -B.
  • Runs the SonarQube scan.
  • Waits for the SonarQube quality-gate result.

Evidence:

SonarQube Quality Gate

Build and Test


2. Push to main β†’ Build & Publish VProfile Image

When changes are pushed to main, the delivery path builds the VProfile application image:

Push to main
     β”‚
     β–Ό
Checkout
     β”‚
     β–Ό
Configure AWS Credentials
     β”‚
     β–Ό
Create
	
	
	
	
	
	 ECR Repository if
	
	
	
	
	
	 Needed
     β”‚
     β–Ό
Build
	
	
	
	
	
	 VProfile Docker Image
     β”‚
     β–Ό
Tag with
	
	
	
	
	
	 7
	
	
	
	
	
	-character
	
	
	
	
	
	 Git SHA
	
	
	
	
	
	
     β”‚
     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ί :<commit
	
	
	
	
	
	-sha
	
	
	
	
	
	>
     β”‚
     └──────────────► :latest
     β”‚
     β–Ό
Push to
	
	
	
	
	
	 Amazon ECR

The application image is built from:

Docker-files/app/mu
	
	
	
	
	
	ltistage/Dockerfile
	
	
	
	
	
	

The pipeline does not build separate Docker images for the database, RabbitMQ, or Memcached as part of this job. Those supporting services use their configured container images through the Kubernetes/Helm deployment.

Evidence:

ECR Images


πŸ” GitOps Deployment Flow

After the VProfile image is successfully pushed to ECR, the workflow updates the separate Helm repository.

VProfile image pushed to ECR
             β”‚
             β–Ό
       Clone
	
	
	
	
	
	 vprofile-helm
	
	
	
	
	
	
             β”‚
             β–Ό
        Install yq
             β”‚
             β–Ό
       Update values.yaml
             β”‚
             β”œβ”€β”€ app.image
             └── app.tag
	
	
	
	
	
	
             β”‚
             β–Ό
       Commit
	
	
	
	
	
	 Helm change
             β”‚
             β–Ό
       Push to Helm repo
             β”‚
             β–Ό
          Argo CD
             β”‚
             β–Ό
       Synchronize to EKS

The workflow updates:

app:
	
	
	
	
	
	
  image:
	
	
	
	
	
	 <ECR image>
	
	
	
	
	
	
  tag:
	
	
	
	
	
	 <7
	
	
	
	
	
	-character Git SHA>
	
	
	
	
	
	

in:

vprofile-helm/helm/
	
	
	
	
	
	vprofile/values.yaml
	
	
	
	
	
	

This creates a clear separation:

Application Repository
        β”‚
        β”‚ build
        β–Ό
     Amazon ECR
        β”‚
        β”‚ image reference
        β–Ό
Helm / GitOps Repository
        β”‚
        β”‚ desired state
	
	
	
	
	
	
        β–Ό
     Argo CD
        β”‚
        β–Ό
      AWS EKS

Evidence:

ECR and Helm Update

Image Tag Update


☸️ Kubernetes & Helm

The Kubernetes delivery configuration lives in:

vprofile-helm/

The main Helm chart is:

vprofile-helm/helm/
	
	
	
	
	
	vprofile/
	
	
	
	
	
	

It contains templates for the application stack, including:

  • Application Deployment
  • Database Deployment
  • RabbitMQ Deployment
  • Memcached Deployment
  • Services
  • PersistentVolumeClaim
  • Secrets
  • Ingress
  • Docker registry authentication

The repository also retains Kubernetes definitions under:

vprofile-helm/kubedefs/
	
	
	
	
	
	

This makes the repository useful both as a record of the Kubernetes resources and as the Helm-based desired-state source used for GitOps delivery.


πŸ” Argo CD

Argo CD provides the GitOps deployment layer.

Git
 β”‚
 β”‚ desired Kubernetes state
	
	
	
	
	
	
 β–Ό
Argo CD
 β”‚
 β”‚ sync
 β–Ό
Amazon EKS
 β”‚
 β–Ό
VProfile workloads

Argo CD-related configuration is maintained under:

vprofile-helm/argocd/
	
	
	
	
	
	
vprofile-helm/apps/
	
	
	
	
	
	
vprofile-helm/projects/
	
	
	
	
	
	

Argo CD watches the configured Git source and applies the desired state to the Kubernetes cluster.

Argo CD Dashboard


πŸ—οΈ AWS Infrastructure with Terraform

The AWS infrastructure is maintained in:

vprofile-infra/

Terraform configuration includes:

vprofile-infra/
β”œβ”€β”€ main.tf
	
	
	
	
	
	
β”œβ”€β”€ variables.tf
	
	
	
	
	
	
β”œβ”€β”€ outputs.tf
	
	
	
	
	
	
β”œβ”€β”€ backend.tf
	
	
	
	
	
	
└── iam_policy.json

The repository also contains:

argocd-ingress
	
	
	
	
	
	.yaml
	
	
	
	
	
	

for supporting Kubernetes/Argo CD ingress configuration.

The infrastructure layer provides the AWS/EKS foundation on which the GitOps deployment runs.

➑️ vprofile-infra


🌐 Ingress & Application Access

The application is exposed through Kubernetes Ingress and the AWS Load Balancer integration.

Internet
	
	
	
	
	
	
   β”‚
   β–Ό
AWS
	
	
	
	
	
	 Load Balancer

	
	
	
	
	
	   β”‚
   β–Ό
Kubernetes
	
	
	
	
	
	 Ingress
   β”‚
   β–Ό
VProfile
	
	
	
	
	
	 Service
   β”‚
   β–Ό
VProfile
	
	
	
	
	
	 Pod

Evidence:

Load Balancer

Final application verification:

Application Login


πŸ” SonarQube Server Setup

The project includes:

resources/scripts/sonar-setup
	
	
	
	
	
	.sh

This is a reusable setup script for installing and configuring the SonarQube server on an Ubuntu EC2 instance used by the CI quality-analysis workflow.

The script handles the server-side setup required for the SonarQube environment, including Java, PostgreSQL, SonarQube configuration, systemd service configuration, and Nginx reverse proxy configuration.

It is intentionally kept as an implementation artifact so the CI quality-analysis environment is reproducible.


πŸ€– AI-Assisted Implementation Prompts

The project also contains a reusable prompt library:

resources/prompts/
	
	
	
	
	
	

These prompts document how AI assistance was used during implementation to generate or transform specific infrastructure and GitOps components.

Prompt Purpose
01-terraform-eks.md Generate Terraform configuration for AWS/EKS infrastructure
02-ebs-csi-driver.md Configure the AWS EBS CSI Driver for Kubernetes storage
03-helm-chart.md Transform Kubernetes definitions into a reusable Helm chart
04-argocd-and-ingress.md Generate Argo CD and Ingress configuration
05-argocd-vprofile-app.md Generate the Argo CD application configuration for VProfile

AI-Assisted Workflow

Requirements / Existing
	
	
	
	
	
	 Configuration
                β”‚
                β–Ό
        AI Implementation Prompt
                β”‚
                β–Ό
       Generated Configuration
                β”‚
                β–Ό
          Review & Modify
                β”‚
                β–Ό
          Validate / Test
	
	
	
	
	
	
                β”‚
                β–Ό
             Deploy

The prompts are provided as reproducible implementation references. Generated output was reviewed, modified where necessary, validated, and integrated into the project.


πŸ“‚ Repository Structure

GitOps-Argo/
β”‚
β”œβ”€β”€ README.md
	
	
	
	
	
	
β”œβ”€β”€ SECURITY.md
	
	
	
	
	
	
β”‚
β”œβ”€β”€ resources/
β”‚   β”œβ”€β”€ commands/
β”‚   β”‚   β”œβ”€β”€ 01
	
	
	
	
	
	-install-tools.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 02
	
	
	
	
	
	-terraform-bootstrap.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 03
	
	
	
	
	
	-aws-eks-and-kubeconfig.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 04
	
	
	
	
	
	-alb-cert-manager.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 05
	
	
	
	
	
	-argocd.md
	
	
	
	
	
	
β”‚   β”‚   └── 06
	
	
	
	
	
	-vprofile-verification.md
	
	
	
	
	
	
β”‚   β”‚
β”‚   β”œβ”€β”€ prompts/
β”‚   β”‚   β”œβ”€β”€ 01
	
	
	
	
	
	-terraform-eks.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 02
	
	
	
	
	
	-ebs-csi-driver.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 03
	
	
	
	
	
	-helm-chart.md
	
	
	
	
	
	
β”‚   β”‚   β”œβ”€β”€ 04
	
	
	
	
	
	-argocd-and-ingress.md
	
	
	
	
	
	
β”‚   β”‚   └── 05
	
	
	
	
	
	-argocd-vprofile-app.md
	
	
	
	
	
	
β”‚   β”‚
β”‚   β”œβ”€β”€ screenshots/
β”‚   β”œβ”€β”€ scripts/
β”‚   β”‚   └── sonar-setup.sh
	
	
	
	
	
	
β”‚   └── variables/
β”‚       └── github-variables-and-secrets.example
	
	
	
	
	
	.md
	
	
	
	
	
	
β”‚
β”œβ”€β”€ vprofile-app/
β”‚   β”œβ”€β”€ .github/workflows/
β”‚   β”‚   └── ci.yml
	
	
	
	
	
	
β”‚   β”œβ”€β”€ Docker-files/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ pom.xml
	
	
	
	
	
	
β”‚   └── sonar-project.properties
	
	
	
	
	
	
β”‚
β”œβ”€β”€ vprofile-helm/
β”‚   β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ argocd/
β”‚   β”œβ”€β”€ helm/
β”‚   β”‚   └── vprofile/
β”‚   β”œβ”€β”€ kubedefs/
β”‚   └── projects/
β”‚
└── vprofile-infra/
    β”œβ”€β”€ main.tf
	
	
	
	
	
	
    β”œβ”€β”€ variables.tf
	
	
	
	
	
	
    β”œβ”€β”€ outputs.tf
	
	
	
	
	
	
    β”œβ”€β”€ backend.tf
	
	
	
	
	
	
    β”œβ”€β”€ iam_policy.json
	
	
	
	
	
	
    └── argocd-ingress.yaml

🧭 Where to Start

If you are reviewing this project for the first time, follow this path:

01 β€” Understand the architecture

Start with:

resources/screenshots/
	
	
	
	
	
	01
	
	
	
	
	
	-architecture.png

Then read this README.

02 β€” Review the application CI workflow

Open:

vprofile-app
	
	
	
	
	
	/.github/workflows/ci
	
	
	
	
	
	.yml

Pay particular attention to:

  • Pull request quality checks
  • Maven build and tests
  • Checkstyle
  • SonarQube
  • Docker image build
  • Amazon ECR publishing
  • Helm repository update

03 β€” Review the infrastructure

Open:

vprofile-infra/

Start with:

main.tf
	
	
	
	
	
	
variables.tf
	
	
	
	
	
	
outputs.tf

04 β€” Review Kubernetes and Helm

Open:

vprofile-helm/

Start with:

helm/vprofile/
	
	
	
	
	
	values.yaml
helm/vprofile/
	
	
	
	
	
	templates/
	
	
	
	
	
	

Then inspect:

kubedefs/
argocd/
apps/
projects/

05 β€” Follow the GitOps path

Trace the image reference from:

GitHub Actions
      ↓
Amazon ECR
      ↓
vprofile-helm/values.yaml
	
	
	
	
	
	
      ↓
Argo CD
      ↓
EKS

06 β€” Review deployment evidence

Open:

resources/screenshots/
	
	
	
	
	
	

The screenshots provide visual evidence of the major implementation stages.


🧰 Resources

Commands

resources/commands/
	
	
	
	
	
	

Sequential command references covering:

  1. Tool installation
  2. Terraform bootstrap
  3. AWS EKS and kubeconfig
  4. ALB and certificate configuration
  5. Argo CD setup
  6. VProfile verification

Prompts

resources/prompts/
	
	
	
	
	
	

Reusable AI-assisted implementation prompts for the infrastructure and GitOps components.

Screenshots

resources/screenshots/
	
	
	
	
	
	

Implementation and deployment evidence.

Scripts

resources/scripts/
	
	
	
	
	
	

Reusable automation scripts, including the SonarQube EC2 setup script.

Variables

resources/variables/
	
	
	
	
	
	

Reference configuration for GitHub Actions variables and secrets.


πŸ§ͺ Verification

The following checks can be used to verify the deployed environment.

Terraform

terraform plan
terraform apply
	
	
	
	
	
	

Kubernetes

kubectl
	
	
	
	
	
	 get
	
	
	
	
	
	 nodes
kubectl
	
	
	
	
	
	 get
	
	
	
	
	
	 pods -A
kubectl
	
	
	
	
	
	 get
	
	
	
	
	
	 svc 
	
	
	
	
	
	-A
kubectl
	
	
	
	
	
	 get
	
	
	
	
	
	 ingress -A

Helm

helm lint ./vprofile-helm/
	
	
	
	
	
	helm/vprofile
	
	
	
	
	
	

Argo CD

Verify that:

  • The VProfile application exists.
  • The Git repository is connected.
  • The application is synchronized.
  • The application health is healthy.
  • The expected Kubernetes resources are running.

Application

Open the configured application endpoint through the Load Balancer/Ingress and verify the VProfile application.


πŸ“Έ Deployment Evidence

# Evidence
01 Architecture
02 EKS cluster
03 SonarQube quality gate
04 Build and test
05 Amazon ECR images
06 ECR image + Helm update
07 Argo CD dashboard
08 Image tag update
09 AWS Load Balancer
10 VProfile application

All screenshots are stored in:

resources/screenshots/
	
	
	
	
	
	

🎯 What This Project Demonstrates

This project demonstrates practical implementation of:

  • Infrastructure as Code with Terraform
  • Amazon EKS
  • AWS networking and IAM
  • Docker containerization
  • Amazon ECR
  • GitHub Actions
  • Maven builds and automated tests
  • Checkstyle
  • SonarQube analysis
  • SonarQube quality gates
  • Kubernetes
  • Helm
  • Kubernetes Services
  • Ingress
  • Persistent storage
  • Kubernetes Secrets
  • Argo CD
  • GitOps
  • Multi-tier application deployment
  • CI-driven container delivery
  • Git-based Kubernetes desired state
  • Operational verification and troubleshooting

πŸ” Security

Security guidance is available in:

➑️ SECURITY.md

For production use:

  • Replace demonstration credentials.
  • Store sensitive values in an appropriate secret-management system.
  • Apply least-privilege IAM policies.
  • Restrict AWS Security Group access.
  • Configure HTTPS/TLS appropriately.
  • Never commit credentials, access keys, tokens, or private keys.
  • Rotate credentials when required.

🧩 Separation of Responsibilities

The project intentionally separates application, deployment, and infrastructure responsibilities.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          vprofile-app            β”‚
β”‚                                  β”‚
β”‚ Java 
	
	
	
	
	
	+ Maven + Tests + CI        β”‚
β”‚ Docker Build 
	
	
	
	
	
	+ ECR Publishing    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β”‚ Image
                 β–Ό
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚  Amazon ECR  β”‚
          β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β”‚ Image reference
                 β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         vprofile-helm            β”‚
β”‚                                  β”‚
β”‚ Helm + Kubernetes + Argo CD      β”‚
β”‚ Git-based 
	
	
	
	
	
	Desired State          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                 β”‚
                 β”‚ Sync

	
	
	
	
	
	                 β–Ό
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚  Argo CD  β”‚
            β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
                  β”‚
                  β–Ό
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚  AWS EKS  β”‚
            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         vprofile-infra           β”‚
β”‚                                  β”‚
β”‚ Terraform + AWS Infrastructure   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

This separation makes the platform easier to understand, maintain, and evolve.


⭐ End-to-End Summary

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    GitHub    β”‚
β”‚ vprofile-app β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
       β”‚
       β”œβ”€β”€ Pull Request ──► Build 
	
	
	
	
	
	+ Test + Checkstyle
       β”‚                         β”‚
       β”‚                         β–Ό
       β”‚                    SonarQube
       β”‚                         β”‚
       β”‚                         β–Ό
       β”‚                    Quality Gate
       β”‚
       └── Push 
	
	
	
	
	
	to main ──► Docker Build

	
	
	
	
	
	                                  β”‚
                                  β–Ό
                              Amazon ECR
                                  β”‚
                                  β–Ό
                         Update Helm values
                                  β”‚
                                  β–Ό
                            Git push

	
	
	
	
	
	                                  β”‚
                                  β–Ό
                              Argo CD
                                  β”‚
                                  β–Ό
                             AWS EKS
                                  β”‚
                                  β–Ό
                         AWS Load Balancer

	
	
	
	
	
	                                  β”‚
                                  β–Ό
                            VProfile App

Core Delivery Model

Application CI β†’ Container Registry β†’ Git-based Desired State β†’ Argo CD β†’ Kubernetes


πŸ“š Quick Navigation

Resource Purpose
vprofile-app Application, tests, Docker and CI
vprofile-helm Helm, Kubernetes and Argo CD
vprofile-infra Terraform and AWS infrastructure
resources/commands Step-by-step command references
resources/prompts AI-assisted implementation prompts
resources/screenshots Deployment evidence
resources/scripts Automation scripts
resources/variables GitHub configuration reference
SECURITY.md Security guidance

Infrastructure as Code β†’ Continuous Integration β†’ Container Registry β†’ GitOps β†’ Kubernetes β†’ Application Delivery

Share

Leave a comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Your experience on this site will be improved by allowing cookies. Cookie Policy