Skip to content

ejsdotsh/infrastructure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Reanimating my personal infrastructure...as code

This is the public repository for rewriting the 20+ years of ad-hoc scripts and automation used to manage my personal infrastructure. One of the primary goals of this project is to replace (or at least significantly reduce) click-ops (having to 'click' in a graphical/web UI) with a model-driven and GitOps-like workflow.

I decided to use Pulumi for provisioning, primarily so I wouldn't have to use HCL. As a configuration language, I find that HCL is...strongly opinionated in ways that I would prefer to avoid, and I prefer Nickel Lang or CUE for defining configuration. 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 and minimize the number of new things to learn simultaneously.

My personal infrastructure

For the purposes of this project, my personal infrastructure is my home network/lab, and various *aaS providers for DNS, websites, email, and such.

The reanimation of my infrastructure will include:

  • Programmatic management and migration of infrastructure secrets from 1Password to ProtonPass
  • Defining models for all managed infrastructure components
  • Replacing my existing webserver and websites
  • Rebuilding my NAS using ProxmoxVE
  • Rebuilding Octopik3s
  • Implementing and integrating Netbox as the source-of-truth
  • Monitoring, observability, and dashboards

Following the maxim, "Make it work; Make it right; Make it fast", the first step is importing my current DNS, compute, and storage infrastructure into Pulumi. Once the existing infrastructure is imported (i.e. it works), the next step will be to refactor and rewrite the code with Pulumi Component Resources, to remove duplication and make it work more-correctly, as well as utilizing CUE to validate correctness.

Infrastructure components

My infrastructure "tech stack" currently consists of:

About

reanimating my personal infrastructure...as code

Topics

Resources

Stars

Watchers

Forks