Recently (after updating my OSX to the Ventura 13.0.1), when I tried to clone a git repository I was presented with a bit of a cryptic message:

1xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Turns out you need to...

Sometimes its useful to be able to run some ephemeral containers on kubernetes cluster in order to perform some debugging (i.e. dns resolution, pinging nodes, etc).

Sadly, most of the times, it can be tricky to remember all overrides so here is a small list

Run an ephemeral shell on a random node

1kubectl run -ti...

Over and over happens to reinvent the wheel and write some specific configuration related to volume management while creating helm charts. This is due to the fact that helm chart template doesn’t create any settings relative to the persistent volumes.

To avoid doing that in the future, I am adding here a small...

Kubernetes networking

Pause container

In Kubernetes, the pause container serves as the “parent container” for all of the containers in your pod, and it has two main responsibilities:

  • it serves as the basis of Linux namespace sharing in the pod
  • with PID (process ID) namespace sharing enabled, it serves as...

As more and more businesses upgrade their legacy infrastructure and prepare for their move to the cloud. It’s helpful to have a systematic approach and estimate what must be done to achieve the objective.

Recently I’ve read an interesting article on AWS and their 7R approach


While it’s fairly “trivial” to install a stacked kubernetes cluster with kubeadm on any cloud provider or managed bare metal (where you have a certain degree of management over the networking which permits you to use bgp for example), it’s not so trivial when your nodes are situated in different network segments (clouds) and/or behind NAT.

With this guide I will try to alleviate a pain related to this kind of setup.