Upgrade metallb load balancer from 0.12.x to 0.13.x

Introduction I am running a kubernetes cluster at home to have resiliences for my “homeprod”. This kubernetes cluster us using metallb to provide loadbalancing, so I can have many pods exposed as a single IP to my local network. Unfortunately the version I installed in 2022 almost a year ago is using a deprecated feature PodSecurityPolicy when I noticed this I have started to upgrade the stuff I use to newer versions that uses the new way to handle this security.
Read More…

Enable and mount cephfs with ansible

Introduction When having multiple servers you have to do the same thing on its nice with automation - luckily you dont have to invent the wheel yourself. I decided to use ansible to enable cephfs on all my kubernetes nodes. This is a simple playbook that can be used by others if required. Assumptions To use the playbook verbatim you have to have a working ceph.conf and a working keyring for your user located in the same directoy as the ansible play book.
Read More…

Using cephfs with kubernetes

Introduction When having a kubernetes cluster running like I do, it is also nice to have a scalable and resilient filesystem where your nodes can share configuration files or other read only data. Previously I had my cluster pods mount a nfs share inside the pods, but since this is a single point of failure I wanted to move to a distributed filesystem and since I recently installed a ceph cluster for VM storage I decided to also leverage the cephfs filesystem instead of NFS.
Read More…

.NET ZFS REST API

Introduction ZFS is a highly scalable and resilient filesystem and many people use it as part of NAS systems like TrueNAS, napp-it and many others. These NAS systems usually have a UI to manage ZFS and thats great - but if you want to install ZFS on a linux server and do not want a full blown NAS solution, then it gets tricky, since you cannot just install a UI to manage your ZFS installation.
Read More…

How to use [InternalsVisibleTo] attribute in .NET SDK projects

Introduction Often you want to test internal methods of a class library you are using - this could be because you have internal helper methods that you would like to test in isolation, i.e. proper unit tests. Before .NET SDK project type was introduced the way to do this was to add a line to the AssemblyInfo.cs file: [assembly: System.Runtime.CompilerServices.InternalsVisibleToAttribute("MyLibrary.Tests")] This would allow your MyLibrary.Tests project to see and access internal methods/properties etc.
Read More…

dnsmasq PXE Server setup on Rocky Linux 8.5

Introduction When installing many machines - that being bare-metal or virtual machines - automation comes to mind - and to that PXE booting and installing via the network is awesome. This requires that you have a PXE server configured and configuration files on that server that tells clients how to install. I am using dnsmasq, which is an awesome piece of software that also is running as a DHCP server on my network.
Read More…

.NET decimal serialization with protobuf

Introduction When working with .NET and financial data, then its very common that the decimal type is used, since it is precise and does not lose information when you do calculations. i.e. take the following code: var x = 3.999999999999999d; Console.WriteLine(x); var result = x+x; Console.WriteLine(result); You would assume the result would be 7.999999999999998 - but in fact it will print out 4 - which for all intends and purposes is okay for most usages - but if you require precision on all decimal places, double is not good enough because the datatype cannot represent the precision correctly.
Read More…

Script to migrate VMWare ESXi Virtual machine to Proxmox VE 7.1

Introduction Migrating virtual machines between platforms can be a pain in the ass to put it mildly. I have recently decided to migrate from ESXi to Proxmox VE, simply because it allows me downscale my lab from several “BIG” machines into a single machine. When converting a lot of VM’s from ESXi to Proxmox VE I basically had to write the same commands over and over in the same sequence.
Read More…

Backing up proxmox backup with rsync and rclone

Introduction I recently started using proxmox in my homelab instead of using VMWare ESXi - this lead me to Proxmox Backup Server since it allows delta backups like my previous backup solution for ESXi. With my old backup solution I backed up my “backup” to the cloud to my provider rsync which simplied is just a ssh connection where they have enabled certain programs to run and the underlying storage they use is ZFS.
Read More…

Configure static ip address on Debian/Ubuntu/Centos/Rocky Linux

Introduction When installing linux usually the installation defaults to DHCP for networking, which is perfectly fine if you are running a desktop machine. But if you install on a server you expect to have consistent addressing in place so it is possible to set up a name server and point a hostname towards your servers ip-address. This can be solved in several ways: Static IP DHCP with dynamic update of DNS Server DHCP assigned address that is fixed to the MAC Address of the network card This post will only be about setting up a static ip address, since that is the easiest solution and probably the solution that most people would want to use.
Read More…