<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shehu Awwal</title>
    <link>https://shehuawwal.com/</link>
    <description>Recent content on Shehu Awwal</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 13 Jan 2026 10:30:24 +0000</lastBuildDate>
    <atom:link href="https://shehuawwal.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Renewing Expired K3S Certificate</title>
      <link>https://shehuawwal.com/2026/01/renewing-expired-k3s-certificate.html/</link>
      <pubDate>Tue, 13 Jan 2026 10:30:24 +0000</pubDate>
      <guid>https://shehuawwal.com/2026/01/renewing-expired-k3s-certificate.html/</guid>
      <description>&lt;p&gt;&lt;p class=&#34;markdown-image&#34;&gt;&#xA;  &lt;img src=&#34;https://cdn.shehuawwal.com/images/k3s.avif&#34; alt=&#34;&#34;  /&gt;&#xA;&lt;/p&gt;&lt;/p&gt;&#xA;&lt;p&gt;By default TLS certificates in kubernetes has expiration of 1 year for the client/server, And once the certificate has expired the API server cant authenticate request.&lt;/p&gt;&#xA;&lt;h2 id=&#34;verify-the-certificate-expiration&#34;&gt;Verify The Certificate Expiration&lt;/h2&gt;&lt;p&gt;In other to verify the k3s is down because of the certificate, you can check the on the master-node/control-node.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl status k3s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Example of the Error Log:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;Jan 13 10:15:19 sa-k8s-prod-master k3s[1788901]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;E0113 10:15:19.774025 1788901 authentication.go:73] &amp;#34;Unable to authenticate the request&amp;#34; err=&amp;#34;[x509: certificate has expired or is not yet valid: current time 2026-01-13T10:15:19+01:00 is after 2025-12-26T20:10:10Z, verifying certificate SN=2680174939717522757, SKID=, AKID=EF:0F:A4:61:2D:2D:2D:68:49:70:D0:46:17:E3:C5:40:55:C6:23:5C failed: x509: certificate has expired or is not yet valid: current time 2026-01-13T10:15:19+01:00 is after 2025-12-26T20:10:10Z]&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;steps-to-renew-k3s-certificate&#34;&gt;Steps To Renew k3s Certificate&lt;/h2&gt;&lt;h3 id=&#34;stop-k3s-service&#34;&gt;Stop K3s Service&lt;/h3&gt;&lt;p&gt;Stop the k3s service on the master node.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Setup LXC Container In Proxmox Server</title>
      <link>https://shehuawwal.com/2025/10/how-to-setup-lxc-container-in-proxmox-server.html/</link>
      <pubDate>Sat, 04 Oct 2025 18:25:09 +0000</pubDate>
      <guid>https://shehuawwal.com/2025/10/how-to-setup-lxc-container-in-proxmox-server.html/</guid>
      <description>&lt;p&gt;One of the reasons you might want to run LXC (Linux Containers) is their lightweight virtualization approach. LXC containers use the same host kernel and consume fewer resources like memory compared to running a full guest VM. This means they boot faster and offer higher performance.&lt;/p&gt;&#xA;&lt;p&gt;You can download LXC container templates from different sources and extract them manually, but in this guide we&amp;rsquo;ll be using Proxmox&amp;rsquo;s &lt;code&gt;pveam&lt;/code&gt; command, which is used to create, manage, download, and delete LXC containers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VMware Snapshot to Memory Dump: A Step-by-Step Guide</title>
      <link>https://shehuawwal.com/2025/02/vmware-snapshot-memory-dump-step-by-step-guide.html/</link>
      <pubDate>Sat, 08 Feb 2025 16:11:33 +0000</pubDate>
      <guid>https://shehuawwal.com/2025/02/vmware-snapshot-memory-dump-step-by-step-guide.html/</guid>
      <description>&lt;p&gt;In this guide, we will explore how to convert a VMware snapshot into a memory dump. You might wonder why this conversion is necessary. One major reason is forensic or malware analysis.&lt;/p&gt;&#xA;&lt;p&gt;Some malware resides in memory and leaves no traces on disk. Malware analysts often use memory dumps to identify malicious code or processes present in memory at the time of the snapshot.&lt;/p&gt;&#xA;&lt;h3 id=&#34;taking-a-vmware-snapshot&#34;&gt;Taking a VMware Snapshot&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;In VMware ESXi/vSphere:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Assign A Static IP Address To A VMware Workstation VM</title>
      <link>https://shehuawwal.com/2024/12/assign-static-ip-address-vmware-workstation-vm.html/</link>
      <pubDate>Sun, 29 Dec 2024 18:56:56 +0000</pubDate>
      <guid>https://shehuawwal.com/2024/12/assign-static-ip-address-vmware-workstation-vm.html/</guid>
      <description>&lt;p&gt;I really enjoy working with virtualization both type 1 and 2, But came to a time that I need to assign a static IP Address to my virtual machines in any network connection mode, NAT, Bridged or Host-Only.&lt;/p&gt;&#xA;&lt;p&gt;Before I came across this, I tried setting up Mikrotic Router OS in other to achieve this options, and looking for other alternative ways, But didn&amp;rsquo;t know the option is already available.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix VMware Workstation Module Disk Power On Failed</title>
      <link>https://shehuawwal.com/2024/12/fix-vmware-workstation-module-disk-power-failed.html/</link>
      <pubDate>Sun, 29 Dec 2024 18:17:05 +0000</pubDate>
      <guid>https://shehuawwal.com/2024/12/fix-vmware-workstation-module-disk-power-failed.html/</guid>
      <description>&lt;p&gt;My server shutdown unexpectedly, when I tried to start the VM, I started getting error like this:&#xA;&lt;p class=&#34;markdown-image&#34;&gt;&#xA;  &lt;img src=&#34;https://cdn.shehuawwal.com/images/vmware_module_disk.png&#34; alt=&#34;&#34;  /&gt;&#xA;&lt;/p&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The process cannot access the file because another process has locked a portion of the file.&#xA;Cannot open the dis: disk directory.vmdk or one of the snapshots disks it depends on.&#xA;Module &amp;lsquo;Disk&amp;rsquo; power on failed.&#xA;Failed to start the virtual machine.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;The file inside .lck directory got corrupted, Just right click on the Virtual Machine and Open VM Directory.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running x86/AMD64 Docker Container Images On Apple Mac ARM With Colima</title>
      <link>https://shehuawwal.com/2024/12/running-x86-amd64-docker-container-images-apple-mac-arm-colima.html/</link>
      <pubDate>Tue, 10 Dec 2024 22:39:26 +0000</pubDate>
      <guid>https://shehuawwal.com/2024/12/running-x86-amd64-docker-container-images-apple-mac-arm-colima.html/</guid>
      <description>&lt;p&gt;&lt;p class=&#34;markdown-image&#34;&gt;&#xA;  &lt;img src=&#34;https://cdn.shehuawwal.com/images/coliima.png&#34; alt=&#34;&#34;  /&gt;&#xA;&lt;/p&gt;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve really encountered issues most especially switching from Apple Intel processor to Apple Silicon with docker images built specifically for x86/AMD64 but unable to run on the mac.&lt;/p&gt;&#xA;&lt;p&gt;Likely you might have encountered this issues if the image was built for x86/AMD64, but with docker buildx that allows you to build container images for multi architecture processor becomes easy. How about when the images is old for like 5years or so. Or you specifically need to use an intel x86/AMD64 images.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Linkerd Service Mesh With Helm Charts In Kubernetes</title>
      <link>https://shehuawwal.com/2024/11/setting-linkerd-service-mesh-helm-charts-kubernetes.html/</link>
      <pubDate>Sat, 09 Nov 2024 13:40:02 +0000</pubDate>
      <guid>https://shehuawwal.com/2024/11/setting-linkerd-service-mesh-helm-charts-kubernetes.html/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been looking more into service mesh most especially with Linkerd, Looking more into what service mesh is all about with it&amp;rsquo;s core values which are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Observability&lt;/li&gt;&#xA;&lt;li&gt;Security&lt;/li&gt;&#xA;&lt;li&gt;Reliability&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;p class=&#34;markdown-image&#34;&gt;&#xA;  &lt;img src=&#34;https://cdn.shehuawwal.com/images/linkerd-visualization.png&#34; alt=&#34;&#34;  /&gt;&#xA;&lt;/p&gt;&lt;/p&gt;&#xA;&lt;p&gt;The linkerd having the control plane and the data plane, The control plane which is responsible for managing the configuration and policy while the data plane handles the traffic between each service.&lt;/p&gt;&#xA;&lt;p&gt;The reason, I would prefer to set it up via helm chart over the linkerd cli command is because, it&amp;rsquo;s easy to manage and advisably for production environments, so when things goes wrong, it can easily be debugged and fixed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Metrics Server With Helm Charts In Kubernetes</title>
      <link>https://shehuawwal.com/2024/08/setting-metrics-server-helm-charts-kubernetes.html/</link>
      <pubDate>Tue, 06 Aug 2024 21:53:47 +0000</pubDate>
      <guid>https://shehuawwal.com/2024/08/setting-metrics-server-helm-charts-kubernetes.html/</guid>
      <description>&lt;p&gt;On one of my personal cluster and I am trying to setup a metrics-server in other to gather metrics for a resource usage within the node or pods.&#xA;the kubernetes cluster is setup with kubeadm, I cant recall if K3d or Minikube comes pre-installed with metrics-server, but this should work for any kubernetes distributions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;install-metrics-server-via-helm-charts&#34;&gt;Install Metrics Server Via Helm Charts&lt;/h2&gt;&lt;p&gt;We need to add the helm charts repo.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;helm&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;repo&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;add&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;metrics&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;server&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;kubernetes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sigs&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;github&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;metrics&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After adding the helm charts repo, we need to add an override file, if you proceed installing the helm charts, you might be getting error relating to tls certificate error&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting Up Argo CD With Helm Charts In Kubernetes</title>
      <link>https://shehuawwal.com/2023/12/setting-argo-cd-helm-charts-kubernetes.html/</link>
      <pubDate>Sat, 30 Dec 2023 16:19:50 +0000</pubDate>
      <guid>https://shehuawwal.com/2023/12/setting-argo-cd-helm-charts-kubernetes.html/</guid>
      <description>&lt;p&gt;I am just playing around with Argo CD, To&amp;rsquo;ve more idea about GitOps with Argo CD, But I was having some challenges around the Ingress with &lt;code&gt;ERR_TOO_MANY_REDIRECTS&lt;/code&gt;, I have to look at the Helm Values from the Github Repository - &lt;a href=&#34;https://github.com/argoproj/argo-helm&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/argoproj/argo-helm&lt;/a&gt; and then look more into some issues raised on Github - &lt;a href=&#34;https://github.com/argoproj/argo-cd/issues/2953&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;https://github.com/argoproj/argo-cd/issues/2953&lt;/a&gt; and then I was able to successfully set it up.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-to-install-argo-cd-with-helm-charts&#34;&gt;How To Install Argo CD With Helm Charts&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;Add the Argo CD Helm charts repo&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;helm&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;repo&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;add&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argo&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;https&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;//&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argoproj&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;github&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;argo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;helm&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;Then install argocd, You can make use of this custom-override file by only changing the domain url and then the annotations to march your cluster config.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;ingress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;enabled&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;annotations&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;kubernetes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ingress&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;class&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;nginx&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;kubernetes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tls&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;acme&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;manager&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cluster&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;issuer&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;letsencrypt&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;manager&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;acme&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;challenge&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dns01&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;cert&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;manager&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;io&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;acme&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dns01&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;provider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cloudflare&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;ingressClassName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;argo.shehuawwal.one&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;pathType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Prefix&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tls&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;secretName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shehuawwal&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;one&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;n&#34;&gt;hosts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;argo&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;shehuawwal&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;one&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;configs&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;params&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;server&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;insecure&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;true&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can save the above file as &lt;code&gt;argo-custom-override.yaml&lt;/code&gt;.&#xA;Install argo with the override file&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building A Kubernetes Cluster From Scratch With KubeAdm</title>
      <link>https://shehuawwal.com/2022/02/building-kubernetes-cluster-scratch-kubeadm.html/</link>
      <pubDate>Tue, 22 Feb 2022 16:21:09 +0000</pubDate>
      <guid>https://shehuawwal.com/2022/02/building-kubernetes-cluster-scratch-kubeadm.html/</guid>
      <description>&lt;p&gt;&lt;p class=&#34;markdown-image&#34;&gt;&#xA;  &lt;img src=&#34;https://cdn.shehuawwal.com/images/kubernetes.webp&#34; alt=&#34;&#34;  /&gt;&#xA;&lt;/p&gt;&#xA;This guide walks you through building a Kubernetes cluster from scratch using kubeadm. You can set up the master node on one cloud provider, such as AWS, and have worker nodes on Azure, GCP, DigitalOcean, or on-premises. This tutorial uses Ubuntu as the example Linux distribution, but the steps apply to other Debian-based systems.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&lt;p&gt;Before starting, ensure each node meets the following minimum requirements:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;At least 2 GB RAM per machine&lt;/li&gt;&#xA;&lt;li&gt;At least 2 CPU cores per machine&lt;/li&gt;&#xA;&lt;li&gt;Network connectivity between all nodes (private or public)&lt;/li&gt;&#xA;&lt;li&gt;Sufficient storage for your workloads&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;Server Specifications Example:&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How To Add Bash Completion For Kubectl Command</title>
      <link>https://shehuawwal.com/2021/12/add-bash-completion-kubectl-command.html/</link>
      <pubDate>Thu, 02 Dec 2021 13:50:27 +0000</pubDate>
      <guid>https://shehuawwal.com/2021/12/add-bash-completion-kubectl-command.html/</guid>
      <description>&lt;p&gt;The kubectl comes in a single binary package that you can run in your current directory or move it over to &lt;code&gt;/bin/&lt;/code&gt; or any other directory, But we still want that auto-completion instead of having to type the whole command.&lt;/p&gt;&#xA;&lt;h2 id=&#34;adding-kubectl-to-bashrc&#34;&gt;Adding Kubectl To Bashrc&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vim&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;$&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HOME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;/.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bashrc&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will open the bashrc file on the current user, and add the following down below:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;source&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;kubectl&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;completion&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bash&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will read the kubectl command with completion, Then we will need to source the .bashrc file to take effect as well.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
