5

Are there any benefits to spawn a new AWKS EKS cluster by using terraform or eksctl?

Are there some long-term maintenance benefits of one vs another?

DmitrySemenov
  • 9,204
  • 15
  • 76
  • 121
  • Check this https://stackoverflow.com/questions/57279436/pro-and-cons-for-terraform-and-eksctl – Debasis Mitra Jan 05 '21 at 01:23
  • yes, I saw it - what I would like to understand is long term benefits of one vs another. For example eksctl can handle cluster and internal Kubernetes services upgrades (when we upgrade the cluster to the next version), etc. i.e. the question if I go with eksctl - what do I lose compared with terraform and vice versa. Thanks for your comment! – DmitrySemenov Jan 05 '21 at 01:45

2 Answers2

6

Well, although I haven't actually tried this out with Terraform, I can definitely say that the eksctl way is not recommended. At least not if you're interested in manageing your infrastructure as code. With eksctl, most changes to an existing cluster need to be made with specific eksctl commands. Just changing the (declarative) cluster.yaml (or whatever you name) does not apply anything relevant. You want to scale a nodeGroup? Well, please use eksctl scale nodegroup, as changing the size in the YAML file is not applying anything. I think you get the pattern. It's really sad that, of all companies, Weaveworks, the "inventors" of GitOps, provide a tool that does not even support basic IaC :(

Dirk Jablonski
  • 340
  • 3
  • 11
1

I would highly recommend using terraform. It is declarative and provides an interface that can be used to support all of your infrastructure and not just your EKS cluster(s).

The time and effort you put into learning terraform and implementing it in your pipeline can be easily re-used for other infrastructure needs unlike eksctl.

spkane
  • 6,177
  • 2
  • 18
  • 18