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/event repository (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 the helm-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.

Repositories

Repository Purpose

christhonie/event

Parent POM and reusable GitHub Actions workflows

christhonie/idl-xnl-jhb-rc01

ArgoCD Application manifests (one per service per environment)

Service repos (e.g. christhonie/event-admin-service)

Application source code, Helm charts, and CI workflows

Environments

Environment Namespace Trigger

Dev

event-dev

Push to develop branch

Stage

event-stage

Push to main branch

Prod

event-prod

Manual Helm chart version update in ArgoCD manifest

Next Steps