DevOps Deployment Pipeline
This module documents the deployment pipeline for Java applications built with JHipster and Spring Boot. The pipeline uses GitHub Actions for CI/CD, Helm for Kubernetes packaging, and ArgoCD for GitOps-based deployment.
Architecture Overview
The deployment pipeline follows a GitOps model:
Source Code (GitHub)
│
├── develop push ──► CI ──► Docker Image ──► Helm Chart ──► ArgoCD update ──► Dev deployment
│ (chart-version + build-sha)
│
└── main push ─────► CI ──► Docker Image ──► Helm Chart ──► ArgoCD update ──► Stage deployment
(chart-version only)
│
ArgoCD (prod) ◄───┘ (manual chart version update)
Key Components
- GitHub Actions
-
CI/CD workflows that build, test, package, and publish artifacts. Reusable workflows are defined in the
christhonie/eventrepository (the parent POM). - Docker Hub
-
OCI registry hosting both Docker images and Helm charts under the
christhonie/namespace. - Helm
-
Kubernetes packaging. Each service has a Helm chart embedded in
src/main/helm/and built via thehelm-maven-plugin. - ArgoCD
-
GitOps controller that watches a dedicated Git repository (
christhonie/idl-xnl-jhb-rc01) for Application manifests. Each environment is a separate YAML manifest.
Next Steps
-
GitHub Actions CI/CD — Workflow structure and reusable workflows
-
Helm Configuration — Chart structure, Maven plugin, and OCI registry
-
ArgoCD Deployment — Application manifests and GitOps patterns
-
Setting Up a New Service — Step-by-step guide for onboarding a new Java service