As users of systemd, it is a fairly common to use systemctl to interact with the system manager. But what if you’re writing code and you want to programmatically interact with units and services? O...
Creating a Python package for Ubuntu... From code zero to apt install
Some of the work I am doing right now has me creating packages that should be distributed to Ubuntu Linux machines. For those of us that aren’t new to the Linux world, it is a normal thing to apt i...
Kubernetes’ AlwaysPullImages Admission Control - the Importance, Implementation, and Security Vulnerability in its Absence
Kubernetes is big and only getting bigger. What this means is that as adoption is on the rise, the natural progression is more Kubernetes clusters thrust into production. Oftentimes security is an ...
Extending Kubernetes - Create Controllers for Core and Custom Resources
Kubernetes is powerful and ships with a lot of out-of-the-box functionality. But as we start to think of new ways to use Kubernetes, we may want to have the ability to create our very own “Kubernet...
Logging to systemd in Python
One of the common themes in modern Linux is the adoption of systemd. Like it or hate it, it is here to stay. The main component of logging in systemd is the Journal, controlled by journald. Linux ...
Get the History of an Installed Package with DNF
DNF (“DaNdiFied Yum”) is the next version of Yum, the package manager for RPM-based Linux distributions (RHEL, CentOS, and Fedora). For those of us that are Fedora users, DNF is probably nothing ne...
Logging, Flask, and Gunicorn... the Manageable Way
Logging is one topic that some (many?) find boring. But something we can all agree on is that it is absolutely vital to software development and operations. Beginners to Flask (a lightweight but po...
Debugging a Python Flask Application in a Container with Docker Compose
Writing and debugging Python applications by themselves isn’t hard: Just kick it off with pdb and you’re in the debugger. But when you start adding layers on top of it like Flask (web framework), ...
SSH Through a Jumpbox to a Protected Server
This is a common pattern: You have a protected server (or servers) that aren’t publicly accessible. Typically, you may have what is commonly referred to as a “jumpbox”, which is accessible from a p...
Monitor, Log, and Alert CPU Throttling from Overheating on Linux
I’ve been recently dealing with an overheating issue on my Linux machine (Lenovo T420s). Completely perplexed on what was causing it (it wasn’t constant and happened with many different variables a...