2024 is at and end and I thought I would sit and write, stream of consciousness-style, about things that I remember. Some of this is going to be pretty raw emotion and if you’re not up for that, please tap out now.
Overall it’s been a pretty good year. I’ve been at peace on a great many things and struggling with others. Technology-wise I am still rolling with four main devices: An M1 Max MacBook Pro with 32gb of RAM (Devika), an iPhone 16 Pro 1TB (downsized from a 15 Pro Max and don’t miss the size one bit), an Apple Watch S10 (gave my Ultra 1 to my middle daughter who frustratingly doesn’t use it… I should have just traded it in), and an M4 iPad Pro that I absolutely adore and am forcing myself to use more often. I’m trying to understand the decisions and trade offs that were made with iPadOS and lean into them rather than letting my old age muscle memory take over. I find myself asking questions like… “do I really NEED a professional file manager or should I just let the apps take over their space and manage files on the apps themselves?” That seems like the way Apple wanted it. I’m trying to adapt. I very much love the focus afforded by the device and opportunities for creativity.
Why does this work:
private_ipv4_google_access = "true"
…but this doesn’t:
private_ipv6_google_access = "true"
This anomaly comes to you courtesy of Google’s “google_compute_subnetwork” Terraform resource. A gander at the documentation says this:
Ok. What are the acceptable inputs there? The examples in the documentation provide exactly zero guidance. You either have to go look at the Go code for the resource or do a lot of trial and error. The trial and error is especially fun because they didn’t put any checking around that field whatsoever. It would happily accept “true” but then set it to “DISABLE_GOOGLE_ACCESS” after your Terraform runs. Then on your next apply, you’d see this:
resource "google_api_gateway_api" "api_gw" {
provider = google-beta
api_id = "my-api"
}
resource "google_api_gateway_gateway" "api_gw" {
provider = google-beta
api_config = google_api_gateway_api_config.api_gw.id
gateway_id = "my-gateway"
}
Am I the only person here that thinks this resource naming is absurd? I should be able to look at these resource names and immediately understand what is going on here. This is nothing but confusion.
I wish I could say this is the only example of this ridiculousness in the Google/Google-beta provider (speaking of, two providers? Really?) but it’s not.
If you’re just coming back to work today to find your data filters in Terraform (or Pulumi, or whatever) are broken while trying to run a deployment, check this out:
https://aws.amazon.com/blogs/aws/update-on-amazon-linux-ami-end-of-life
Amazon has pulled all of the old Amazon Linux AMIs that might respond to your filter. You need to check and make sure your filter is updated. This issue is a little confusing because you can still launch instances from the public SSM parameter, but the API and console won’t let you see it.
Electron owns way too much of my disk. It’s time to move on.
I have always wanted to use Firebase and Google Cloud for more and more projects. My last support experience with AWS was bad enough that I decided it was time to make the leap. Galaxycow is now using Firebase hosting. Bear with me for the SSL errors for a little while.
Pro Tip: Don’t use iCloud’s “Hide My Email” feature to create email addresses to use with Amazon accounts. They trip a security rule and AWS is straight up impossible to work with on resolving the situation. We’ve reached the point where it’s so hard to prove your identity and actual use of a product that it’s just not even worth the time.
Probably the toughest and most mind-boggling thing about any cloud profession is that you could easily spend your entire career working and learning about one of the cloud providers, such as Amazon or Azure.
But the reality, in practice, is that CIO’s want you to know them all. Why? They just don’t feel comfortable with “all the eggs in one basket.” But they’re more than happy to pay one person a fraction of their worth to have to know how to do them all.
That part kind of sucks.
I really love Terraform. It’s been driving my career advancements for the past 2-3 years. I’ve really enjoyed working with it. As such, I do try to create useful Terraform modules to give back to the community. Most of the module work I have done has been for my employer, but sometimes I make code that is more for myself. This is one such module.
Day 5 of re:Invent 2019 came and my body had already went. My attention span had expired. My energy had expired. Even though I slept a good 7 hours, I still had to take on a nap in the afternoon.
I only attended one session on the last day before the whole show shut down. But the last session didn’t really garner any interesting notes. Sorry.
Read on for my list of sessions that I want to explore on YouTube as additional learning. I’ll provide the session codes only. It’ll be up to use to find them on the AWS YouTube channel.