Typical scenario: your team maintains dozens of Jenkinsfile/.gitlab-ci.yml/whatever, each one specific to the needs of its projects. You have tried to reuse these continuous integration scripts from one repo to another. But that is hard because each project has its own tech stack, versions, dependencies to other tools, etc.

There is more, you dream of being able to test your CI pipeline locally, instead of debugging in the CI server.

Am I right? Then, multistage docker builds are meant for you.

This technique has been around for years, but users usually don’t realize its full potential.

The idea is simple…


  1. Monitor excessive resource requests with Prometheus
  2. Working hours autoscaling
  3. Nodes autoscaling
  4. Horizontal pod autoscaling
  5. Vertical pod autoscaling

Extra: More tips for reducing costs on cloud

Image from Dan Garfield

Hi! Today I want to share how I achieved a great cost reduction in my cluster just by using the tools above.

This article describes many open source projects, but this is not intended to be a detailed guide. The focus is on setting up them quickly to taste every project.

I know open source can be hard to be approached, so I will include all necessary piece of code to deploy these projects, as…


Today we are exploring an alternative dashboard for Kubernetes. It is less focused on drawing cluster and workloads status, but its main purpose is to ease bearing with all these large YAML files that compose our clusters.

First of all, kudos to smp.io for creating this (and many others) awesome tool.

Quick links

Kubernator UI

Kubernator shows in a clean, code-focused UI all objects in your cluster, including custom resource definitions (CRDs). They are classified by namespace and object type. In the editing area, you can edit YAML code, delete the object and also create a new one. …


A Prometheus exporter for the AWS Cost Explorer API, to monitor current daily expenses.

Recently, as I think every cloud admin on Earth has, I overused an AWS service thinking the operation was free of charge 😮 (summarizing, assigning an elastic IP to the same instance it is already assigned, it has a cost ).

When I realized just said to myself: this won’t happen again, I will set alerts on CloudWatch! Nice try, CloudWatch only implements a metric for predicted monthly spending. …


With this article I would like to start a series of posts with the aim of introducing Kubernetes open source tools in under 3 min. The ecosystem around K8S is becoming more and more complex and it is quite difficult to follow the trail of great projects that arise everyday.

That is not an excuse anymore! In every post I will provide a Helm chart to automatically deploy the tool in the cluster (either mine or from another author), and a brief guide to kickstart the adoption of the tool.

I have got only 3 minutes so let’s start with…


A good microservices platform always let developers deploy services in a declarative way with freedom, including every single aspect about the deployment.

Kubernetes, Helm, etc. help with that, but usually there are further systems that need to be configured (logging, monitoring, backups, etc).

In this post I explain how I handle logging customization by using Kubernetes annotations, gaining freedom for developers to parse logs.

The code of this post is available in GitHub. The repo contains a docker image for fluentd (it includes just fluentd and some plugins) and a helm chart to deploy the DaemonSet. Fluentd configuration is passed…

Ignacio Millán

DevOps, SRE Freelancer. In the intersection of business operations and tech. Fan of #containers #K8S #cloud #data-analytics

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