Slide 1

Slide 1 text

Page 1 12 December 2019 Date / other info December, 2019 Kops clusters with TF & Terragrunt Vincent De Smet, Systems Engineer

Slide 2

Slide 2 text

Page 2 12 December 2019 Table of contents 1. Kops → Terraform 2. Kops Templates 3. Terraform → Kops Templates 4. Terraform → Kops 5. Why Terragrunt? 6. Why not EKS / GKE? 7. Blue / Green clusters Kops is a community driven tool to create and manage Kubernetes clusters. Terraform 0.12 supports structured objects for more expressive configuration and powerful templating. Terragrunt provides best practices for Terraform code layout and accelerates common operations. Together they allow us to come up with a strategy to handle frequent platform upgrades decoupled from stateful application components Vincent De Smet Systems Engineer EXEC SUMMARY

Slide 3

Slide 3 text

Page 3 12 December 2019 - Re-use Terraform expertise - Treat as module: - wrap modifications around code generated files, or - drop tf files into folder (no encapsulation…) - No auto-prune Kops → Terraform (v1 ~2017): Kops output Terraform

Slide 4

Slide 4 text

Page 4 12 December 2019 Problems with kops default networking: Routing Tables / Network Access Control Lists / ... ● VPC Peering ● Direct Connections ● Egress control Kops Templates (v2 ~ 2018) Templated kops manifests

Slide 5

Slide 5 text

Page 5 12 December 2019 Kops Templates Templated kops manifests

Slide 6

Slide 6 text

Page 6 12 December 2019 Kops Templates Default Values (sample from previous implementations)

Slide 7

Slide 7 text

Page 7 12 December 2019 Kops Templates Cluster specific overwrites

Slide 8

Slide 8 text

Page 8 12 December 2019 Kops Templates Execution

Slide 9

Slide 9 text

Page 9 12 December 2019 - Reduce Copy Paste - Let Kops handle Kops Manifests TF → Kops Values → Kops Templates → TF AWS Resource Identifiers are in Terraform

Slide 10

Slide 10 text

Page 10 12 December 2019 - Prior work: - Nov-Nov 2018 - MongoDB - Colin Huglund - PoC - TF 0.12 - no expand / flatten - abandoned - Nov-Jan 2019 - Wandera - Jakub Coufal - TF 0.12 - Based on Colin Hugland - Added expand / flatten for kops schema - Alternative to WanderaOrg/karch local-exec - Abandoned ~ January 2019 - compareasiagroup/terraform-provider-kops - Based on Colin Huglund work - No expand / flatten - Implemented missing functions - Actively being used, PRs welcome! Terraform → Kops (v1 ~2019): Terraform provider Kops

Slide 11

Slide 11 text

Page 11 12 December 2019 - Manage Kops manifests through Terraform - Template AWS Resource Identifiers Terraform → Kops (v1 ~2019): Terraform provider Kops

Slide 12

Slide 12 text

Page 12 12 December 2019 - TF 0.12 built-in Templating Terraform → Kops (v1 ~2019): Terraform provider Kops

Slide 13

Slide 13 text

Page 13 12 December 2019 - Recommended read: Terraform Up And Running, second Edition! Why Terragrunt? Terragrunt for TF 0.12

Slide 14

Slide 14 text

Page 14 12 December 2019 - Easily split state - Modules on steroids - Dependencies between modules - Layered infra approach Why Terragrunt? Terragrunt for TF 0.12

Slide 15

Slide 15 text

Page 15 12 December 2019 - Existing Kops expertise - Self Managed clusters in foreseeable future Why no EKS / GKE ? Hosted solutions simplify Operations

Slide 16

Slide 16 text

Page 16 12 December 2019 - Isolated Environments with dedicated stateful tier - Decouple cluster from data and exposed interfaces Blue / Green Clusters Simplify Cluster upgrades by keeping them stateless

Slide 17

Slide 17 text

Page 17 12 December 2019 Demo? Less words, more action

Slide 18

Slide 18 text

Page 18 12 December 2019 Page 18 We are Hiring! Please get in touch with Thulasi for private and confidential discussion or visit our Career Site for more details