LXC and the mystery of lost memory

In my homelab I use LXD/LXC quite a bit. Linux containers provide pretty decent alternative to full blown virtualization with smaller overhead and some extra perks like easier local filesystem access. All things considered, I’ve been happy with LXD for many years.

However there are places where the illusion of completely separated virtual machines shows some cracks when you look close enough. This is a story of one such crack that was haunting me for months.

Docker in WSL2 (the right way ++)

This is an extension of very helpful article Running Docker on WSL2 without Docker Desktop (the right way) by Felipe Santos. My post attempts to go further and solve a very specific issue within WSL - the absence of nftables support. This is something you might not encounter unless you start running docker in docker or attempt to run docker images that rely on nftables support in some way.

I tend to use Molecule quite heavily and I often end up using docker to emulate actual full blown linux systems or kubernetes cluster in a container, which is where the absence of some kernel features shows up.

2022-02-18 00:00 Miroslav Prasil

VFIO GPU pass-through on Dell R710

There’s a plenty of articles out there on VFIO GPU pass through out there, so I’ll skip many of those details here to let us focus on stuff that’s somewhat specific to Dell R711.

Before we get to the nitty gritty details of the whole setup, just a short warning: If the GPU pass through is the only use case you want to cover, starting with Dell R710 is absolutely not the way to do it.

Here’s why:

2020-03-05 00:00 Miroslav Prasil

Gitlab-CI include: from private repository

Note: The native support for including files from other non-public repositories was added in Gitlab 11.7, so this workaround is no longer needed.

Gitlab added new include statement for the CE edition of their product with the 11.4.0 release, which is great news. However there's this one minor thing mentioned in the documentation:

Note: The remote file must be publicly accessible through a simple GET request, as we don't support authentication schemas in the remote URL.

This makes it a little bit tricky to use the functionality if you want to fetch the file from private repository. Here's how I got it working. (TL/DR at the end)

Read more…

2018-10-24 00:00 Miroslav Prasil ,

I've tested virtual address providers, so you don't have to


The sad fact about online shopping in Ireland is, that many sellers will ship to UK only. It often makes very little sense as they'll happily ship the parcel across Europe to northern Ireland just fine, but that's the status for now.

Personally, I'm trying to avoid such sellers to sort of vote with my wallet, but sometimes UK-only seller is the only option or the price difference is just way too big. Fortunately we now have couple services available that can give us "virtual" address in UK and then forward any received packages to Ireland.

I've been trying them out over the years and here's some comparison of Parcel Motel, Parcel Wizard and AddressPal.

Read more…

Running Kubernetes cluster with docker-compose for fun (and profit)

This could've been called "Learning Kubernetes the hard way", because that's basically what I was trying to achieve here. It wasn't so much about learning how to use Kubernetes via its ingenious API as it was about learning about its individual components. If you want to just run Kubernetes locally, there's Minikube, that will give you nice VM with everything already set up.

What I've wanted to achieve is to have a set of components, all nicely isolated with a well defined connection between each other so I can add them, remove them and break the connections and see how this affects the cluster. To put it simply I was interested in Ops side of running Kubernetes. This is why I took Hyperkube and mixed it with docker-compose and tried to stand up Kubernetes "from scratch".

Let's get started..

Read more…

[Part 4] NAScrate files and final thoughts

So our build is now done. I'm still thinking about making some improvements, like a proper ports panel or some air circulation control, but it's already very usable NAS box. The only missing part is installing something like freeNAS or some other user friendly NAS OS, but there's a ton of howtos out there, so I'm not going to create another one.

Feel like building your own NAScrate? Here are all the files you'll need.

Read more…

[Part 3] Building NAScrate

Finally there

I pinky swear it doesn't take 4 months to build the NAScrate. I actually had it done and dusted in couple weeks - most spent waiting for the components with couple evenings spent with Onshape trying to figure out how to fit everything in a small crate. I just didn't have enough time to properly document it, hence the delay in updates.

This last step only took couple hours at most - and that's including re-designing and re-printing some of the parts. Building next one with all the parts ready is 30 minute job easily. So let's give it a go.

Read more…

[Part 2] NAScrate design


Is this even feasible? There's one way to find out! Well.. there's probably more than one way, but here's what I did. First thing I tried was to model and print rough miniature models of all the components I need to fit inside the case. (which I've printed as well) This gave me general idea, how to put the components in, but it's not accurate enough to see if we have enough free space around the components to actually fit in mounting brackets and all that other stuff. As we'll see later on, in reality there's just few millimeters gap between the components, so anything in the 1:10 scale just isn't going to be accurate enough.

Read more…