<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Rich Burroughs]]></title><description><![CDATA[Developer advocate. I created the Kube Cuddle podcast where I interview people from the Kubernetes community.]]></description><link>https://blog.richburroughs.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 16 Oct 2026 14:15:46 GMT</lastBuildDate><atom:link href="https://blog.richburroughs.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Cyclops: Platform Engineering for the Rest of Us]]></title><description><![CDATA[Platform engineering is possibly the biggest concept to take hold in infrastructure over the last 5+ years, and there’s a big reason why. For decades, application engineers have dealt with systems that have constantly thrown roadblocks and delays in ...]]></description><link>https://blog.richburroughs.dev/cyclops-platform-engineering-for-the-rest-of-us</link><guid isPermaLink="true">https://blog.richburroughs.dev/cyclops-platform-engineering-for-the-rest-of-us</guid><category><![CDATA[Kubernetes]]></category><category><![CDATA[Platform Engineering ]]></category><category><![CDATA[Devops]]></category><category><![CDATA[cloud native]]></category><dc:creator><![CDATA[Rich Burroughs]]></dc:creator><pubDate>Mon, 03 Feb 2025 18:44:24 GMT</pubDate><content:encoded><![CDATA[<p>Platform engineering is possibly the biggest concept to take hold in infrastructure over the last 5+ years, and there’s a big reason why. For decades, application engineers have dealt with systems that have constantly thrown roadblocks and delays in their way. Platform engineers address this problem by building systems that enable self-service and provide useful abstractions that help those other engineers build and run their applications. As we know, enabling self-service helps both productivity and developer happiness.</p>
<p>However, building and maintaining a platform can be expensive, and not every organization has the budget for a dedicated platform team. For organizations with platform teams, there’s an ongoing tension between either building custom tools, using open source tools, or buying commercial solutions. Each of those options requires some kind of investment, but for many teams, building platforms largely composed of open source tools is a strong choice. The team doesn’t spend a lot on software licenses and isn’t stuck maintaining all the code.</p>
<p>In this post, we’ll look at <a target="_blank" href="https://cyclops-ui.com/">Cyclops</a>, an <a target="_blank" href="https://github.com/cyclops-ui/cyclops">open source tool</a> for building developer platforms. Cyclops lets teams deploy and manage applications using Helm charts as templates.</p>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>The main requirement for this tutorial is a Kubernetes cluster. In this example, we’ll use <a target="_blank" href="https://kind.sigs.k8s.io/">kind</a> to provision a cluster, but feel free to use a different method if you prefer. If you’re not already using kind, you can install it using the <a target="_blank" href="https://kind.sigs.k8s.io/docs/user/quick-start/#installation">instructions in the docs</a>. You also need a local Docker-compatible daemon to use kind, like Docker, Podman, or Colima.</p>
<p>You will also need kubectl. You can find instructions for installing kubectl in the <a target="_blank" href="https://kubernetes.io/docs/tasks/tools/#kubectl">Kubernetes docs</a>.</p>
<h2 id="heading-provision-a-cluster-and-install-cyclops">Provision a cluster and install Cyclops</h2>
<p>First, provision a cluster.</p>
<pre><code class="lang-plaintext">kind create cluster --name cyclops-demo
</code></pre>
<p>Your kube context should already be set to point to the kind cluster. You can test that you can connect by viewing the namespaces in the cluster.</p>
<pre><code class="lang-plaintext">kubectl get namespaces
</code></pre>
<p>Next, install Cyclops into your cluster with kubectl.</p>
<pre><code class="lang-plaintext">kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.15.4/install/cyclops-install.yaml
</code></pre>
<p>As you’ll see from the output, Cyclops is composed of Kubernetes native objects.</p>
<pre><code class="lang-plaintext">customresourcedefinition.apiextensions.k8s.io/modules.cyclops-ui.com created
customresourcedefinition.apiextensions.k8s.io/templateauthrules.cyclops-ui.com created
customresourcedefinition.apiextensions.k8s.io/templatestores.cyclops-ui.com created
namespace/cyclops created
serviceaccount/cyclops-ctrl created
clusterrole.rbac.authorization.k8s.io/cyclops-ctrl created
clusterrolebinding.rbac.authorization.k8s.io/cyclops-ctrl created
deployment.apps/cyclops-ui created
service/cyclops-ui created
networkpolicy.networking.k8s.io/cyclops-ui created
deployment.apps/cyclops-ctrl created
service/cyclops-ctrl created
networkpolicy.networking.k8s.io/cyclops-ctrl created
</code></pre>
<p>There should now be two pods running in a new namespace called Cyclops. We can view them with:</p>
<pre><code class="lang-plaintext">kubectl get pods -n cyclops
</code></pre>
<p>You should see output like this:</p>
<pre><code class="lang-plaintext">NAME                            READY   STATUS    RESTARTS   AGE
cyclops-ctrl-7984df7589-wv4dw   1/1     Running   0          36s
cyclops-ui-64c4cdd7f7-fxnb7     1/1     Running   0          36s
</code></pre>
<p>The first pod handles the Cyclops API, manages the CRDs, and communicates with the Kubernetes API server. The second pod runs the Cyclops web UI.</p>
<p>Next, we will install a set of example templates that we will use to see how Cyclops works.</p>
<pre><code class="lang-plaintext">kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/v0.15.4/install/demo-templates.yaml
</code></pre>
<p>Finally, let’s connect to the Cyclops web UI. First, forward a port to it using kubectl.</p>
<pre><code class="lang-plaintext">kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops
</code></pre>
<p>Next, connect to the UI with your browser at <a target="_blank" href="http://localhost:3000/">http://localhost:3000/</a>.</p>
<h2 id="heading-deploy-niginx-with-a-generic-app-template">Deploy Niginx with a generic app template</h2>
<p>For the first portion of the demo, we’ll deploy Nginx using Cyclops.</p>
<p>Open a new terminal window/tab and create a namespace called nginx.</p>
<pre><code class="lang-plaintext">kubectl create namespace nginx
</code></pre>
<p>Now, go back to the Cyclops UI tab in your browser. Click <em>Add module</em> in the upper right corner of the Cyclops screen. Think of a module in Cyclops as an application and all of the other Kubernetes resources required to run it.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ulpv0j2qksghr1gi3ik6.png" alt="the add module screen" /></p>
<p>Next, we’ll select a template. Cyclops templates are Helm charts, and Cyclops can use charts from GitHub repositories, Helm chart repositories, or OCI repositories.</p>
<p>Select <code>app-template</code> from the <em>Template</em> pull-down list. This generic template creates a Kubernetes deployment and service for an application.</p>
<p>For the module name, enter <code>nginx</code>. Click on <em>Advanced</em>. Select the <code>nginx</code> namespace from the <em>Target namespace</em> pull-down menu.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/arc8a8yy9n35u7j6hafk.png" alt="the define module screen" /></p>
<p>Click on <em>General</em>. You can see that some defaults have been populated, like the image name version. Leave them set to the defaults. Those values are being pulled from a values.yaml file <a target="_blank" href="https://github.com/cyclops-ui/templates/blob/main/app-template/values.yaml">in the Helm chart</a>.</p>
<p>You’ll see some other configurable options under <em>Scaling</em> and <em>Networking</em>. You can also leave those set to the defaults. Scroll down and hit the <em>Deploy</em> button in the bottom right of the window.</p>
<p>On the next screen, you’ll see more information about the module and its status as it’s deployed. There’s a link to the template it was deployed from and information about the Kubernetes resources that have been created.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w17qy9s648thhxmz0yhf.png" alt="the module status screen" /></p>
<p>Click on <em>nginx Deployment</em> to see that one pod is running. We can confirm that info in the terminal by running this command:</p>
<pre><code class="lang-plaintext">kubectl get pods -n nginx
</code></pre>
<p>That output should match what you saw in Cyclops.</p>
<p>Go back to the Cyclops browser tab. Under <em>Actions</em>, you can see several buttons for making changes to a running module. <em>Edit</em> will let you change the configuration. <em>Reconcile</em> will re-create the resources. <em>Rollback</em> will revert to the previous version of the module if you have made changes. You can view the code for the module using the <em>Module manifest</em> button, and <em>Rendered manifes</em>t lets you view the Kubernetes YAML for the running resources.</p>
<p>Click <em>Edit</em>, and then change the number of replicas to 2 under <em>Scaling</em>. Then, hit the <em>Deploy</em> button.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqx7ejxuph90o18d1yo7.png" alt="The edit module screen" /></p>
<p>Once the status goes back to green, hit the <em>Rollback</em> button. You’ll see a list of the module's previous generations (versions). There should just be one. Click the Rollback button for that generation, and you’ll see a diff of the changes that were made.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gub37webjnkxnhup5ib0.png" alt="The diff on the rollback screen" /></p>
<p>Click the <em>OK</em> button to perform the rollback.</p>
<p>Some teams won’t want to manage changes through the Cyclops UI, of course. You can instead use Cyclops with GitOps tools like Argo CD. There’s a GitHub repo with examples <a target="_blank" href="https://github.com/cyclops-ui/gitops-starter">here</a>.</p>
<p>Finally, let’s clean up. Click <em>Delete</em>, and type in the module name to confirm.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uf1e7zdlivlnnkprpscs.png" alt="The delete module screen" /></p>
<h2 id="heading-deploy-redis-with-cyclops">Deploy Redis with Cyclops</h2>
<p>We’ve seen how to deploy an app with a custom Helm chart, but Cyclops can also deploy applications using existing Helm charts. Let’s look at how that works by deploying Redis using the Bitnami chart, which is included with Cyclops.</p>
<p>At the terminal, create a namespace called <code>redis</code>.</p>
<pre><code class="lang-plaintext">kubectl create namespace redis
</code></pre>
<p>In the Cyclops browser tab, click <em>Templates</em> in the left nav bar. Type “redis” in the search box to see the info for the installed template. The source for it is the Bitnami GitHub repo, and it’s coming from the <code>main</code> branch.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jtglm4uymshduets05v6.png" alt="The template search results" /></p>
<p>Now, click on <em>Modules</em> in the left nav and then <em>Add module</em> again. Select <code>redis</code> from the module pulldown list, and type in “redis-cache” for the module name. Click on <em>Advanced</em> and select <code>redis</code> from the list of namespaces.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rgip3b0ukxsjws8typ42.png" alt="The add module screen" /></p>
<p>Scroll down. You will see many other options that can be customized for the Redis install. Feel free to expand and view any that interest you, but leave them set to the defaults. Then, click the <em>Deploy</em> button in the bottom right.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46nz3d0sok5tly8vit2q.png" alt="The deploy module screen" /></p>
<p>It may take a bit for Kubernetes to spin up all the resources, but eventually, they should all go green.</p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kfejsai7yilj81dri26o.png" alt="the module status screen" /></p>
<p>We can confirm the pods are running with this command:</p>
<pre><code class="lang-plaintext">kubectl get pods -n redis
</code></pre>
<p>You should see the primary/master node and three replicas like this:</p>
<pre><code class="lang-plaintext">NAME               READY   STATUS    RESTARTS   AGE
redis-master-0     1/1     Running   0          4m6s
redis-replicas-0   1/1     Running   0          2m21s
redis-replicas-1   1/1     Running   0          3m10s
redis-replicas-2   1/1     Running   0          2m46s
</code></pre>
<p>We can use any Helm chart with Cyclops like this to allow users to deploy the applications they need to run. In the case of a complex module like this one, you can set default values that are needed for your team or even create a custom Helm chart that exposes fewer options.</p>
<p>That’s it for the tutorial. To clean up, you can delete the kind cluster.</p>
<pre><code class="lang-plaintext">kind delete cluster -n cyclops-demo
</code></pre>
<h2 id="heading-conclusion">Conclusion</h2>
<p>We’ve learned how to deploy applications with Cyclops using pre-existing Helm charts and custom ones, and we’ve seen how Cyclops allows teams to easily expose the abstractions they need for developers to deploy and manage their apps.</p>
<p>Whether you’re at an organization that’s not staffed for a dedicated platform team or your platform team would like an easy way to provide self-service for developers, Cyclops could be a great fit for your workflow.</p>
<h2 id="heading-learn-more">Learn more</h2>
<ul>
<li><p>The <a target="_blank" href="https://cyclops-ui.com/docs/about/">Cyclops docs</a> are a great place to start.</p>
</li>
<li><p>Check out their <a target="_blank" href="https://github.com/cyclops-ui/cyclops">open-source repository</a> and support them with a star.</p>
</li>
<li><p>There’s a <a target="_blank" href="https://discord.com/invite/8ErnK3qDb3">community Discord</a> if you’d like help or to give your feedback.</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[KubeCon Chicago Wrapup]]></title><description><![CDATA[KubeCon + CloudNativeCon North America 2023 was held in Chicago from November 6-9. This was the third North American KubeCon since the start of the COVID-19 pandemic.
I wrote my first KubeCon wrapup post for KubeCon San Diego in 2019. If you've read ...]]></description><link>https://blog.richburroughs.dev/kubecon-chicago-wrapup</link><guid isPermaLink="true">https://blog.richburroughs.dev/kubecon-chicago-wrapup</guid><category><![CDATA[Kubernetes]]></category><category><![CDATA[Kubecon]]></category><category><![CDATA[KubeConNA]]></category><dc:creator><![CDATA[Rich Burroughs]]></dc:creator><pubDate>Thu, 16 Nov 2023 16:58:59 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1700098028969/c1062cda-8d85-41d0-81fa-fd782c9952a4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a target="_blank" href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/">KubeCon + CloudNativeCon North America 2023</a> was held in Chicago from November 6-9. This was the third North American KubeCon since the start of the COVID-19 pandemic.</p>
<p>I wrote my first KubeCon wrapup post for KubeCon San Diego in 2019. If you've read the past wrapups, you'll know that I developed a specific style for them. I live-tweeted about the talks I attended and other happenings and then pulled in my tweets and others for the posts.</p>
<p>Given the weird place that X/Twitter is at and the engagement problems many people have noticed, I decided not to live tweet this time. I took notes and wrote up my thoughts afterward.</p>
<p>This was also my last KubeCon with Loft Labs. I've had a lot of fun talking about the company's tools (especially vCluster) with folks in the Kubernetes community, but it's time for a new challenge for me. I also really need a break. If you know someone in the cloud native space looking for a Developer Relations person, feel free to have them reach out to me as long as they can be a little patient with the start date. The best way to reach me is <a target="_blank" href="https://linkedin.com/in/richburroughs">LinkedIn</a>.</p>
<p>Also, if you'd like to view the videos for the talks I recommend they should be posted within a couple of weeks on the <a target="_blank" href="https://www.youtube.com/c/cloudnativefdn">CNCF's YouTube channel</a>.</p>
<h2 id="heading-pre-conference-activities">Pre-Conference Activities</h2>
<p>I spoke at KubeCon Detroit last year and at KubeCon Amsterdam in April, but I didn't have any talks accepted this time. I did present at two events before the conference proper, though.</p>
<p>My first talk was at <a target="_blank" href="https://cloud-native.rejekts.io/">Cloud Native Rejekts</a>, one of my favorite community conferences. If you're unfamiliar with Rejekts, the idea is to give a space for people to present their ideas that weren't accepted for KubeCon. The speakers and talks are always very high quality, and a lot of my favorite people in the community show up. My talk was called Open Source Dev Containers with DevPod, and I had a lot of fun presenting it. I talked through the struggles involved with providing easy-to-use and repeatable dev environments and did a demo of DevPod.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700153602974/48f02cc1-a8d9-4ea0-9ed0-406166e7ace9.jpeg" alt="Adrian Mout from Chainguard speaking about reducing vulnerabilites in container images at Cloud Native Rejekts " class="image--center mx-auto" /></p>
<p><em>Adrian Mout from Chainguard speaking at Cloud Native Rejekts</em></p>
<p>I also did a lightning talk about vCluster at Multi-TenancyCon, one of the KubeCon co-located events. I didn't have much time to attend the rest of the event, but multi-tenancy is a topic that really interests me. It was fun to speak at co-located events, and at some point the CNCF started giving free KubeCon registrations to the co-located event speakers, so that was nice.</p>
<p>The one downside of attending these events is that they make the KubeCon week much longer. In my case, the trip went from five days for the conference proper to eight days. It was worth it for me, but it's something to consider.</p>
<p>I also attended the Lightning talks on Monday evening, which were a lot of fun. One of my favorites was the talk about the CNCF's <a target="_blank" href="https://contribute.cncf.io/about/deaf-and-hard-of-hearing/">Deaf and Hard of Hearing Working Group</a>. I wasn't aware of their work around making events and meetings more accessible, and it's fantastic. I also loved Tim Hockin's talk about the problems with the Service primitive in Kubernetes and the Gateway API.</p>
<p>This was my first time making it to the Lightning Talks, and I will be back in the future.</p>
<h2 id="heading-day-one-tuesday">Day One - Tuesday</h2>
<p>This time around, the KubeCon schedule changed from Wednesday-Friday to Tuesday-Thursday. I liked that change as it meant traveling home on Friday instead of on the weekend. Thank you CNCF for that.</p>
<h3 id="heading-keynotes">Keynotes</h3>
<p>The opening morning's keynotes focused a lot on running AI/ML workloads. I didn't sense as strong a theme at this KubeCon compared to some in the past, but if there was a central theme, that was it. My friend Joseph Sandoval did a panel on AI/ML, and Taylor Dolezal did a panel with end users.</p>
<p>My favorite part of these keynotes was the panel about sustainability called Environmental Sustainability in the Cloud Is Not a Mythical Creature, hosted by Frederick Kautz. This is a super important topic, and I'm always happy to hear about the advances in this area. The talk mentioned Kepler, a tool I've wanted to look at.</p>
<p>There were also updates from the CNCF's graduated projects, which now include Cilium and Istio.</p>
<p>The CNCF also put together a very nice In Memorium video with tributes to folks in the cloud native community who died this year. I was happy to see my friends Kris Nova and Carolyn Van Slyck included. They were both fantastic people who contributed to the community, and their losses were huge blows. There is a <a target="_blank" href="https://github.com/cncf/memorials">GitHub repo</a> where you can add your memories of those folks.</p>
<h3 id="heading-a-practical-guide-to-ebpf-licensing-or-how-i-learned-to-stop-worrying-and-love-the-gpl-jef-spaleta-amp-bill-mulligan-isovalent">A Practical Guide to eBPF Licensing: Or How I Learned to Stop Worrying and Love the GPL - Jef Spaleta &amp; Bill Mulligan, Isovalent</h3>
<p>I don't focus much on open source licensing, but I wanted to learn how it impacts projects using eBPF. Jeff and Bill both work at Isovalent, and they did a thorough job explaining the situation. The portions of eBPF projects that run in the kernel are required to use the GPL, but CNCF projects must use the Apache 2.0 license. The recommendation was to use the GPL for the kernel bits and Apache 2.0 for the parts of the software that run in userspace. The CNCF has made an exception for projects that use eBPF, allowing them to use the GPL for the code that runs in the kernel.</p>
<p>This was a situation that I wasn't aware of at all. If you are working with eBPF projects, this talk is worth watching.</p>
<h3 id="heading-when-is-a-secure-connection-not-encrypted-and-other-stories-liz-rice-isovalent">When Is a Secure Connection Not Encrypted? and Other Stories - Liz Rice, Isovalent</h3>
<p>Next, I went to another eBPF talk. If you have read my last few KubeCon wrapups, you know already that it's an interest of mine. I'm also a big fan of Liz's. We had <a target="_blank" href="https://share.transistor.fm/s/4eb55f1f">a great conversation</a> on my podcast Kube Cuddle last year.</p>
<p>This talk covered how Cilium and other service meshes handle encryption and identity. It's a bit hard for me to sum up because it was pretty technical. Networking also isn't my strongest area. But if you are interested in networking and Cilium, check this one out. Liz is a great speaker.</p>
<h3 id="heading-demystifying-service-mesh-separating-hype-from-practicality-brian-redmond-amp-ally-ford-microsoft">Demystifying Service Mesh: Separating Hype from Practicality - Brian Redmond &amp; Ally Ford, Microsoft</h3>
<p>This was an engaging introduction to service mesh. It focused on the features most meshes provide, like observability, tracing, traffic management, blue/green deploys, canary testing, A/B testing, and even fault injection.</p>
<p>You may have heard the term Progressive Delivery (<a target="_blank" href="https://redmonk.com/jgovernor/2018/08/06/towards-progressive-delivery/">coined by James Governor</a>) used to refer to some of these practices, as well as things like feature flags. Progressive delivery practices allow teams to deploy more safely, and deployment safety is a huge factor in developing high-performing teams. If you've ever been on call, you understand. Service meshes make things like using canaries to test and having rollbacks easy to implement.</p>
<p>If you are new to service mesh and want to see what it can offer your team, check out this talk.</p>
<h3 id="heading-service-mesh-battle-scars-technology-timing-and-tradeoffs-keith-mattix-microsoft-john-howard-google-lin-sun-soloiohttpsoloio-thomas-graf-isovalent-flynn-buoyant">Service Mesh Battle Scars: Technology, Timing, and Tradeoffs - Keith Mattix, Microsoft; John Howard, Google; Lin Sun, <a target="_blank" href="http://solo.io">solo.io</a>; Thomas Graf, Isovalent; Flynn, Buoyant</h3>
<p>Could I go to yet another talk about service mesh? Yes, I could. This one was very different, though. It was a panel hosted by Keith Mattix, and the panelists represented Cilium (Thomas), Istio (Lin and John), and Linkerd (Flynn).</p>
<p>The focus was on areas where the approaches of the tools differ, and things got a bit spicy at times (which was intended). Keith was a very entertaining moderator, and the panelists were all experts in their fields. If you are interested in the differences between these projects or like panels that get a bit contentious, this presentation is for you. I did enjoy it, and it was great to have something entertaining at the end of the day.</p>
<p>I decided to take it easy in the evening after the talks. This was already day five of my trip, and I was feeling it. These big conferences like KubeCon can be very draining, so I focus on pacing myself. If you are new to this kind of conference, it's important not to feel like you have to do everything possible. It's okay to take a break and recharge or to spend time on the hallway track instead of seeing a talk in every slot.</p>
<h2 id="heading-day-two-wednesday">Day Two - Wednesday</h2>
<h3 id="heading-keynotes-1">Keynotes</h3>
<p>The day two keynotes began with a talk from Hermanth Malla and Laurent Bernaille of Datadog, who talked through an incident that caused an almost 24-hour outage for Datadog. That outage would be rough for any application, but I'm sure many customers were caught without a backup method to observe their systems. I have a lot of respect for folks who will talk openly about outages like this and share learnings with the community.</p>
<p>Other highlights for me were a panel on inclusion and Jeremy Rickard from Microsoft talking about Long Term Support (LTS) for Kubernetes. A Kubernetes Enhancement Proposal (KEP) is open to change the supported period from 9 months to a year, which is a great idea.</p>
<p>The Community Awards have always been a favorite part of KubeCon for me. Those folks put a lot of time and energy into improving the community, and it's great to see them get recognized for it. You can see a list of the award winners in this <a target="_blank" href="https://www.cncf.io/announcements/2023/11/08/cloud-native-computing-foundation-announces-2023-community-awards-winners/">CNCF blog post</a>. Congratulations to all of them.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700153262858/b2327978-6f80-4f93-90be-0ba84e2da840.png" alt="A slide showing a photo of Divya Mohan, winner of the Top Documentarian award for 2023" class="image--center mx-auto" /></p>
<p><em>Winner of the 2023 Top Documentarian award, Divya Mohan</em></p>
<h3 id="heading-learning-kubernetes-by-chaos-breaking-a-kubernetes-cluster-to-understand-the-components-ricardo-katz-vmware-amp-anderson-duboc-google-cloud">Learning Kubernetes by Chaos – Breaking a Kubernetes Cluster to Understand the Components - Ricardo Katz, VMware &amp; Anderson Duboc, Google Cloud</h3>
<p>This was one of my favorite talks of the conference. The premise was to fix a broken kind cluster bit by bit, and the speakers explained the different components of the cluster as they fixed them (apiserver, controller manager, scheduler, etc.). I don't want to spoil any of the jokes, so I will leave it by saying this was a brilliant combination of humor and education. I highly recommend watching it, especially to beginners.</p>
<h3 id="heading-dungeons-and-deployments-leveling-up-in-kubernetes-noah-abrahams-oracle-natali-vlatko-cisco-kat-cosgrove-dell-seth-mccombs-acuitymd">Dungeons and Deployments: Leveling up in Kubernetes - Noah Abrahams, Oracle; Natali Vlatko, Cisco; Kat Cosgrove, Dell; Seth McCombs, AcuityMD</h3>
<p>The other talk I saw on Wednesday was another one filled with jokes. In this one, the speakers explained some parts of Kubernetes by playing a tabletop role-playing game. There were a lot of jokes and plenty of puns that left people in the audience groaning. This one was heavier on the humor than the education, but it was a lot of fun.</p>
<h3 id="heading-documentary-film-ebpf-unlocking-the-kernel">Documentary Film - eBPF: Unlocking the Kernel</h3>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700098301279/e957c53f-fd2c-4305-84d2-fe8ed5afe6e2.webp" alt="The poster for the film eBPF: Unlocking the Kernel. It contains photos of several folks who were interviewed for the film." class="image--center mx-auto" /></p>
<p><em>The poster from the film eBPF: Unlocking the Kernel</em></p>
<p>I was very much looking forward to the premiere of the new documentary about the creation and growth of eBPF. I loved the <a target="_blank" href="https://www.youtube.com/watch?v=BE77h7dmoQU">Kubernetes Documentary</a> from the same filmmakers, but I knew the Kubernetes story better going in than I knew this one.</p>
<p>I was initially introduced to eBPF through Brendan Gregg, who was at Netflix back then. Brendan was posting on Twitter about the Linux performance flame graphs he generated with eBPF, and I saw him speak at SRECon about that topic. But it was several years later before I understood that eBPF can do much more, including networking and other observability.</p>
<p>I could go on a lot more about the film, but I think I will write a separate review of it soon. So, for now, I will leave off by saying that I recommend it for folks interested in eBFP and that you can watch it for free <a target="_blank" href="https://www.youtube.com/watch?v=Wb_vD3XZYOA">on YouTube</a>.</p>
<p>After the film, I headed over with some of the Isovalent folks to their post-event party. I saw a lot of friends and had a great time. I feel fortunate that I've been able to connect with so many people in this community and learn from them, whether it's about open source tools or other aspects of what we do, like community and inclusion. Thanks to Isovalent for throwing such a fun party.</p>
<h2 id="heading-day-three-thursday">Day Three - Thursday</h2>
<h3 id="heading-keynotes-2">Keynotes</h3>
<p>I was dragging by Thursday, day seven of my trip, so I missed the keynotes. I heard from multiple people that Tim Hockin's keynote was great, though, so I watched it afterward on the conference platform.</p>
<p>Tim's talk was called Kubernetes in the Second Decade. It was a very interesting look from a Kubernetes expert at what directions the project should take in the next ten years and what the challenges are. Tim covered topics like running AI/ML workloads, multi-cluster, complexity, and reliability. He introduced the concept of a complexity budget, which I loved. He said that there's a finite amount of complexity we can add to Kubernetes and that we need to say no to some things now so we can do other cool things later.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1700152828581/23ddf0b3-47bb-43ac-aa5e-1d0e76454ca6.png" alt="A screenshot from the conference streaming platform. There's a cartoon of Tim's face with the quote, &quot;The impact of AI/ML will be on the same scale as the impact of the Internet itself." class="image--center mx-auto" /></p>
<p>I strongly recommend watching Tim's talk when the videos are released.</p>
<p>Despite my final-day fatigue, I made it to a couple of sessions on Thursday.</p>
<h3 id="heading-sidecar-containers-are-built-in-to-kubernetes-what-how-and-why-now-todd-neal-amazon-amp-sergey-kanzhelev-google">Sidecar Containers Are Built-in to Kubernetes: What, How, and Why Now? - Todd Neal, Amazon &amp; Sergey Kanzhelev, Google</h3>
<p>Making sidecar containers first-class citizens is a change I wasn't aware of before I saw the KubeCon schedule. This talk explained how the sidecar containers work, and this talk should be helpful for many people as loads of us use sidecars.</p>
<p>The new sidecars are basically init containers that continue to run and are set to restart always. They start before the "main" container and end after it so that they will capture data like logs and metrics for the primary container’s entire lifecycle.</p>
<p>The feature is alpha in Kubernetes 1.28 and will be beta in 1.29. It’s super useful work from the SIG Node team. Big thanks to them.</p>
<h3 id="heading-releasing-kubernetes-and-beyond-flexible-and-fast-delivery-of-packages-grace-nguyen-university-of-waterloo-adolfo-garcia-veytia-chainguard-john-anderson-ditto"><strong>Releasing Kubernetes and Beyond: Flexible and Fast Delivery of Packages - Grace Nguyen, University of Waterloo; Adolfo Garcia Veytia, Chainguard; John Anderson, Ditto</strong></h3>
<p>The final talk I saw at KubeCon Chicago was in the last slot of the day, and it was a presentation by members of the SIG Release team.</p>
<p>If you've read my past wrapup posts, you know that I have a lot of love for SIG Release. They do a lot for the Kubernetes project, and it's all very much in the "chop wood, carry water" vein. Release engineering tends not to get much attention until something goes wrong, and it's very challenging work. So I really appreciate the folks on this team.</p>
<p>The talk covered a lot of things that are happening with SIG Release. The team is still moving from the original Google infrastructure to the new infra for the project. It's great that Google donated so much, but the project doesn't want to be too dependent on one company. The team has also been working with SIG Docs on a release checklist.</p>
<p>If you want to get involved with SIG Release, they have a program where people can shadow the current members to learn. You can find <a target="_blank" href="https://github.com/kubernetes/sig-release/blob/master/release-team/shadows.md">more info here</a>. From what I've heard, it's a great program.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>That was it for my KubeCon Chicago. Overall, I had a great time and am glad I could attend. I would have loved to see more of Chicago (the only pizza I had was Detroit-style), but hopefully I can make it back there.</p>
<p>I think I enjoyed the April event in Amsterdam a bit more. It feels to me like the US events are not bouncing back from the pandemic as well as the European ones. San Diego, the last KubeCon before the pandemic, had something like 15,000 attendees. I heard that Chicago was more like 8,000 to 9,000 registered, but the crowd didn’t feel that big.</p>
<p>There are additional reasons for this besides COVID-19, like companies cutting travel budgets. I know some people who had to travel to Detroit last year on their own dimes, and that may still have been the case.</p>
<p>But even a KubeCon that's a bit smaller is a fantastic time for me. I got to see so many friends from the community and learn some things, too.</p>
<p>I don't know if I'll be in Paris next spring. It will depend a lot on where I'm working. But I should be able to attend the next North American event in Salt Lake City.</p>
]]></content:encoded></item><item><title><![CDATA[Polywork is Much More than the New LinkedIn]]></title><description><![CDATA[One day I was on Twitter minding my own shitposts when I saw this tweet:
https://twitter.com/cassidoo/status/1387475817568034823
Cassidy is on the amazing Developer Experience team at Netlify, and she creates fantastic content. She's so  smart and fu...]]></description><link>https://blog.richburroughs.dev/polywork-is-much-more-than-the-new-linkedin</link><guid isPermaLink="true">https://blog.richburroughs.dev/polywork-is-much-more-than-the-new-linkedin</guid><category><![CDATA[advice]]></category><category><![CDATA[personal]]></category><dc:creator><![CDATA[Rich Burroughs]]></dc:creator><pubDate>Wed, 16 Jun 2021 07:10:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1623825403091/a2nk6e0AX.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One day I was on Twitter minding my own shitposts when I saw this tweet:</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/cassidoo/status/1387475817568034823">https://twitter.com/cassidoo/status/1387475817568034823</a></div>
<p>Cassidy is on the amazing Developer Experience team at Netlify, and she creates fantastic content. She's so  <a target="_blank" href="https://twitter.com/cassidoo/status/1397984735234772994">smart and funny</a> . I'm a legit Casidoo fanboy, I'm not going to lie. So I figured if she was involved with this Polywork thing, I should check it out. When I looked at  <a target="_blank" href="https://timeline.cassidoo.co/">her page there</a>  I was very intrigued.</p>
<p>I'd been looking for a while for a place to showcase the work I do. I work in Developer Relations for software companies, and I do a lot of writing. But I also share my ideas in  <a target="_blank" href="https://twitter.com/kubecuddlepod">my podcast about Kubernetes</a>, in conference talks, on YouTube, and way too often on  <a target="_blank" href="https://twitter.com/richburroughs">Twitter dot com</a>. I've wanted a central location to showcase all of that work, but I didn't want to build and maintain it. I could have just made a blog and linked to all of the things, but that didn't feel right either. And nothing personal LinkedIn, but you are not the platform for this purpose for me. I wouldn't want to post a lot of things I tweet there.</p>
<p>Polywork was not yet open to the public (it's still not as of this writing). I sent Cassidy a DM on Twitter, and she was kind enough to give me an invite code. And once I started playing around I was hooked. It was super easy to add things and begin generating a timeline of my work. It didn't take me too long to see the power in Polywork.</p>
<p>As I started setting up my profile, I noticed that another user had a badge labeled College Dropout. I've dropped out of college twice and joked on Twitter that I wanted to add it twice.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://twitter.com/richburroughs/status/1387486360689209344">https://twitter.com/richburroughs/status/1387486360689209344</a></div>
<p>Soon I was DMing with the <a target="_blank" href="https://twitter.com/PolyworkHQ">PolyworkHQ Twitter account</a>, and someone had made me a badge that said College Dropout x2. I thought it was so funny and kind to listen to a user like that and engage.</p>
<p>I later found out that it was Polywork founder and CEO <a target="_blank" href="https://www.multiplay3r.com/">Peter Johnston</a>  who was answering those DMs late on a weeknight. (I think/hope Peter has since hired someone to do social media since then). We got to talking, and Peter's enthusiasm inspired me. He was thrilled that people were trying out Polywork and having so much fun. </p>
<p>Soon after that, I noticed that Cassidy had a blue checkmark on her profile, and I asked Peter about getting verified. We scheduled time to hop on a Zoom call. I showed Peter my ID, and that was it. It just took a few minutes. Peter told me that he thought it was a person's right to verify their identity, which was so refreshing to hear. I've complained <a target="_blank" href="https://twitter.com/richburroughs/status/1400894662366228481">many times</a> about Twitter's <a target="_blank" href="https://twitter.com/richburroughs/status/1402415605290979328">elitist verification system</a>, which often ignores the people who need to protect their identities the most.</p>
<p>I kept filling out <a target="_blank" href="http://timeline.richburroughs.dev/">my Polywork timeline</a>, and I was having a lot of fun doing it, but eventually I had a much bigger realization about how Polywork could help me. I have ADHD. I'm middle-aged and was diagnosed in December of 2020. It's had an enormous impact on my life. There are a lot of behaviors that I had recognized in myself well before I was diagnosed, and one of them is that I'm terrible at remembering what I've accomplished. You know the thing where review time comes at work, and you're supposed to list the things you did that year? I usually draw a blank. I end up in a mad scramble looking through old tickets and Google Docs to figure out what happened. Or maybe I decide to be proactive and make a <a target="_blank" href="https://jvns.ca/blog/brag-documents/">brag doc</a> to track my accomplishments in, but I forget it exists.</p>
<p>There are a few reasons that I think I have this problem. First, working memory problems are one of the main symptoms of ADHD. That thing where you walk into a room and then can't remember why you went in there, that's me, over and over. Everyone's experience with ADHD is different, and I'm going to be generalizing some here, but that's a common experience for me. Second, the relationship ADHD people have with time is very different than neurotypical folks. It's often described as living in two times, "Now, and not now." I tend to be stuck in the present or daydreaming a lot of the time. Daydreaming can be great for creativity but not so great at review time. And third, I'm not great at appreciating things that I achieve. My excellent ADHD coach  <a target="_blank" href="https://twitter.com/dustychipura">Dusty Chipura</a> talks about the fact that we ADHD folks don't take the time to enjoy when we've completed something, to pat ourselves on the backs. I'm definitely that way. All three of these factors add up to me being lucky to remember what I did a couple of weeks ago, let alone last quarter.</p>
<p>As I was looking over my timeline one day, it struck me that Polywork could help me with this problem. My timeline is a map of the things I've accomplished. Items that aren't public won't be there, of course, but most of what I do is public. Having that map could help at performance review time, but it goes beyond that. I do my podcast as a hobby because I love the Kubernetes community. I've started this blog up because I want to write about things outside of work. I make  <a target="_blank" href="https://www.tiktok.com/@richburroughs?lang=en">TikTok videos</a> and  <a target="_blank" href="https://twitter.com/richburroughs/status/1398657340455350272">tweet about ADHD</a> because it feels important to talk about. People have reached out to tell me that hearing my experiences with ADHD led to them getting diagnosed or getting their child diagnosed. Those are all things that I should give myself credit for.</p>
<p>I have a lot of self-image issues, which I think is pretty common for folks with ADHD. I was the kid in high school who got told that I needed to apply myself. I either got As in classes or barely passed, depending on whether I gave a shit about the subject. I really did drop out of college twice. I joke about it now, but it's not always been funny. Folks diagnosed with ADHD as adults have often spent many years hearing people tell them that they're losers or telling themselves that.</p>
<p>The day that I had that realization about the timeline is the day that Polywork went from a cute tool that was going to help me build an online resume to something different. I realized it was much more than the new LinkedIn. I talked about my thoughts on Twitter, and Peter reached out to tell me how excited the team was to hear about my discovery. It wasn't a use case they anticipated. I hadn't expected it either.</p>
<p>Polywork's tagline is "For Multiplayers." I didn't understand what that meant at first, but now I do. I create things for work, but I also make things for myself or the communities I'm a part of. Those things are all me. I'm more than just my job, and so are you.</p>
<p>As of this writing, you still need an invite code to sign up for Polywork. Since you've been kind enough to read my thoughts, I'm going to share my invite code with you so you can try Polywork yourself.  Go sign up at polywork.com and use the code "richvip" (without the quotes). It's free. I'm not being compensated for folks signing up or for writing this.</p>
<p>I hope you enjoy Polywork as much as I have, and I'd love to hear about your experiences. Leave a comment here or <a target="_blank" href="https://twitter.com/richburroughs">at me on Twitter</a>. And feel free to  <a target="_blank" href="https://www.polywork.com/richburroughs">follow me on Polywork</a> if you'd like to keep up with what I'm creating.</p>
]]></content:encoded></item></channel></rss>