Resurrecting the Dead
A little over a year ago I created the blog as a way to kick myself into gear and learn a bit of Hugo. I can now say that while it did force me learn Hugo and I rewrote my personal site with it, I never did get around to doing much with this blog.
Today, That Changes!
For the past few months I've been migrating services from my homelab, onto dedicated servers or VPS instances. As part of the migration I've decided to bite off more than I was comfortable with and am redesigning my source-control -> CI -> and deployment pipeline. On the homelab I'm hapilly running the latest version of GitLab Community Edition, and it does everything I could ever need of it. However, it's a giant monolith and I don't really understand all the moving pieces under the covers. I can conceptualize them, but I yearn to understand the concepts and principles that bring the pieces together and bind them into such a powerful suite.
I've already started down that path and I'll be writing a series about the new system I'm setting up. Here are the components I know I need in some capacity.
- Source Control (git, mercurial, …)
- Source Control Server (Gogs, Gitea, GitLab, GitHub, Bitbucket, …)
- Continuous Integration (Jenkins, Drone, GitLab, Concourse, …)
- Deployment (Jenkins, Drone, GitLab, Concourse, Docker-Compose, Kubernetes, OpenShift …)
- Secrets Management (Jenkins, GitLab, Hashicorp Vault, Consul, CredHub, …)
- Container Registry (Artifactory, Sonatype Nexus, …)
I've already made some decisions on the stack, but for these posts I'll be starting from the top and documenting my procesing and thinking. I also don't know what I don't know, so there are likely things that should be on this list that aren't.
Some key requirements for my stack.
- All the services must be containerized
- All the services must be able to operate privately and publicly
- All public facing services must play nicely behind a reverse proxy
- All services requiring a login would ideally be compatible with OpenID Connect
What good resurrection wouldn't be complete without these important words.
ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn