How rscrafted/springboot-jenkins-k8s-automation works
This repository demonstrates a Jenkins-to-Kubernetes delivery pipeline for a Spring Boot inventory service. The documented flow starts with a developer commit, then builds and packages the app, creates and publishes a Docker image, and deploys it to a cluster. At runtime, clients request inventory data from the service, which returns a fixed list of products. The graph also includes the documented health endpoint and Helm deployment capability. Pipeline wiring is based on the README; Jenkinsfile and manifest internals were not sampled.
Main entry points: InventoryController.java Inventory Endpoint · Jenkinsfile Jenkins Pipeline · service.yaml NodePort Service · Dockerfile Build Image
Components 16
CI/CD Pipeline
- Jenkins Pipeline
Jenkinsfile - Compile and Test
pom.xml - Package Application
pom.xml
Image Distribution
- Build Image
Dockerfile - Docker Hub
Inventory Service
- Spring Boot App
src/main/java/com/rsinventory/Application.java - Inventory Endpoint
src/main/java/com/rsinventory/InventoryController.java - Product Model
src/main/java/com/rsinventory/Product.java - Inventory Response
- Health Endpoint
src/main/resources/application.properties
Cluster Deployment
- Kubernetes Cluster
- App Deployment
k8s/deployment.yaml - NodePort Service
k8s/service.yaml - Helm Release
helm/rs-inventory-app
Other components
- Developer
- API Client
Connections 17
- Developer → Jenkins Pipeline: commits to
- Jenkins Pipeline → Compile and Test: runs
- Jenkins Pipeline → Package Application: runs
- Jenkins Pipeline → Build Image: builds
- Build Image → Docker Hub: pushes image
- Jenkins Pipeline → Kubernetes Cluster: applies manifests
- Docker Hub → App Deployment: provides image
- App Deployment → Kubernetes Cluster: deploys to
- NodePort Service → Kubernetes Cluster: exposes app
- Helm Release → Kubernetes Cluster: deploys release
- Spring Boot App → Inventory Endpoint: starts
- Inventory Endpoint → Product Model: creates
- Inventory Endpoint → Inventory Response: returns
- API Client → NodePort Service: requests
- NodePort Service → Inventory Endpoint: routes to
- Inventory Endpoint → Health Endpoint: serves health
- Inventory Endpoint → API Client: returns response