Looking Far Ahead: How to Plan for the Next 10 Years

Planning ten years into the future is much like driving fast on a highway. When you want to travel quickly and safely, you don’t focus on the road right in front of your car—you look far ahead, half a kilometer down the road. This distant gaze helps you anticipate curves, obstacles, and opportunities, allowing you to make better decisions in the present.

Read More

Self-Hosted GitHub Action Runner on Kubernetes

I recently set up a self-hosted GitHub Action Runner on Kubernetes using the Action Runner Controller, aiming for more control over my CI/CD pipeline. This involved configuring Kubernetes with DNS, ingress, and microk8s, and securing my private Docker registry with TLS and a custom Certificate Authority.

Create GitHub App and Secrets

On your repository, go to Developer settings and create and install a GitHub App. You will obtain the necessary details for creating a Kubernetes secret:

Read More

SSH in Visual Studio Code with KeePass

Remote SSH extension in Visual Studio Code allows you to directly edit files on a Linux machine and access the Linux console from your Windows workstation. For the best comfort when accessing a remote SSH server from Visual Studio Code, use KeePass with KeeAgent, which works as an SSH agent. Why Use KeePass and KeeAgent?

Read More

WebSocket Connection to WireGuard

In some countries (e.g. Egypt) or some hotels, VPN connections are blocked and the only possibility is to tunnel them through WebSocket. In this article, I will focus on that.

Read More

How I Used HashiCorp Vault and External Secrets Operator

When building a Kubernetes deployment for an application using MySQL, I initially considered using a ConfigMap to store my database connection details. However, I quickly ran into a problem: ConfigMaps are not designed for sensitive data like passwords, and more importantly, I was using Argo CD for GitOps.

Read More

RPI Zero Ethernet Gadget Mode

Using USB Gadget Mode on Raspberry Pi Zero for SSH/RDP Access on Windows 11

The Raspberry Pi Zero is a versatile device that can be configured to act as a USB Ethernet gadget, allowing you to connect to it via SSH or RDP over a single USB cable. This is especially useful when you want a direct network connection without additional hardware. In this article, we will guide you through setting up the Pi Zero in USB gadget mode and installing the necessary Windows 11 drivers for seamless connectivity.

Read More

Fire! Except, not at all. 🔥🚫

Titanic-do you know what made this ship unique and why it hit the iceberg? 🚢🧊 The Titanic was unique because it was huge, and if you needed to turn it, it took several kilometers. That’s why it hit the iceberg, even though the captain knew about it long before. 🛑👨‍✈️

Read More

Loki, Promtail and Syslog

On my home server, I was slowly getting annoyed that I didn’t really have an idea of what was happening in the syslog, and when an application, for example, throws an Out of memory error, I simply don’t know about it. That’s why I decided to send syslog to Promtail, which pushes it to Loki (Grafana) and processes it.

Read More

Outdated library in my scraper

Today I discovered that a container in my home Kubernetes crashed, which is responsible for downloading the price of the SP500 ETF fund, which is then taken by Prometheus and passed to my Grafana.

Read More

MicroK8s and DockerHub

If you work with Docker, you’ve surely noticed recently that DockerHub requires authentication when you download a bit more from it. In this article, I’ve decided to describe how to handle this in connection with MicroK8s.

The first thing we need to modify is the file /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml. If any subdirectory or file doesn’t exist, create it. The file should look like this:

server = "https://docker.io"

[host."https://registry-1.docker.io"]
  capabilities = ["pull", "resolve"]
  [host."https://registry-1.docker.io".auth]
    username = "YOUR_DOCKERHUB_USERNAME"
    identitytoken = "dckr_pat_TOKEN"

You need to generate a token on the DockerHub website. You can do this by clicking on Account -> Personal Access Tokens

Read More