A universal CI/CD platform for polyglot microservices leveraging Jenkins, GitHub Actions, and Tekton to automate builds, tests, and deployments across multiple languages and frameworks.
Supports Java, Node.js, and Python microservices with seamless integration to AWS EKS & ECR.
- Multi-Language Support: Java, Node.js, Python.
- CI/CD Automation: Jenkins pipelines, GitHub Actions workflows, Tekton pipelines.
- Containerization: Docker images for all services.
- Cloud Native Deployment: Kubernetes manifests for EKS deployment.
- Scalable & Modular: Microservices architecture ready for production.
- Infrastructure as Code: Kubernetes manifests and deployment automation.
- Observability Ready: Integrates with CloudWatch, Prometheus, and other monitoring tools.
Polyglot-CICD-Platform/
├── .github/workflows/ # GitHub Actions CI/CD pipelines
├── k8s/ # Kubernetes manifests for EKS deployment
├── scripts/ # Utility scripts for automation
├── services/ # Microservice directories
│ ├── java-app/
│ ├── node-app/
│ └── python-app/
├── tekton/ # Tekton pipeline definitions
├── Dockerfile # Sample Dockerfiles for multi-service builds
├── Jenkinsfile # Jenkins pipeline configuration
├── Makefile # Build and deployment shortcuts
├── README.md # Documentation
└── LICENSE
- Docker (v20+)
- kubectl (v1.25+)
- AWS CLI (v2)
- Eksctl (v0.214+)
- Tekton CLI (
tkn) - Maven (for Java service)
- Node.js & npm (for Node service)
- Python 3.x & pip (for Python service)
-
Workflow:
.github/workflows/ci-cd-multi-microservice.yml -
Triggered on push or pull request to
mainbranch. -
Steps:
- Checkout code
- Configure AWS credentials
- Build Docker images per service
- Push images to AWS ECR
- Deploy to EKS using
kubectl apply
- Pipeline defined in
Jenkinsfile. - Supports parallel builds for all microservices.
- Deploys images to AWS ECR and updates Kubernetes manifests.
- Tekton pipelines located in
tekton/. - Modular and declarative CI/CD tasks.
- Compatible with Tekton Hub resources for shared tasks.
cd services/java-app
mvn clean package
docker build -t java-app:latest .cd services/node-app
npm install
npm test
docker build -t node-app:latest .cd services/python-app
pip install -r requirements.txt
docker build -t python-app:latest .kubectl apply -f k8s/java-app-deployment.yaml
kubectl apply -f k8s/node-app-deployment.yaml
kubectl apply -f k8s/python-app-deployment.yaml
kubectl apply -f k8s/multi-app-ingress.yaml- ECR: Stores Docker images per microservice.
- EKS: Hosts microservices using Kubernetes.
- CloudWatch / Prometheus: Observability for apps & cluster.
ECR URIs Example:
java-app: 676509179952.dkr.ecr.ap-south-1.amazonaws.com/java-app
node-app: 676509179952.dkr.ecr.ap-south-1.amazonaws.com/node-app
python-app: 676509179952.dkr.ecr.ap-south-1.amazonaws.com/python-app
tkn pipeline list— List available pipelinestkn pipelinerun start <pipeline>— Run a pipelinetkn task list— List available taskstkn taskrun describe <taskrun>— Inspect a task run
Configure
tknas akubectlplugin for seamless CLI integration.
kubectl delete deployment java-app node-app python-app
kubectl delete service java-app-service node-app-service python-app-service
kubectl delete ingress multi-app-ingressaws ecr batch-delete-image --repository-name java-app --image-ids imageTag=latest
aws ecr batch-delete-image --repository-name node-app --image-ids imageTag=latest
aws ecr batch-delete-image --repository-name python-app --image-ids imageTag=latestaws eks delete-nodegroup --cluster-name polyci-cluster --nodegroup-name <nodegroup>
aws eks wait nodegroup-deleted --cluster-name polyci-cluster --nodegroup-name <nodegroup>
aws eks delete-cluster --name polyci-clusterApache-2.0 © 2025 Debasish-87





