Reanimating my personal infrastructure...as code
My personal infrastructure has always been managed and defined, at least in part, through code. This began with Bourne and Korn Shell, 'sed', 'AWK', and 'Perl', then 'cfengine' and 'puppet', and eventually 'ansible'. The larger part of my personal infrastructure management has been through what is generally termed, 'click ops'. This project is about eliminating (or at least significantly reducing) the necessity of having to 'click' in a graphical/web UI.
I decided to use Pulumi for provisioning, primarily so I wouldn't have to use HCL. As a configuration language, HCL lacks features that facilitate higher levels of abstraction and reduce repetition, and I prefer Nickel Lang or CUE for defining configuration. It is also subject to Hashicorp's decisions. That said, I am using Go as the initial language for my Pulumi-driven infrastructure. This is to reduce the number of languages and tool-chains in the build pipeline, as well as minimize the number of new things to learn.
The first step is importing my current DNS, compute, and storage infrastructure into Pulumi: