managing kubernetes with terraform
TRANSCRIPT
Managing Kubernetes with Terraform
Harshal ShahPune 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!