Hacker News new | ask | show | jobs
by gregwebs 1477 days ago
IMHO cue is generally better for complicated configurations, including Kubernetes. Dhall has some nice features though. In particular the ability to import other files as semantic hashes seems like a great feature.

To manage configuration you also need a system to understand the state of the configured system so that when you delete a configuration you can reconcile that with the system. So then it becomes more practical to use Pulumi with TypeScript. It would be nice if there was a separate state reconciliation system that one could adapt to use with Cue or Dhall or any other frontend.

1 comments

since you mentioned Kubernetes...

> It would be nice if there was a separate state reconciliation system that one could adapt to use with Cue or Dhall or any other frontend

this exactly was thinking behind https://carvel.dev/kapp for Kubernetes (i'm one of the maintainers). it makes a point to not know how you decided to generate your Kubernetes config -- just takes it as input.

> In particular the ability to import other files as semantic hashes seems like a great feature.

it's an interesting feature but seems like it should be unnecessary given that config can be easily checked into git (your own and its dependencies).

kapp looks good! I wish that had been available (or I had known about it) back when I was using cue. But kapp is k8s only whereas Pulumi has cloud provider backends as well as k8s.

> it's an interesting feature but seems like it should be unnecessary given that config can be easily checked into git (your own and its dependencies).

Backend provider functions need to be imported for example. The semantic hashing system makes imports easier- if just a comment is changed, there is no change. There's a lot of interesting possibilities here to help audit changes.