Sailing across seas of free software

Streamlining development VM management

As developers, we constantly seek ways to automate repetitive tasks, such as configuring development environments on our workstations. In the past, we discussed easy and rapid solutions for deploying Kubernetes clusters. This time, I found a similar challenge but with hardware virtualization. What happens when we need to use a virtual machine instead of a container? The process becomes more tedious. We find ourselves downloading ISO installation images, installing the operating system, and configuring it manually.

Create your first Kubernetes operator

Ahoy there, fellow Kubernetes administrators! It is undeniable that the success of Kubernetes has taken the tech world by storm. And do you know what’s even better than mastering Kubernetes management? Of course! It’s learning how to extend it. That’s why I’m excited to share with you a fantastic course. It will help you to gain a deeper understanding of Kubernetes architecture and learn how to create our own Kubernetes operator.

Get the latest release tag from a Github repository

Sometimes I needed to programmatically get the tag name of the latest release from a GitHub repository. It’s often useful for automating tasks through scripts or for creating installer CLIs. The GitHub public API provides this information, so you’ll get it using your shell. Define the repository in the REPO environment variable. This way it will be easier for you to try other repositories later. REPO='kubernetes/kubernetes' Now use curl to issue a request to the GitHub REST API.

Local Kubernetes for devs

These days I’m learning how to develop Kubernetes operators in Go. Although I had developed programs in Go before, I never did that to extend Kubernetes. For this, a running cluster is required. So, I needed a Kubernetes cluster. The best option for this was to create a local one. Using a local Kubernetes cluster as development environment saves costs and reduces workload and time. Fortunately I have experience managing single node clusters with different distros.


Arr, mateys! In 2014, I was lucky enough to move to Colombia. My initial plan was to stay for a few months, but in the end, I stayed until late 2019. It was an amazing experience, one of the experiences with more libre software in my life. When I came back to Europe, I was looking forward to attending FOSDEM, but Covid hit us, and there was no in-person event. The same thing happened in 2021.

Minikube installation in Ubuntu

Minikube is a tool to run Kubernetes locally as a single-node cluster, which is very useful for learning and developing. A regular Kubernetes installation needs at least three hosts. The first one will be the Kubernetes Master, the cluster manager. The rest will be Kubernetes Nodes, which are responsible for running the workloads. Installing kubectl There is a tool called kubectl for managing Kubernetes clusters. We will install it before, and Minikube installation process will configure it correctly.

Course completed: GCP Fundamentals: Core Infrastructure

In a previous post, I talked about my intention to learn about Google Cloud Platform, and thanks to Globant, I had the opportunity to enroll in the GCP Partners Learning Program. Today I completed the Google Cloud Platform Fundamentals: Core Infrastructure course, the first one I did on the platform, so I wish to share with you my achievement and also some thoughts about it. It’s a great training system that takes place in Coursera, it’s seamlessly integrated with Qwiklabs, giving an interactive training experience based on video lessons and hands-on labs.

Install Alfa AWUS036ACH on Ubuntu 18.04

Alfa AWUS036ACH is an external WiFi adapter with a USB 3.0 interface. Its most remarkable features are the high power it has and its ability to inject packets. It’s a great device for security tests on wireless networks. I wonder if this device has out of the box support with package injection in the latest kernels, but on Ubuntu 18.04 it’s necessary to install the driver, as it is not recognized by default.

Install multiple versions of Golang on Ubuntu

The Go language, better known as Golang, is a programming language that’s gaining a lot of popularity lately. My friend Brayan Bautista showed me his interest in this language, which ignited my curiosity. As well-known innovative projects such as Docker or Kubernetes use this language, I felt it would be useful for developing my career in DevOps engineering. That’s one of the reasons why I use Hugo for this blog.

Course completed: Go Programming

Today I finished the Go Programming by Example (Golang) course. Instructor Kam Hojati did a great job preparing the videos with lots of examples. In addition to teaching language usage through programming examples, he also shows implementations of some popular algorithms such as Fibonacci sequence calculation or how to search for repeated characters. The course ends with a final exercise that covers almost all the previous lessons. I felt the course as long and tedious, the previous one about Java had more fun, but I think it’s a worthwhile effort, and you learn a lot.