<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Homelab on Gerard Samuel</title><link>https://gerardsamuel.me/categories/homelab/</link><description>Recent content in Homelab on Gerard Samuel</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 06 Feb 2025 11:17:51 -0500</lastBuildDate><atom:link href="https://gerardsamuel.me/categories/homelab/index.xml" rel="self" type="application/rss+xml"/><item><title>Securing Cilium's Gateway Api with cert-manager</title><link>https://gerardsamuel.me/posts/how-to-secure-cilium-gateway-api-with-cert-manager/</link><pubDate>Thu, 06 Feb 2025 11:17:51 -0500</pubDate><guid>https://gerardsamuel.me/posts/how-to-secure-cilium-gateway-api-with-cert-manager/</guid><description>&lt;p&gt;In my Hashicorp &lt;a href="https://www.nomadproject.io/" target="_blank" rel="noreferrer"&gt;Nomad&lt;/a&gt; cluster, I am using &lt;a href="https://traefik.io/traefik/" target="_blank" rel="noreferrer"&gt;Traefik&lt;/a&gt; to proxy external connections to the running containers, and Traefik also terminates TLS connections. While it is perfectly okay to duplicate this role in Kubernetes, I decided to go another route and leverage Gateway API as the reverse proxy. To build upon my existing work with &lt;a href="https://gerardsamuel.me/posts/howto-setup-kubernetes-cilium-bgp-with-unifi-v4.1-router/" &gt;Gateway API&lt;/a&gt;, let me set up an HTTP/HTTPS proxy with redirection using Gateway API and secure it with &lt;a href="https://cert-manager.io/" target="_blank" rel="noreferrer"&gt;cert-manager&lt;/a&gt; and a few friends.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gerardsamuel.me/posts/how-to-secure-cilium-gateway-api-with-cert-manager/featured.png"/></item><item><title>Kubernetes BGP Connectivity with a UniFi router</title><link>https://gerardsamuel.me/posts/howto-setup-kubernetes-cilium-bgp-with-unifi-v4.1-router/</link><pubDate>Tue, 21 Jan 2025 18:24:57 -0500</pubDate><guid>https://gerardsamuel.me/posts/howto-setup-kubernetes-cilium-bgp-with-unifi-v4.1-router/</guid><description>&lt;p&gt;In my previous article on building a &lt;a href="https://gerardsamuel.me/posts/getting-started-with-talos-linux-on-proxmox/" &gt;Kubernetes cluster with Talos Linux&lt;/a&gt;, I used a Kubernetes Service of type NodePort to expose a workload to my homelab network. However, exposing workloads using NodePorts is not efficient or standard practice. In this article, I will document how I configured Cilium&amp;rsquo;s &lt;a href="https://docs.cilium.io/en/stable/network/servicemesh/gateway-api/gateway-api/#gateway-api-support" target="_blank" rel="noreferrer"&gt;Gateway API&lt;/a&gt; as a basic reverse proxy and &lt;a href="https://docs.cilium.io/en/stable/network/bgp-control-plane/bgp-control-plane/#cilium-bgp-control-plane" target="_blank" rel="noreferrer"&gt;BGP Control Plane&lt;/a&gt; to inject routing paths into the routing table of a UniFi router for the reverse proxy IP address.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gerardsamuel.me/posts/howto-setup-kubernetes-cilium-bgp-with-unifi-v4.1-router/featured.png"/></item><item><title>Getting started with Talos Linux on Proxmox</title><link>https://gerardsamuel.me/posts/getting-started-with-talos-linux-on-proxmox/</link><pubDate>Fri, 27 Dec 2024 12:35:34 -0500</pubDate><guid>https://gerardsamuel.me/posts/getting-started-with-talos-linux-on-proxmox/</guid><description>&lt;p&gt;So far in my container journey, I have used stand-alone hosts with &lt;a href="https://podman.io/" target="_blank" rel="noreferrer"&gt;Podman&lt;/a&gt; and Hashicorp &lt;a href="https://www.nomadproject.io/" target="_blank" rel="noreferrer"&gt;Nomad&lt;/a&gt; (again backed by Podman) for container orchestration. While these endeavors worked, they were not the most popular option for managing a containerized workload cluster. Enter Kubernetes. Some months ago, I successfully deployed &lt;a href="https://docs.rke2.io/" target="_blank" rel="noreferrer"&gt;RKE2&lt;/a&gt; with &lt;a href="https://www.rancher.com/" target="_blank" rel="noreferrer"&gt;Rancher&lt;/a&gt;, but the solution was not stable. For example, during host reboots, Pods may not come back in a healthy state. Recently, I learned about Talos Linux and decided to try it. This article documents my effort to set up a Talos cluster in Proxmox virtual machines.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gerardsamuel.me/posts/getting-started-with-talos-linux-on-proxmox/featured.png"/></item><item><title>How to setup a self-managed Podman Gitlab Runner</title><link>https://gerardsamuel.me/posts/how-to-setup-self-managed-podman-gitlab-runner/</link><pubDate>Mon, 18 Nov 2024 20:24:17 -0500</pubDate><guid>https://gerardsamuel.me/posts/how-to-setup-self-managed-podman-gitlab-runner/</guid><description>&lt;p&gt;I want to get my hands dirty with &lt;a href="https://en.wikipedia.org/wiki/CI/CD" target="_blank" rel="noreferrer"&gt;CI/CD&lt;/a&gt;. After looking around at cloud-hosted options such as Google Cloud Build and Azure DevOps/Pipelines, I decided to keep this process local by leveraging self-managed &lt;a href="https://docs.gitlab.com/ee/ci/pipelines/" target="_blank" rel="noreferrer"&gt;GitLab CI/CD pipelines&lt;/a&gt;.
To run a GitLab pipeline, you need only a special configuration file, &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;, at the root of your GitLab project/repository and at least one or more compute resources to execute jobs. In this article, I will discuss how I set up a &lt;a href="https://docs.gitlab.com/runner/" target="_blank" rel="noreferrer"&gt;GitLab runner&lt;/a&gt; using &lt;a href="https://podman.io" target="_blank" rel="noreferrer"&gt;Podman&lt;/a&gt;.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gerardsamuel.me/posts/how-to-setup-self-managed-podman-gitlab-runner/featured.png"/></item><item><title>How to Setup a Proxmox Cluster</title><link>https://gerardsamuel.me/posts/how-to-setup-a-proxmox-cluster/</link><pubDate>Fri, 02 Aug 2024 17:31:04 -0400</pubDate><guid>https://gerardsamuel.me/posts/how-to-setup-a-proxmox-cluster/</guid><description>&lt;p&gt;I needed a means of spinning up virtual machines to try out solutions such as Kubernetes or GitLab runners, etc, on a long-term basis. I did not want to incur the cost of running operating systems on Cloud Infrastructure. ESXi was definitely not happening, as Broadcom had muddied the waters at the time. At first, I tried &lt;a href="https://www.proxmox.com/en/" target="_blank" rel="noreferrer"&gt;Proxmox&lt;/a&gt;, and then I tried Suse &lt;a href="https://harvesterhci.io/" target="_blank" rel="noreferrer"&gt;Harvester&lt;/a&gt;. I contemplated &lt;a href="https://xcp-ng.org/" target="_blank" rel="noreferrer"&gt;XCP-ng&lt;/a&gt;. After weighing what I needed, I settled back to Proxmox VE.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gerardsamuel.me/posts/how-to-setup-a-proxmox-cluster/featured.webp"/></item><item><title>How to Setup Hashicorp Consul</title><link>https://gerardsamuel.me/posts/how-to-setup-hashicorp-consul/</link><pubDate>Sun, 28 Jul 2024 11:22:54 -0500</pubDate><guid>https://gerardsamuel.me/posts/how-to-setup-hashicorp-consul/</guid><description>&lt;p&gt;So what exactly is Hashicorp Consul? Here is what the Hashicorp has to &lt;a href="https://developer.hashicorp.com/consul/docs/intro" target="_blank" rel="noreferrer"&gt;say&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;HashiCorp Consul is a service networking solution that enables teams to manage secure network connectivity between services and across on-prem and multi-cloud environments and runtimes. Consul offers service discovery, service mesh, traffic management, and automated updates to network infrastructure devices.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;For the time being, I am targeting Consul&amp;rsquo;s service discovery features. In this article, I will show you how I went about this.&lt;/p&gt;</description><media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://gerardsamuel.me/posts/how-to-setup-hashicorp-consul/featured.webp"/></item></channel></rss>