Managing Kubernetes with
Terraform
Harshal Shah
Pune Kubernetes Meetup #12
Expect a bittersweet ending
What is Terraform?
Terraform is a tool for building, changing and versioning your infrastructure via
code.
Terraform
v/s
Puppet, Chef, Ansible
Terraform
v/s
CloudFormation, Heat etc.
Terraform
Components
HCL
HashiCorp Configuration Language
HCL v/s JSON, YAML
HCL v/s Ruby
https://github.com/hashicorp/hcl
Terraform
Components
Resources
Terraform
Components
Providers
Terraform
Components
State File
● Stores state information of
managed infrastructure
● Used to map resources with
configuration
● JSON
● Performance improvements for
large infrastructure operations
● Can be local or remote
Demo and Code Walkthrough
Painpoints
Kubernetes Beta resources not supported
Painpoints
Ordering between providers not supported yet
Painpoints
Some other gotchas:
https://heap.engineering/terraform-gotchas/
https://charity.wtf/tag/terraform/
Reasons to be Optimistic
Kubernetes provider is *very* new and
will mature over time.
Thank you!

Managing kubernetes with terraform