Terraform has some limitations. For example, one deployment cannot deploy hosts and their containers [1]. And there is no usable support for rolling deployments [2, 3]. So I've ended up with a 4-stage deployment: host-set1, containers on host-set1, host-set2, containers on host-set2.
I also use Terraform to deploy the servers to my laptop during development. Docker for Mac works well.
Someday, Kubernetes will get some usable documentation on how to do normal things [4]. Then I will use it for deploying containers, load balancers, and persistent volumes. For now, it's too big of a complexity jump over plain Docker.
[1] https://github.com/hashicorp/terraform/issues/2430
[2] https://github.com/hashicorp/terraform/issues/23735#issuecom...
[3] https://github.com/hashicorp/terraform/issues?q=is%3Aissue+%...
You always have a configuration management system.