<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Opensource on Menra Romial</title><link>https://menraromial.com/tags/opensource/</link><description>Recent content in Opensource on Menra Romial</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 22 Sep 2025 10:30:00 +0000</lastBuildDate><atom:link href="https://menraromial.com/tags/opensource/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a Kubernetes Controller with Kubebuilder from Scratch</title><link>https://menraromial.com/posts/building-a-kubernetes-controller-with-kubebuilder-from-scratch/</link><pubDate>Mon, 22 Sep 2025 10:30:00 +0000</pubDate><guid>https://menraromial.com/posts/building-a-kubernetes-controller-with-kubebuilder-from-scratch/</guid><description>&lt;p&gt;In this tutorial, you will learn how to build a custom Kubernetes controller (also known as an Operator) using Kubebuilder. We will create a Custom Resource Definition (CRD) for a simple &lt;code&gt;Website&lt;/code&gt; resource. The goal of our controller will be to watch for these &lt;code&gt;Website&lt;/code&gt; resources and, for each one, create a corresponding Kubernetes &lt;code&gt;Deployment&lt;/code&gt; and &lt;code&gt;Service&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This is a powerful pattern that allows you to extend the Kubernetes API to manage your own applications declaratively.&lt;/p&gt;</description></item><item><title>Guide to Building a Custom Kubernetes Scheduler</title><link>https://menraromial.com/posts/guide-building-custom-kubernetes-scheduler/</link><pubDate>Sun, 24 Aug 2025 17:30:00 +0000</pubDate><guid>https://menraromial.com/posts/guide-building-custom-kubernetes-scheduler/</guid><description>&lt;p&gt;This guide will walk you through creating a custom scheduler plugin that influences where pods are placed based on custom logic. We will build a simple &amp;ldquo;Network-Aware&amp;rdquo; plugin that prefers to schedule pods on nodes with a specific network label.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What We Will Build:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A &lt;code&gt;Filter&lt;/code&gt; plugin:&lt;/strong&gt; It will only allow pods that request &lt;code&gt;high-speed&lt;/code&gt; networking to be scheduled on nodes that are labeled as &lt;code&gt;network-topology=high-speed&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A &lt;code&gt;Score&lt;/code&gt; plugin:&lt;/strong&gt; It will give a higher score to nodes with the &lt;code&gt;high-speed&lt;/code&gt; label, making them more desirable.&lt;/li&gt;
&lt;li&gt;We will then package this plugin into a new scheduler binary, containerize it, and deploy it to a local Kubernetes cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="part-1-understanding-the-foundations---the-scheduling-framework"&gt;&lt;strong&gt;Part 1: Understanding the Foundations - The Scheduling Framework&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Before writing any code, it&amp;rsquo;s crucial to understand the &amp;ldquo;why&amp;rdquo; and &amp;ldquo;how&amp;rdquo;.&lt;/p&gt;</description></item></channel></rss>