Unrelated; we have started work on an Atlantis K8s...
# atlantis-contributors
c
Unrelated; we have started work on an Atlantis K8s Controller for our setup, that might be legible for OSS some time in H2 depending on how the experiment goes 🙂
👀 1
g
Will this spawn a pod to run a job? Plan/apply?
c
no; not in the current iteration - first step we're working on is to just make it easy for us to manage ~100 of them with updates, configuration, health checking, etc. 🙂
but on-demand or time-based/event based scheduling is on the roadmap
🙌 1
for example, we want to "bucket" our instances into X tiers (dev, test, beta, prod) and have the system auto-promote new instances based on success/failure when we release new images
g
Interesting. When we get to those levels of automation, terraform is not an option anymore and something like crossplane comes into play.
c
yeah, right now we submit the CRDs via TF and it does its thing 🙂 depending on how it goes, we will probably make a small TF provider for the schema/convenience of it as well
and integrate some of it with Backstage and our event bus so folks can hold/upgrade/tweak settings on their own 😄
right now a bunch of this happens in CDKTF we're messing around with instead
been messing around with a (yet to be OSS) project that can generate a REST API + TF
datasource
provider from simple Go SDK like this https://gist.github.com/jippi/8ac614a9b424152d9de4a2c55c8a0402 ~50 lines of DSL generates about 19.800 lines of TF provider and logic Go code 😆 So making a provider for this shouldn't be too bad
the TF provider can work stand-alone or use the generated REST server to grab the data 😛
and you just hit
/:namespace/:type/:id
and boom, it does the ✨ stuff ✨
g
That page crashed my mobile chrome 🤣 🤣 🤣
c
maybe I shouldn't have included the example 19.800 lines of generated code 😆
😄 1
okay, updated gist and moved generated code somewhere else 😛
I kinda want to make it easy to pull in random data into our TF workflow from other systems (or even our own systems) without writing tons of code and maintain it ourself - this framework can basically generate all of it, even from external structs like a
gitlab.Project
from the Go SDK