<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Veit Sanner&#39;s Blog</title>
    <link>https://www.sanner.io/</link>
    <description>Recent content on Veit Sanner&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 05 Feb 2026 07:59:26 +0100</lastBuildDate>
    <atom:link href="https://www.sanner.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Running Minikube on Apple Silicon with Corporate VPN</title>
      <link>https://www.sanner.io/posts/2022/11/running-minikube-apple-silicon-corporate-vpn/</link>
      <pubDate>Tue, 29 Nov 2022 21:35:00 +0100</pubDate>
      <guid>https://www.sanner.io/posts/2022/11/running-minikube-apple-silicon-corporate-vpn/</guid>
      <description>&lt;p&gt;After changing my company laptop to a MacBook Pro with Apple silicon, I had to overcome difficulties setting up a working Minikube environment.&#xA;A combination of two factors created the challenges:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://minikube.sigs.k8s.io/docs/drivers/#macos&#34;&gt;Supported drivers&lt;/a&gt;: Once you remove the drivers, which do not have support for Apple Silicon or require a separate license for commercial use, only &lt;em&gt;QEMU&lt;/em&gt; and &lt;em&gt;SSH&lt;/em&gt; remain as possible options.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Cisco AnyConnect VPN with Umbrella: Cisco AnyConnect installs a local dns proxy listening on port 53. Unfortunately, QEMU has issues with the Cisco AnyConnect setup. (see &lt;a href=&#34;https://github.com/kubernetes/minikube/issues/15021#issuecomment-1261499686&#34;&gt;QEMU stops working with minikube&lt;/a&gt;. The suggested workaround to install &lt;a href=&#34;https://minikube.sigs.k8s.io/docs/drivers/qemu/&#34;&gt;socket_vmnet&lt;/a&gt; is marked as experimental, and I couldn&amp;rsquo;t get it to work on my machine.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a Custom Linux Setup for WSL2</title>
      <link>https://www.sanner.io/posts/2022/03/create-a-custom-linux-setup-for-wsl2/</link>
      <pubDate>Tue, 08 Mar 2022 11:15:00 +0100</pubDate>
      <guid>https://www.sanner.io/posts/2022/03/create-a-custom-linux-setup-for-wsl2/</guid>
      <description>&lt;p&gt;I just came across the amazing Windows Subsystem for Linux 2 (WSL2) feature which allows you to create a consistent Linux environment.&lt;/p&gt;&#xA;&lt;p&gt;If you have not came across WSL2 yet, &lt;a href=&#34;https://docs.microsoft.com/en-us/windows/wsl/about&#34;&gt;Microsoft advertises&lt;/a&gt; it as:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The Windows Subsystem for Linux lets developers run a GNU/Linux environment &amp;ndash; including most command-line tools, utilities, and applications &amp;ndash; directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Although, Microsoft provides some Linux distributions through its Windows Store, this leaves the question open what you should do if your favorite distro is not available over this channel, and how to achieve a consistent setup.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enforce Non-Root Pods with Pod Security Standards</title>
      <link>https://www.sanner.io/posts/2021/12/enforce-non-root-pods-with-pod-security-standards/</link>
      <pubDate>Tue, 21 Dec 2021 17:45:00 +0100</pubDate>
      <guid>https://www.sanner.io/posts/2021/12/enforce-non-root-pods-with-pod-security-standards/</guid>
      <description>&lt;p&gt;In my post &lt;a href=&#34;https://www.sanner.io/posts/2021/11/dont-run-containers-as-root/&#34; title=&#34;Friends don&#39;t let friends run containers as root&#34;&gt;Friends don&amp;rsquo;t let friends run containers as root&lt;/a&gt;, I took a simplified view that Kubernetes does not add any security policies.&#xA;I went for this simplified statement because, when I wrote the post, Kubernetes 1.22 was moving away from &lt;em&gt;Pod Security Policies&lt;/em&gt;, and there had not been any replacement in a released version.&lt;/p&gt;&#xA;&lt;p&gt;Beginning with Kubernetes 1.23, Pod Security Standards are introduced to replace &lt;em&gt;Pod Security Policies&lt;/em&gt;.&#xA;Kubernetes administrators can choose between the policy profiles &lt;em&gt;privileged&lt;/em&gt;, &lt;em&gt;baseline&lt;/em&gt;, and &lt;em&gt;restricted&lt;/em&gt;.&#xA;The policies are cumulative, which means that &lt;em&gt;baseline&lt;/em&gt; contains all the rules from &lt;em&gt;privileged&lt;/em&gt;, and &lt;em&gt;restricted&lt;/em&gt; has all rules from &lt;em&gt;privileged&lt;/em&gt; and from &lt;em&gt;baseline&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How Snapshots Saved My Time Machine Backups</title>
      <link>https://www.sanner.io/posts/2021/11/how-snapshots-saved-my-time-machine-backups/</link>
      <pubDate>Tue, 30 Nov 2021 08:30:00 +0100</pubDate>
      <guid>https://www.sanner.io/posts/2021/11/how-snapshots-saved-my-time-machine-backups/</guid>
      <description>&lt;p&gt;Until last year I kept my Time Machine backups on a USB drive next to my computer. And although everything worked fine, I didn&amp;rsquo;t feel comfortable with so much data stored on a single disk. Hence, during summer 2020, I bought myself a &lt;a href=&#34;https://www.synology.com/en-us/products/DS1520+&#34;&gt;DiskStation DS1520+&lt;/a&gt; to put my Time Machine backups on a much more secure and reliable solution. The DS1520+ supports a RAID. Consequently, my data would not be lost caused by a single disk error. Synology has excellent documentation, &lt;a href=&#34;https://kb.synology.com/en-us/DSM/tutorial/How_to_back_up_files_from_Mac_to_Synology_NAS_with_Time_Machine&#34;&gt;how you can enable Time Machine backups to a NAS over SMB&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Encrypt Service Traffic with OpenShift CA</title>
      <link>https://www.sanner.io/posts/2021/11/encrypt-service-traffic-with-openshift-ca/</link>
      <pubDate>Tue, 23 Nov 2021 08:15:00 +0100</pubDate>
      <guid>https://www.sanner.io/posts/2021/11/encrypt-service-traffic-with-openshift-ca/</guid>
      <description>&lt;p&gt;Did you know that you can make use of the OpenShift CA to encrypt traffic between services or between a route and the service?&#xA;I know you think service mesh, but there is also a small-scale solution available if you don&amp;rsquo;t have a service mesh you can use.&lt;/p&gt;&#xA;&lt;h2 id=&#34;encrypt-ingress-traffic&#34;&gt;Encrypt Ingress Traffic&lt;/h2&gt;&#xA;&lt;p&gt;So let&amp;rsquo;s say that you want to deploy a web app, and you need to encrypt the traffic between HAProxy as the route entry point and a web app.&#xA;Usually, the OpenShift operations team has you covered, and they have configured HAProxy with TLS, so you don&amp;rsquo;t have to worry about public TLS.&#xA;But once you are past the route as an entry point to OpenShift, you will get HTTP without TLS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Friends don&#39;t let friends run containers as root</title>
      <link>https://www.sanner.io/posts/2021/11/dont-run-containers-as-root/</link>
      <pubDate>Thu, 11 Nov 2021 12:30:00 +0100</pubDate>
      <guid>https://www.sanner.io/posts/2021/11/dont-run-containers-as-root/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;In my daily work, I encounter different container engines tools during the development process. For the development of the container image, I use a local container engine like &lt;a href=&#34;https://docker.com&#34;&gt;Docker for Desktop&lt;/a&gt; or &lt;a href=&#34;https://podman.io&#34;&gt;Podman&lt;/a&gt;. After developing on my local machine, the image is staged from the development environment, over test stages to production. In those environments, &lt;a href=&#34;https://kubernetes.io&#34;&gt;Kubernetes&lt;/a&gt; or &lt;a href=&#34;https://www.openshift.com/&#34;&gt;Red Hat Openshift&lt;/a&gt; is the container platform of choice.&lt;/p&gt;&#xA;&lt;p&gt;Unfortunately, the platforms use different approaches with which user ID the container process is started. This can be incredibly frustrating if you start with an official Docker image that just won&amp;rsquo;t run in Openshift due to stricter security policies.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
