This project demonstrates a fully automated CI/CD pipeline using Jenkins, Terraform, and Google Cloud Platform (GCP). It is designed to streamline the deployment process while ensuring reliability and scalability.
- Terraform: Infrastructure as Code (IaC) for provisioning cloud resources.
- Jenkins: Automating build, test, and deployment processes.
- Docker: Containerization of applications for portability.
- Google Kubernetes Engine (GKE): Orchestrating containerized workloads.
- Google Artifact Registry: Storing and managing Docker images.
Before running Terraform, enable the necessary APIs:
gcloud services enable container.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
Ensure Terraform is installed and authenticated with GCP. Then, deploy the infrastructure:
terraform init
terraform apply -auto-approve
- Install the following Jenkins plugins:
- Blue Ocean (for modern UI and pipeline visualization)
- Terraform (to integrate with Terraform)
- Docker (to build and push images)
- Authenticate Jenkins with GCP to push Docker images:
gcloud auth configure-docker asia-southeast1-docker.pkg.dev
The Jenkinsfile defines the complete CI/CD pipeline, including:
- Code Checkout: Fetching source code from version control.
- Build & Test: Running unit tests and security scans.
- Containerization: Building Docker images.
- Artifact Management: Pushing images to Google Artifact Registry.
- Deployment: Deploying to GKE.
✔️ Infrastructure as Code (IaC) with Terraform
✔️ Automated deployments with Jenkins
✔️ Managing containerized applications on GKE
✔️ Secure artifact storage with Google Artifact Registry
✔️ End-to-end CI/CD implementation