I Completely Bombed So You Don't Have To...
Deploying to Google Cloud/GKE with GitHub Actions
(tl:dr; I created a repo that has a boiler plate for deploying to GKE. I've documented the code pretty well. The rest of this is just me reflecting on it because I think it's important.)
I just got home from teaching a USSF Grassroots course. One of the topics that came up is what to do when things go wrong. I was telling a story about when I did my National "D" license, the training session I had worked on with teams at home completely fell apart when working with a top U12 girls team in Boise. Under normal circumstances, I would just pivot to something else. However, this was an assessment and someone was watching me so I panicked.
Anyways, that happened today during a coding assessment and in an effort to maybe prove to myself that I do actually know what I'm doing, I'm writing it down and committing it to code.
Maybe it will bail me out next time.
The Comfort
When you've done something successfully and repeatedly, you naturally forget the amount of work that it took to get there. You forget the shell scripts and weird hacks that it took before you wrote the Terraform module. You forget the small nuances involved in that module.
Two months since last touching it is a dangerous zone. You still have the muscle memory, but you've forgotten all of the nuances. You feel confident and comfortable in it because you've done it so many times, but you've forgotten all of the configuration it takes beforehand to make it all work.
So you focus on something different that you think you're going to struggle with and end up tripping before you even get to the football.
The Project
The goal was to create an application that could be deployed to Kubernetes, deploy it, and build out a CI/CD pipeline for it. This is a simple task I've done 100+ times. In preparation, I focused on remembering how to create a Kubernetes cluster from scratch and overlooked the fact that I do not have a templated authentication handler that is repeatable as it is all locked up in private repos for a company I no longer work for.
The Result
A two hour video in which 45+ minutes is me fighting with an OpenID configuration issue.
What was the issue?
I transposed two words in one piece of configuration and in the spiraling around that transposed it in other places. Creating a lasagna of mistakes that made the easy part hard and changed the headspace I was in.
A couple hours separated from it, I know that I wouldn't have been hung up on it. I could have taken a beat, caught my breath, and took a deeper look.
Something about the eyes of that clock watching me though, I just couldn't help but panic.
Anyways, there's a repository in GitHub with a clean example that is well documented. I wish I would have had it this morning, but you can only hope that someone will see you trying to chase down a problem and not laugh at you too hard.
I know there's a mixed audience who will care about one side of this or the other, so I tried to cover both.