Articles
A complete CI/CD and logging platform on EKS — Jenkins and ELK
A project I built to show what the three things that hold modern infrastructure together — automation, visibility and scaling — look like when they work as one platform on Kubernetes rather than three separate tools.
What is in the platform
- Jenkins on Kubernetes — a master with dynamic agents that start on demand and shut down after the build.
- A full pipeline — clone, build, test, and ship the logs onward for analysis.
- An ELK stack — Elasticsearch, Logstash and Kibana for log collection and search.
- Proper networking — VPC, public and private subnets, security groups.
- Minimal exposure — only Jenkins and Kibana are reachable through load balancers; everything else stays internal.
How it is built
Infrastructure as code
Terraform provisions the VPC, subnets, the EKS cluster, IAM, Jenkins and the load balancers. The same code brings up a new environment from scratch, which is the difference between a platform and a server somebody once set up.
Deployment
Helm deploys Jenkins, and Terraform drives Helm, so there is no manual step in the middle. The ELK stack is deployed with Kubernetes manifests into its own namespace.
Namespace separation
Two namespaces: jenkins and elk. That separation sounds trivial until you need to restrict permissions, set resource quotas, or delete one environment without touching the other.
The log pipeline
Jenkins ships logs through the Logstash plugin to an in-cluster Logstash, which forwards them to Elasticsearch, and Kibana visualises them. The result: instead of opening build after build in the Jenkins UI, you search free text across every build.
What I took from it
- Observability belongs in from the start. Adding logging after a system is running is always a project of its own.
- Dynamic agents change the economics. An agent that exists only during a build saves more than any other pipeline optimization.
- Terraform and Helm together give a repeatable process — which is what makes it a platform rather than a one-off installation.
- Minimal exposure is an architectural decision, not a setting applied at the end.
The code
The full code and deployment guide are onGitHub(the k8-jenkins-kibana-project repository), including a README with the deployment steps.
A shorter version first appearedon LinkedIn.
Keep reading
- Kubernetes and GitOps — how this looks in production with Argo CD.
- DevOps and CI/CD — the same principles as a service.
- ECS or EKS — whether you need a cluster at all.
Want the same for your cloud?
A short call, then a written plan with a cost estimate and a fixed scope. No obligation.