In my 10+ years of work life I have always been busy with work. I did learn many new things of course during my time though as the years passed a growing concern began to bubble up as I conducted interviews for my team.

People had missing bits (sometimes critical) in their knowledge of important components or tech. While this does sound normal and people of course could learn, it triggered something in me. Looking in to myself I noticed the following unacceptable flaws

  • When presented with a problem, I look for a solution, apply the fix thats just enough…

We did a cluster installation previously using kubeadm and a lot of manual work. I remember how much of a hassle it was so lets do one with bit less “hands on” and with more suffering.


In short we are going to do the following

  • Provision some servers on AWS, 3 EC2 nodes in total with 1 master, via terraform
  • Use shell scripts to run kubespray
  • Do some minor config changes

We are going to be using scripts for most of the ops and you can find them from the below repo if you are interested.

If you‘ve checked the…

So previously we created VMs and set them up for various reasons with success but also magnificent suffering. Additionally, my local k8s cluster went down for many reasons too numerous to count so I had to reinstall everything from scratch, which I hated.

So to not hate this more than necessary, good people at HashiCorp created Terraform. There are similar tools like Pulumi, CloudFormation, and even Ansible in some cases but people love Terraform so let’s have a go at it shall we (and forever use it for infrastructure creation of all sorts from now on).

So to achieve this…

If we want to use Spring components for a microservices architecture, just understanding devops components is not enough. Let’s dive into Spring a little bit.

Note: This document will be updated continuously to cover all Spring components necessary for a microservices architecture.

Spring Boot/Core and DI

First of all, I’m going to be using Intellij IDEA and the code I’m using for tests are going to be updated here:

Now lets start by creating a simple maven project with Spring Boot. Use the below bit as base, fill the next screen as whatever you want, Then choose the below components. …

So we setup a decent cluster and some usual CI/CD components before. Now lets get a pipeline running.

In a basic scenario, we could do the following;

  • Checkout our code,
  • See if critical components exist
  • Run unit tests,
  • Run through static code analysis
  • Package the app
  • Dockerize,
  • Deploy

From recent stories, we should already have a running Jenkins, with Sonar attached.

To test the pipeline, create any Spring Boot app on github, if you want you can use mine.

Now lets get it connected to github;

First we create 2 credentials in Jenkins, one for the github access, the other…

Static analysis is king in the SDLC world so let’s get a common one, Sonar, running in our pipeline.

Lets run a postgres db first. Since I’m fiddling with the k8s cluster all the time (and breaking it), looking at you angrily calico, and I’m going to be using the db for other things, I can’t risk losing data so I’m going to run sonar in my swarm.

So we have the below stack.yml. Just run in a swarm or run as compose file. Adminer is a little db interface if thats your thing.

docker stack deploy -c stack.yml postgres

So yeah, why not use Jenkins in a k8s? Lets get one up an running.

First we need to create an image with some plugins we want pre installed. Normally if we were to install to a VM with internet connection, they could be installed via the Jenkins UI.

Our Dockerfile is like follows. I went a bit overboard with the plugins but I do want to try them all out. Plugins are here

Create a file called Dockerfile with the below content. We will be using the default jenkins image as a base.

Build our image and stuff…

Now, this is something supposedly easy right?

I’m recently in the process of setting up a local CI/CD pipeline and after finishing installation of harbor, I noticed I had 150MB of disk space left. No biggy right, lets increase the disk space as it says in VirtualBox documentation;

Open Virtual Media Manager,

This is going to be a long and continuously updated story and a long overdue one.

I often ask myself why I haven’t yet experimented with the tech I use. There is no answer other than procrastination. So lets dive right in.

I decided to have a complete system, preferably migrateable, in my pc at home. But everything has to run in a cramped 16G total system so lets see what happens.

Lets run a Harbor to stuff our custom images in. Why, because we are going to run a complete CI/CD system on our cluster (without buying ram,/ maybe).

So the harbor setup details are in this link:

We need docker and docker-compose.

yum update -y
yum install docker -y
sudo curl -L -s-uname -m -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compos

Its asking to open up some ports in…

Yiğit İrez

Just a software everything fighting battles against mostly myself, and gaining small victories lately.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store