<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Tanzu on Bill Glover</title>
		<link>https://old.bill.dev/tags/tanzu/</link>
		<description>Recent content in Tanzu on Bill Glover</description>
		<generator>Hugo</generator>
		<language>en-gb</language>
		
			<managingEditor>hello@bill.dev (Bill)</managingEditor>
		
		
			<webMaster>hello@bill.dev (Bill)</webMaster>
		
		
		
			<lastBuildDate>Sun, 28 Sep 2025 22:27:35 +0100</lastBuildDate>
		
			<atom:link href="https://old.bill.dev/tags/tanzu/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Debugging Open Telemetry</title>
				<link>https://old.bill.dev/2024/12/02/debugging-open-telemetry/</link>
				<pubDate>Mon, 02 Dec 2024 14:32:06 +0000</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/2024/12/02/debugging-open-telemetry/</guid>
				<description>&lt;h1 id=&#34;debugging-open-telemetry&#34;&gt;Debugging Open Telemetry&lt;/h1&gt;&#xA;&lt;p&gt;I wanted to send metrics from an application platform to an observability solution using Open Telemetry (OTel).&#xA;I believed everything was set-up but metrics weren’t flowing from the platform to our observability tooling.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;broken_otel.png&#34; alt=&#34;Diagram showing the components in my Open Telemetry set-up and a cross indicating where we lost sight of metrics.&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This post outlines how I was able to replace our observability tooling with a second instance of the OTel collector and use it to debug the flow of metrics.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tanzu Application Platform (GitOps / SOPS) - create custom secrets</title>
				<link>https://old.bill.dev/2023/04/25/tanzu-application-platform-gitops-sops-create-custom-secrets/</link>
				<pubDate>Tue, 25 Apr 2023 09:47:05 +0100</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/2023/04/25/tanzu-application-platform-gitops-sops-create-custom-secrets/</guid>
				<description>&lt;p&gt;&lt;em&gt;Assumed Audience:&lt;/em&gt; platform operators of the Tanzu Application Platform following the GitOps installation method&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Tanzu Application Platform 1.5 includes beta support for &lt;a href=&#34;https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.5/tap/install-gitops-intro.html&#34;&gt;GitOps installation&lt;/a&gt;. I&amp;rsquo;ve been using &lt;a href=&#34;https://github.com/mozilla/sops&#34;&gt;SOPS&lt;/a&gt; for secrets management with my installation. I quickly ran into the need to include custom secrets as part of the installation.&lt;/p&gt;&#xA;&lt;p&gt;In this post, I outline the general process for including additional secrets with SOPS and then show how I used this to configure LetsEncrypt to issue a valid TLS certificate for the TAP GUI.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tanzu Application Platform, Pinniped and Auth0</title>
				<link>https://old.bill.dev/2022/11/04/tanzu-application-platform-pinniped-and-auth0/</link>
				<pubDate>Fri, 04 Nov 2022 09:18:10 +0000</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/2022/11/04/tanzu-application-platform-pinniped-and-auth0/</guid>
				<description>&lt;p&gt;This post documents adding authentication to the &lt;a href=&#34;https://tanzu.vmware.com/application-platform&#34;&gt;Tanzu Application Platform&lt;/a&gt; (TAP) using Auth0 and Pinniped.&lt;/p&gt;&#xA;&lt;p&gt;I often take shortcuts with authentication when demonstrating technology. In-part this is because setting up authentication and authorization can be difficult. That said, there are benefits to the flexibility of an administrative user. Like many who work with short-lived Kubernetes clusters, my default is Cluster Admin.&lt;/p&gt;&#xA;&lt;p&gt;One downside to using cluster-admin is that I&amp;rsquo;m unable to explore RBAC capabilities. The capabilities and limitations of RBAC influence the experience of a product. The Tanzu Application Platform (TAP) is no exception. If real world use sees users mapped to one of the &lt;a href=&#34;https://docs.vmware.com/en/VMware-Tanzu-Application-Platform/1.3/tap/GUID-authn-authz-overview.html&#34;&gt;four default user roles&lt;/a&gt; that come with TAP, why do I use cluster-admin? I needed an instance of TAP configured with an identity provider that allowed me to map users to roles.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Backup and Restore AKS Clusters with Tanzu (Azure File storage)</title>
				<link>https://old.bill.dev/videos/20221005_1125_backup-restore-azure-file-volumes/</link>
				<pubDate>Wed, 05 Oct 2022 11:25:00 +0000</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/videos/20221005_1125_backup-restore-azure-file-volumes/</guid>
				<description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/s7nr1S7jEh8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;context&#34;&gt;Context&lt;/h2&gt;&#xA;&lt;p&gt;A customer asked how I might backup and restore workloads running on AKS using Azure File Premium storage. Azure Files mount an SMB share backed by an Azure storage account to pods running on AKS. For more details on storage options on AKS see the &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/aks/concepts-storage&#34; title=&#34;Storage options for applications in Azure Kubernetes Service (AKS)&#34;&gt;Azure documentation&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Migrate between Kubernetes clusters with Tanzu (Rancher to Azure)</title>
				<link>https://old.bill.dev/videos/20221005_1120_migrate-workloads-between-clusters-rancher-to-azure/</link>
				<pubDate>Wed, 05 Oct 2022 11:20:00 +0000</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/videos/20221005_1120_migrate-workloads-between-clusters-rancher-to-azure/</guid>
				<description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/NdIjPf5SMO8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;context&#34;&gt;Context&lt;/h2&gt;&#xA;&lt;p&gt;A customer asked how I might approach the challenge of migrating applications running on one Kubernetes cluster and restore them onto a new cluster running a different Kubernetes distribution. Assuming you don&amp;rsquo;t need to migrate the applications under load, backup and restore is a reasonable option.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Migrate between Kubernetes clusters with Tanzu (Rancher to Tanzu)</title>
				<link>https://old.bill.dev/videos/20221005_1115_migrate-workloads-between-clusters-rancher-to-tanzu/</link>
				<pubDate>Wed, 05 Oct 2022 11:15:00 +0000</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/videos/20221005_1115_migrate-workloads-between-clusters-rancher-to-tanzu/</guid>
				<description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/ctsvte_yXeA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;h2 id=&#34;context&#34;&gt;Context&lt;/h2&gt;&#xA;&lt;p&gt;A customer asked how I might approach the challenge of migrating applications running on one Kubernetes cluster and restore them onto a new cluster running a different Kubernetes distribution. Assuming you don&amp;rsquo;t need to migrate the applications under load, backup and restore is a reasonable option.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Update Trivy Database in Harbor</title>
				<link>https://old.bill.dev/notes/harbor-trivy-db-update/</link>
				<pubDate>Thu, 19 May 2022 14:56:00 +0000</pubDate><author>hello@bill.dev (Bill)</author>
				<guid>https://old.bill.dev/notes/harbor-trivy-db-update/</guid>
				<description>&lt;p&gt;I recently deployed Harbor and Trivy with automatic updating disabled. I hadn&amp;rsquo;t realise that this would prevent images from being scanned at all and so needed to trigger a manual update. This note describes how to manually trigger an update to the Trviy database in Harbor deployed on top of VMware Tanzu Kubernetes Grid.&lt;/p&gt;&#xA;&lt;h3 id=&#34;demo&#34;&gt;Demo&lt;/h3&gt;&#xA;&lt;div id=&#34;trivy-db-update&#34;&gt;&lt;/div&gt;&#xA;&lt;script&gt;&#xA;    AsciinemaPlayer.create(&#xA;        &#39;trivy-db-update.cast&#39;,&#xA;        document.getElementById(&#39;trivy-db-update&#39;),&#xA;        {&#xA;            cols:100,&#xA;            rows:24,&#xA;            autoPlay:false,&#xA;            preload:false,&#xA;            loop:false,&#xA;            speed:2,&#xA;            idleTimeLimit:2,&#xA;            theme:&#34;asciinema&#34;&#xA;        }&#xA;        );&#xA;&lt;/script&gt;&#xA;&lt;h3 id=&#34;instructions&#34;&gt;Instructions&lt;/h3&gt;&#xA;&lt;p&gt;Switch context to the cluster where you have deployed Harbor.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
