This Pipeline build Java application spring-petclinic
and deploy it into Kubernetes cluster.
- Docker: container engine
- Jenkins: CI/CD tool
- Maven: build automation tool (Java)
- Terraform: infrastructure provision tool
- Ansible: infrastructure configuration tool
- Kubernetes: container orchestration tool
- Jenkins server with Ansible on board
- Kubernetes cluster (kubeadm)
- Infrastructure is made by Terraform in a simple manner (branch
classic-simple
) and in the form of modules (branchmain
) - All infrastructure (
IaC/
) is started with one single command (Terraform and Ansible) - Dynamic inventory (plugin) is used
- Pipeline has parameters and groovy script
Jenkins server with Ansible (onboard) run the Pipeline and deploy the app into Kubernetes cluster.
Project consists of two parts:
- Jenkins Pipeline
Jenkinsfile
groovy.script
Dockerfile
deploy_to_kubernetes.yml
- Infrastructure as a Code (
IaC/
folder)infra-default
- infrastructure with default network
infra-network
- infrastructure with own network: VPC, subnet, gateway, route table, etc.
Show Parameters
Build App
Build Docker Image
Push Docker Image
Deploy to Kubernetes
Pipeline
GitHub
GitHub Branch Source
Docker
Docker Pipeline
Blue Ocean