<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>blog on Goutham K</title><link>https://gouthamhusky.github.io/blogsite/blog/</link><description>Recent content in blog on Goutham K</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 14 Jul 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://gouthamhusky.github.io/blogsite/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>some notes on kubernetes ingress</title><link>https://gouthamhusky.github.io/blogsite/blog/notes-on-kubernetes-ingress/</link><pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate><guid>https://gouthamhusky.github.io/blogsite/blog/notes-on-kubernetes-ingress/</guid><description>&lt;p&gt;I keep re-learning how ingress actually routes traffic, so here are the notes I wish I&amp;rsquo;d written the first time.&lt;/p&gt;
&lt;h2 id="the-mental-model"&gt;the mental model&lt;/h2&gt;
&lt;p&gt;An Ingress object is just &lt;em&gt;configuration&lt;/em&gt;. On its own it does nothing — you need an ingress &lt;strong&gt;controller&lt;/strong&gt; running in the cluster to read those objects and actually route traffic.&lt;/p&gt;
&lt;aside class="note"&gt;
 &lt;span class="note-label"&gt;# gotcha&lt;/span&gt;
 &lt;div class="note-body"&gt;
 If your Ingress resource exists but nothing happens, 90% of the time you forgot to install a controller, or installed one that isn&amp;rsquo;t watching your ingress class.
 &lt;/div&gt;
&lt;/aside&gt;

&lt;h2 id="a-minimal-example"&gt;a minimal example&lt;/h2&gt;
&lt;p&gt;Here&amp;rsquo;s the smallest thing that does something useful:&lt;/p&gt;</description></item><item><title>how does systemd actually start things?</title><link>https://gouthamhusky.github.io/blogsite/blog/how-systemd-works/</link><pubDate>Sun, 22 Jun 2025 00:00:00 +0000</pubDate><guid>https://gouthamhusky.github.io/blogsite/blog/how-systemd-works/</guid><description>&lt;p&gt;I&amp;rsquo;ve typed &lt;code&gt;systemctl start&lt;/code&gt; thousands of times without really knowing what happens after I hit enter. Here&amp;rsquo;s what I pieced together.&lt;/p&gt;
&lt;h2 id="units-all-the-way-down"&gt;units all the way down&lt;/h2&gt;
&lt;p&gt;Everything systemd manages is a &lt;strong&gt;unit&lt;/strong&gt;. A service is a unit, a mount is a unit, a timer is a unit. They&amp;rsquo;re defined in plain text files, which is nice — you can read them.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl cat sshd.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="dependencies-are-the-interesting-part"&gt;dependencies are the interesting part&lt;/h2&gt;
&lt;p&gt;The thing I didn&amp;rsquo;t appreciate: systemd builds a dependency graph and starts things in parallel wherever it can. &lt;code&gt;Wants=&lt;/code&gt; and &lt;code&gt;Requires=&lt;/code&gt; describe &lt;em&gt;ordering intent&lt;/em&gt;, and &lt;code&gt;After=&lt;/code&gt; / &lt;code&gt;Before=&lt;/code&gt; describe &lt;em&gt;actual ordering&lt;/em&gt;.&lt;/p&gt;</description></item></channel></rss>