6 ms·
Terraform is terrible as it is. Good riddance. We need real tools instead of messing around with text files with ridiculous formatting.
by sredevops01 3y ago
Terraform is terrible as it is. Good riddance. We need real tools instead of messing around with text files with ridiculous formatting.
- latchkey 3y agoWhile I agree with you about TF having a lot of issues, the comment isn't helpful. What would you suggest otherwise? Kind of a moot point now that the license is fubar'd, but what could be improved to make it better? If you could have a do-over, what would that look like?
- zapnuk 3y agoRight now there is pulumi as a alternative that supports different clouds. Otherwise AWS CDK or Azure Bicep come to mind. If i could to a do-over I'd want the solution to look and feel like AWS CDK but without the cloudformation in the background, and support for GCP and Azure. I've worked with CDK for 2 years now and being able to define your code in Typescript is quite handy and drastically reduces the effort it takes for new people to learn how our deployment work. It's also quite nice to be able to directly bundle and deploy the application together with the infrascructure with very little effort.
- latchkey 3y agoThe mind boggles why Pulumi doesn't do ssh. I have a whole bunch of bare metal sitting in data centers all over the world, how am I expected to manage it? Ansible/Salt/Chef is obviously one type of solution, but like you said, being able to code things in TS is really nice. One thing TF does well, is bare metal.
- yjftsjthsd-h 3y ago> One thing TF does well, is bare metal. How? I've always viewed TF as good at anything except metal; the best I would know to do is remote-exec but at that point you might as well drop to raw shell.
- latchkey 3y agoWhat is raw shell in the world of automation?
- yjftsjthsd-h 3y agoI mean that the only way I can think to use terraform to provision bare metal is to remote-exec a shell script (ex. to `apt install foo`), at which point you might as well skip terraform and `ssh targethost apt install foo` or `scp ./my-install-commands.sh root@targethost: && ssh root@targethost sh my-install-commands.sh`
- latchkey 3y agoSure. That's effectively what Ansible does as well. You could even just have TF call that and be done. The point that I'm trying to make is that I see a disconnect between deployment and provisioning. I want both in a single tool (ala: Pulumi), even with bare metal. Ideally, in a programming language like TS or golang that is easy to get up to speed with and wraps up the complexity of getting servers up and running (as well as maintaining them over time).
- robbintt 3y agoI completely agree that it has problems. I use terraform a lot. Compared to nothing, I love terraform. However, it's so overwrought that it has to be hidden from anyone not in infra for a living. 1. IaC description should be format agnostic and transformable (eg definable in yaml, json, whatever). 2. Something about provider interfaces here, but it's already super messy and not sure if it's an improvement or just a shift 3. State files were wild west last time I checked. And there should be a default database interface provider at minimum. Maybe there is now? 4. Forcing the apply->statefile cycle as the default requires all of compute, interface, and a human. This should have been an abstraction on a raw interface for automated use.