<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Alwyn&#x27;s Blog</title>
    <subtitle>Sometimes hyper-specific technical musings</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog.alwyn.io/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.alwyn.io"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2093-02-16T00:00:00+00:00</updated>
    <id>https://blog.alwyn.io/atom.xml</id>
    <entry xml:lang="en">
        <title>Hello, World!</title>
        <published>2093-02-16T00:00:00+00:00</published>
        <updated>2093-02-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              alveel
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.alwyn.io/blog/hello/"/>
        <id>https://blog.alwyn.io/blog/hello/</id>
        
        <summary type="html">&lt;p&gt;This is your first blog post!&amp;hellip;
&lt;&#x2F;p&gt;
</summary>
        
    </entry>
    <entry xml:lang="en">
        <title>WebRTC with Linux and VPN woes</title>
        <published>2093-02-16T00:00:00+00:00</published>
        <updated>2093-02-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              alveel
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.alwyn.io/blog/webrtc/"/>
        <id>https://blog.alwyn.io/blog/webrtc/</id>
        
        <content type="html" xml:base="https://blog.alwyn.io/blog/webrtc/">&lt;h1 id=&quot;context&quot;&gt;Context&lt;&#x2F;h1&gt;
&lt;p&gt;I had this weird issue with Teams where, if I was connected to the work VPN and joined a call, my entire network stack would
stop working. Whenever joining a call, I had to disable the VPN, join it, then re-enable the VPN and it would work fine.&lt;&#x2F;p&gt;
&lt;p&gt;If I had the problem, the only fix was to disconnect any and all network connections (not just the VPN!) and then re-enable.&lt;&#x2F;p&gt;
&lt;p&gt;After a bit I found out it only happens at the office. A bit later I figured out it only happens when connected over WiFi.
Wired this problem did not occur.&lt;&#x2F;p&gt;
&lt;p&gt;Troubleshooting was difficult at first, as networking isn&#x27;t my strongest suite.&lt;&#x2F;p&gt;
&lt;p&gt;I had my VPN configured to only tunnel traffic that was actually directed at work networks; other traffic would go outside of it.&lt;&#x2F;p&gt;
&lt;h1 id=&quot;fixes&quot;&gt;Fixes&lt;&#x2F;h1&gt;
&lt;h1 id=&quot;for-all-applications&quot;&gt;For all applications:&lt;&#x2F;h1&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -s 10.8.0.0&#x2F;16 ! -o tun0 -p udp -j DROP&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h1 id=&quot;for-teams-only-edit-add-config-teams-for-linux-config-json&quot;&gt;For Teams only, edit&#x2F;add &lt;code&gt;~&#x2F;.config&#x2F;teams-for-linux&#x2F;config.json&lt;&#x2F;code&gt;&lt;&#x2F;h1&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;json&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;{&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;  &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;&quot;&gt;network&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;&amp;quot;: {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;    &amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #89B4FA;&quot;&gt;WebRtcIPHandlingPolicy&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;&amp;quot;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;disable_non_proxied_udp&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;  }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Protip: find deployments mounting Kubernetes secret</title>
        <published>2026-07-16T00:00:00+00:00</published>
        <updated>2026-07-16T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              alveel
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.alwyn.io/blog/kubernetes-secret-mounts/"/>
        <id>https://blog.alwyn.io/blog/kubernetes-secret-mounts/</id>
        
        <content type="html" xml:base="https://blog.alwyn.io/blog/kubernetes-secret-mounts/">&lt;p&gt;Useful one-liner to find all workloads that mount a specific secret:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;export secret_name=foo kubectl get deploy,statefulset,daemonset,job,cronjob -A -o json | jq -r --arg s $secret_name &amp;#39;.items[] | select([.. | objects | .secretName?, .secretKeyRef?.name, .secretRef?.name, .secret?.name] | any(. == $s)) | &amp;quot;\(.metadata.namespace) \(.kind)&#x2F;\(.metadata.name)&amp;quot;&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;This recursively searches for all &lt;code&gt;secretName&lt;&#x2F;code&gt;, &lt;code&gt;secretKeyRef&lt;&#x2F;code&gt;, &lt;code&gt;secretRef&lt;&#x2F;code&gt; and &lt;code&gt;secret&lt;&#x2F;code&gt; keys, taking into account all forms of referencing a secret (&lt;code&gt;(deploy|sts|ds,job).spec.(job)template&lt;&#x2F;code&gt; assumed):&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.spec.volumes.secret.secretName&lt;&#x2F;code&gt; - &quot;classic&quot; secret volume&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;.spec.volumes.projected.sources.secret.name&lt;&#x2F;code&gt; - projected source&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;.spec.containers.env.valueFrom.secretKeyRef.name&lt;&#x2F;code&gt; - for a specific environment variable&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;.spec.containers.envFrom.secretRef.name&lt;&#x2F;code&gt; - for populating environment variables from a secret&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
</feed>
