HackerTrans
TopNewTrendsCommentsPastAskShowJobs

eaceaser

no profile record

comments

eaceaser
·il y a 4 ans·discuss
We are, it's serviceable, but its expensive to run and extremely difficult to debug or try to extend. Spinnaker was designed to solve a different problem (orchestrating deployments onto ec2) and its k8s functionality was retrofitted onto it, and it shows.
eaceaser
·il y a 5 ans·discuss
i'm dumb
eaceaser
·il y a 5 ans·discuss
Literally six months ago: https://www.nytimes.com/2021/01/14/technology/san-francisco-...
eaceaser
·il y a 5 ans·discuss
I openly say I work for Reddit. I even actively try to convince people to work here as well!
eaceaser
·il y a 6 ans·discuss
IMO because Dhall is unique syntax to the vast majority of developers who have never done anything with Haskell or Elm or whatever, it’s a non starter for large case use. We use Starlark, where the syntax is familiar to anyone familiar with python.

I like your analogy though. For us, the assembly language is using the k8s API directly in Golang. The “compiler” is the golang Starlark interpreter extended with our own config API, like you would implement in Dhall. It’s just in this case, you can implement it in Golang, which has much much better tooling than Dhall does. A typed compiler, debugger, IDE, unit tests.... so much easier to develop and maintain.
eaceaser
·il y a 6 ans·discuss
For internal k8s config at our org we built an config DSL using Starlark. The golang Starlark interpreter is super easy to use and extend. Starlark is familiar to every developer in our org because we are a Python shop. The tooling then spits out k8s YAML.

Essentially the config language implementation would be the same logic that a helm chart would do, but you’re writing the logic in Go versus a text templating engine. You can easily unit test parts and rely on the compiler to catch basic mistakes. Way better than templating YAML.

We also provide escape hatches so people can easily patch the resources before they get serialized to YAML. People can use that to customize our standard deployment config however they want.

So far this has worked very well and been extremely easy to maintain.