My Weekly Retrospectives

Week of 2022-08-22

This Week, In Brief

Highlights

Goals

Goal Grades

Kubernetes Developer Platform: Finish control center state management component

Kubernetes Developer Platform can now keep track of control centers in lightweight state files! I thought this would take a while due to unknown nuances, but I was pleasantly surprised when it didn’t.

Kubernetes Developer Platform: Start creating clusters through providers

I got Kubernetes Developer Platform creating clusters through a simple Kind provider, but had trouble getting the cluster names to be correct. This was slightly frustrating, especially since it takes quite a while (1-2 minutes per cluster) to get these end-to-end tests to pass.

LinkedIn Learning: Get TOC’s Approved

It took A WHILE to get the schedule done and dusted on my physical and Trello boards, but it’s done!

I’m also happy that I got this course approved. I’m really excited to begin recording it.

Other Thoughts

Scaffolding actually works

Kubernetes Developer Platform is a developer platform I’m writing that makes it easier to deploy applications into Kubernetes without needing to learn Kubernetes. I’m writing it entirely in Bash to maximize the number of contributors that can help scale and improve it.

Because Bash was the langauge of choice here, I spent the first two weeks of this project on nothing but scaffolding. By “scaffolding”, I mean:

It’s been paying off IN DIVIDENDS for this project.

Generating consistent logs throughout the project couldn’t have been easier. I can throw log_verbose statements pretty much anywhere in the codebase and see what’s going on through each component.

However, where it’s REALLY paid off is anytime I’ve needed to interact with YAML anywhere.

Developers interact with Kubernetes Developer Platform primarily through things called “Orion’s Belt specs.” They are similar to using Docker Compose manifests, but with more defauls and fewer options. These are written in YAML, because that’s what The Industryâ„¢ has decided upon.

Because this is the chief interface by which things are created and configured, there’s lots and lots of YAML querying going on. Writing the commands for all of these queries would have been an ABSOLUTE PAIN without the yaml.sh library I wrote during the first two weeks, and validating that everything is working correctly would’ve been downright impossible without bats and bats-mock.

It was slow to start because of this, but like I predicted back then, I’m getting a lot of speed now. It took me a month to get the schema validator component done, but less than a week to create the cluster creator component.

Everything takes WAY longer than you think it does

I wanted to find a Trello CLI to automate creating cards for my new Learning Docker course. Given that Trello has a really accessible API, I thought there’d be an ocean of options to choose from.

Well, there weren’t.

Witness how a task I thought would take 30 minutes took four friggin' hours and cause minor havoc over my schedule:

In the end, I landed up writing my own lightweight wrapper around their API documentation because, crazily, that was faster than trying to not reinvent the wheel.