Feb 20
Expose native k8s services using Cloudflared
Prerequisites Kubernetes cluster kubectl configured Domain and a Cloudflare account Homebrew (for macOS users) Steps Install Cloudflared brew install cloudflared Log in to your Cloudflare account cloudflared tunnel login Note: if you have multiple domains, you might have to select the one you want the tunnel to be created on
Create a tunnel cloudflared tunnel create <your-tunnel-name> # …
more
Feb 11
Kubernetes services over BGP with Metallb and pfSense
Setting up a load balancer in a homelab is essential if you intend to expose your services internally or externally. While it’s worth noting that you don’t necessarily need a load balancer and could expose native Kubernetes services using tools like Cloudflare, that’s a topic for another blog post. However, having a load balancer becomes necessary if you’re tinkering with …
more
Jan 28
Kubernetes Gateway API with Contour
This guide walks you through installing the Gateway API CRDs, deploying Contour using Helm with the Gateway API enabled, creating a GatewayClass, updating the Contour ConfigMap, and restarting the Contour deployment.
Prerequisites: A Kubernetes cluster. kubectl installed and configured to connect to your cluster. Helm installed. Steps Install Gateway API CRDs kubectl apply -f …
more
2022
Jun 1
Kubernetes on Debian 11 (Bullseye)
I took Kubernetes 1.24 for a spin, which has dockershim removed. I wished to install it on Debian 11 using kubeadm, and here are the issues that I had to tackle to get it working.
Disable swap If it’s a fresh install of Debian, during installation, disable the swap partition completely. Even with a swap partition disabled, the system still creates a swap file. Use the following command to disable …
more
Jan 5
Configuring Docker on Synology NAS (DSM 7.x)
I bought a Synology NAS DS218+ about a couple of years ago. Since I’ve been using it as a transient store for all media files before it uploads to the cloud for permanent storage. I was looking to utilise it more, rather than a glorified cache, but memory limitation was a bummer. DS218+ comes with 2GB of built-in memory and is user-upgradable to a max of 10GB by adding a second 8GB DIMM.
more
2021
Dec 20
VS Code: managing extensions across machines
Do you use VS Code for editing or developing code? Do you use VS Code across multiple machines? Do you like to have extensions across multiple environments the same? If you answered yes to all questions, then here is the solution.
Enable Command Line Tool to access VS Code from the command line (see below). Do this both on the source and target machines.
Executes the following command on the …
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Feb 11
Kubernetes services over BGP with Metallb and pfSense
Setting up a load balancer in a homelab is essential if you intend to expose your services internally or externally. While it’s worth noting that you don’t necessarily need a load balancer and could expose native Kubernetes services using tools like Cloudflare, that’s a topic for another blog post. However, having a load balancer becomes necessary if you’re tinkering with …
more
Jan 28
Kubernetes Gateway API with Contour
This guide walks you through installing the Gateway API CRDs, deploying Contour using Helm with the Gateway API enabled, creating a GatewayClass, updating the Contour ConfigMap, and restarting the Contour deployment.
Prerequisites: A Kubernetes cluster. kubectl installed and configured to connect to your cluster. Helm installed. Steps Install Gateway API CRDs kubectl apply -f …
more
2022
Jun 1
Kubernetes on Debian 11 (Bullseye)
I took Kubernetes 1.24 for a spin, which has dockershim removed. I wished to install it on Debian 11 using kubeadm, and here are the issues that I had to tackle to get it working.
Disable swap If it’s a fresh install of Debian, during installation, disable the swap partition completely. Even with a swap partition disabled, the system still creates a swap file. Use the following command to disable …
more
Jan 5
Configuring Docker on Synology NAS (DSM 7.x)
I bought a Synology NAS DS218+ about a couple of years ago. Since I’ve been using it as a transient store for all media files before it uploads to the cloud for permanent storage. I was looking to utilise it more, rather than a glorified cache, but memory limitation was a bummer. DS218+ comes with 2GB of built-in memory and is user-upgradable to a max of 10GB by adding a second 8GB DIMM.
more
2021
Dec 20
VS Code: managing extensions across machines
Do you use VS Code for editing or developing code? Do you use VS Code across multiple machines? Do you like to have extensions across multiple environments the same? If you answered yes to all questions, then here is the solution.
Enable Command Line Tool to access VS Code from the command line (see below). Do this both on the source and target machines.
Executes the following command on the …
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Jan 28
Kubernetes Gateway API with Contour
This guide walks you through installing the Gateway API CRDs, deploying Contour using Helm with the Gateway API enabled, creating a GatewayClass, updating the Contour ConfigMap, and restarting the Contour deployment.
Prerequisites: A Kubernetes cluster. kubectl installed and configured to connect to your cluster. Helm installed. Steps Install Gateway API CRDs kubectl apply -f …
more
2022
Jun 1
Kubernetes on Debian 11 (Bullseye)
I took Kubernetes 1.24 for a spin, which has dockershim removed. I wished to install it on Debian 11 using kubeadm, and here are the issues that I had to tackle to get it working.
Disable swap If it’s a fresh install of Debian, during installation, disable the swap partition completely. Even with a swap partition disabled, the system still creates a swap file. Use the following command to disable …
more
Jan 5
Configuring Docker on Synology NAS (DSM 7.x)
I bought a Synology NAS DS218+ about a couple of years ago. Since I’ve been using it as a transient store for all media files before it uploads to the cloud for permanent storage. I was looking to utilise it more, rather than a glorified cache, but memory limitation was a bummer. DS218+ comes with 2GB of built-in memory and is user-upgradable to a max of 10GB by adding a second 8GB DIMM.
more
2021
Dec 20
VS Code: managing extensions across machines
Do you use VS Code for editing or developing code? Do you use VS Code across multiple machines? Do you like to have extensions across multiple environments the same? If you answered yes to all questions, then here is the solution.
Enable Command Line Tool to access VS Code from the command line (see below). Do this both on the source and target machines.
Executes the following command on the …
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Jun 1
Kubernetes on Debian 11 (Bullseye)
I took Kubernetes 1.24 for a spin, which has dockershim removed. I wished to install it on Debian 11 using kubeadm, and here are the issues that I had to tackle to get it working.
Disable swap If it’s a fresh install of Debian, during installation, disable the swap partition completely. Even with a swap partition disabled, the system still creates a swap file. Use the following command to disable …
more
Jan 5
Configuring Docker on Synology NAS (DSM 7.x)
I bought a Synology NAS DS218+ about a couple of years ago. Since I’ve been using it as a transient store for all media files before it uploads to the cloud for permanent storage. I was looking to utilise it more, rather than a glorified cache, but memory limitation was a bummer. DS218+ comes with 2GB of built-in memory and is user-upgradable to a max of 10GB by adding a second 8GB DIMM.
more
2021
Dec 20
VS Code: managing extensions across machines
Do you use VS Code for editing or developing code? Do you use VS Code across multiple machines? Do you like to have extensions across multiple environments the same? If you answered yes to all questions, then here is the solution.
Enable Command Line Tool to access VS Code from the command line (see below). Do this both on the source and target machines.
Executes the following command on the …
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Jan 5
Configuring Docker on Synology NAS (DSM 7.x)
I bought a Synology NAS DS218+ about a couple of years ago. Since I’ve been using it as a transient store for all media files before it uploads to the cloud for permanent storage. I was looking to utilise it more, rather than a glorified cache, but memory limitation was a bummer. DS218+ comes with 2GB of built-in memory and is user-upgradable to a max of 10GB by adding a second 8GB DIMM.
more
2021
Dec 20
VS Code: managing extensions across machines
Do you use VS Code for editing or developing code? Do you use VS Code across multiple machines? Do you like to have extensions across multiple environments the same? If you answered yes to all questions, then here is the solution.
Enable Command Line Tool to access VS Code from the command line (see below). Do this both on the source and target machines.
Executes the following command on the …
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Dec 20
VS Code: managing extensions across machines
Do you use VS Code for editing or developing code? Do you use VS Code across multiple machines? Do you like to have extensions across multiple environments the same? If you answered yes to all questions, then here is the solution.
Enable Command Line Tool to access VS Code from the command line (see below). Do this both on the source and target machines.
Executes the following command on the …
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Oct 28
Setting up Kubernetes for local development using k3d and Docker
Kubernetes has become the de facto choice for running workloads for most microservices. Hence, keeping parity with production, it’s wise to use Kubernetes for local development. This article uses k3d distributions of Kubernetes since it’s lightweight and runs on Docker. If you are confident running Kubernetes, there are other options like minikube and Docker Desktop.
I initially wrote this article …
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Feb 21
Cross-compiling Rust using Docker
If you are reading this blog, you are probably looking for ways to cross-compile Rust into another target platform other than the one you are coding on. If you are, then you are in for a slice of my take on how I have achieved it.
A solution, as you may have probably guessed from the title, is to use Docker. I start up a local Docker container with all the necessary tools and cross-build …
more
2018
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Sep 30
Journey to OCMJEA (SCEA)
A desire to achieve this Architect certification started sometime around 2007 when I started to pursue Sun Certified Java Programmer 5.0 (SCJP). Those days on the Sun site, they had this certification path that showed three layers, the bottom one being the SCJP and the middle tier with SCJD, SCWCD, SCBCD and the top tier being SCEA. I remember saying to myself What would it take to get there, …
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
Sep 27
Blogging Reignited
This is the third (re)launch of my blog site, and hopefully will make enough time this time to pin my thoughts often. I started to write about my experience back in 2010 on blogger.com. I got onto Blogger as I was using Google services a lot. A few years down the line, WordPress appealed as it was easier to write and format, as it offered a better WYSIWYG editor compared to Blogger.
more
© Nataraj Basappa 2025
more
© Nataraj Basappa 2025