EdgeWave implements a complete DevSecOps lifecycle — from code commit to auto-deployment on AWS EKS using Argo CD (GitOps).
| Tool | Role |
|---|---|
| Jenkins | CI + GitOps trigger |
| SonarQube | Static code quality scan |
| Docker Hub | Container image registry |
| GitHub | Source of truth for code & manifests |
| Argo CD | Continuous Delivery (auto-sync) |
| EKS | Kubernetes production environment |
To make Jenkins automatically pull code and push manifest updates via SSH, configure it once as follows:
sudo su - jenkins
ssh-keygen -t ed25519 -C "jenkins@edgewave"
cat ~/.ssh/id_ed25519.pubCopy the public key output.
In your GitHub account:
- Go to Settings → SSH and GPG keys → New SSH key
- Title:
Jenkins CI Key - Paste the public key
- Save
In Jenkins → Dashboard → Manage Jenkins → Credentials → Global → Add Credentials
| Field | Value |
|---|---|
| Kind | SSH Username with private key |
| ID | github-ssh |
| Username | git |
| Private Key | Paste contents of /var/lib/jenkins/.ssh/id_ed25519 |
Definition: Pipeline script from SCM
| Field | Value |
|---|---|
| SCM | Git |
| Repository URL | [email protected]:gauravchile/EdgeWave.git |
| Credentials | github-ssh |
| Branch Specifier | */main |
| Script Path | Jenkinsfile |
In your Jenkinsfile:
triggers {
pollSCM('H/1 * * * *') // Poll GitHub every 1 minute
}Now Jenkins checks GitHub every minute for new commits and auto-triggers builds.
- Checkout from GitHub via SSH
- Run SonarQube static code scan
- Enforce Quality Gate before build
- Build Docker images for backend/frontend
- Push to Docker Hub (
gauravchile/edgewave) - Update image tags in K8s manifests
- Commit and push updated manifests to GitHub
- Argo CD auto-syncs & deploys new version to EKS
make prequs # Install dependencies
make cluster-bootstrap # Bootstrap EKS cluster and ArgoCDmake sonarqube-up # Launch SonarQube locally via Docker
make argocd-port # Forward ArgoCD dashboard to localhost:8080make build-frontend # Build frontend image
make build-backend # Build backend image
make push-frontend # Push frontend to Docker Hub
make push-backend # Push backend to Docker Hub
make build-push-all # Build & push both imagesmake deploy # Apply manifests to EKS
make remove # Delete EdgeWave namespacemake update-kustomize # Update manifests & push changes (GitOps trigger)make switch-blue # Switch traffic to Blue deployment
make switch-green # Switch traffic to Green deploymentmake deploy-prod COLOR=blue VERSION=v1.0.0➡️ Builds images, pushes to Docker Hub, updates manifests, and triggers Argo CD sync automatically.
make verify-albChecks target group health and ensures live version is serving traffic.
make cleanRemoves unused Docker containers, images, and volumes.
- Commit to GitHub → Jenkins auto-triggers via PollSCM
- Jenkins builds, scans, pushes, and updates manifests
- Argo CD detects change → auto-syncs to EKS
- Verify running pods:
kubectl -n edgewave get pods -o wide- Access frontend via LoadBalancer:
kubectl -n edgewave get svc edgewave-frontend -o wideOpen the EXTERNAL-IP in your browser to confirm the deployed color-coded environment.
| ID | Type | Purpose |
|---|---|---|
github-ssh |
SSH Key | GitHub clone/push |
dockerhub-creds |
Username & Password | Docker Hub push |
sonar-token |
Secret Text | SonarQube integration |
| Stage | Tool | Description |
|---|---|---|
| CI | Jenkins + SonarQube | Build, scan, and push |
| GitOps | GitHub | Source of truth |
| CD | Argo CD | Auto-sync to EKS |
| Deploy | EKS | Run app with Blue/Green |
🌟 EdgeWave is now a fully automated DevSecOps + GitOps platform that builds, scans, and deploys directly to production — with a single commit.
