The Great Kubernetes Deployment Debacle

As I delved deeper into the world of Kubernetes, I found myself wanting to visualize dependencies and gain a better understanding of how things work. Specifically, I was curious about where my container (pods) spawn when I apply one of those lovely YAML files with deployments. Unfortunately, I couldn’t find a single command within kubectl that provided all the information I needed in one call. This led me to create my first personal repository on GitHub – kubectl-lsdeploy.

The journey began with a minimal working code base, and I was more interested in getting something up and running quickly rather than striving for perfect code quality. The result is a Python script that provides a list of all deployments, their status, and the pods associated with each deployment. I’m still learning about GitHub Actions for testing and building automation, so there’s room for improvement in terms of code quality and functionality.

My journey wasn’t without its challenges, however. I was using Minikube on my private Windows notebook, and things were going smoothly until I decided to update everything to the latest version using choco. This led to Minikube failing to start, and upon investigation, I discovered that two packages had been updated: VMware Workstation 15 Pro and NSX-T.

As I explored my tools and terminal/shell, I realized how ignorant I was in this area. Watching experts like Cody de Arkland in some VMworld presentations left me in awe of their command line prowess. Research led me to understand that I was dealing with an edge case for only a handful of customers, and the problem itself is not new.

In the process of bringing myself up-to-date with NSX-T, I struggled with terminology related to my existing NSX-v knowledge. Fortunately, there are excellent blog posts available that compare the “edge” at a high level. This post does not aim to define what a requirement/constraint is; instead, it points to other good sources of information. Jeffrey Kusters did an excellent job of summarizing the topic, and I’ve included two other helpful links for further reading.

In conclusion, my journey into Kubernetes and NSX-T has been a learning experience, and I hope that by sharing my struggles and discoveries, others may benefit from them. As always, I encourage you to do your own research before diving into these complex topics.