Slide 1

Slide 1 text

container-solutions.com | @containersoluti Writing your own Terraform Provider by Carlos León

Slide 2

Slide 2 text

container-solutions.com | @containersoluti Software Engineer @ Container Solutions Twitter/Github: @mongrelion [email protected] 2

Slide 3

Slide 3 text

container-solutions.com | @containersoluti Assumptions 3 ❖ You already know what Terraform is ❖ You have already used it either briefly or intensely ❖ You know how a little bit of Go

Slide 4

Slide 4 text

container-solutions.com | @containersoluti ● Github ● Google Cloud ● Heroku ● InfluxDB ● Mailgun ● MySQL ● OpenStack ● Packet ● PostgreSQL ● PowerDNS ● Rundeck ● StatusCake ● Template ● Terraform ● TLS ● Atlas ● AWS ● Azure (Service Management) ● Azure (Resource Manager) ● Chef ● CenturyLinkCloud ● CloudFlare ● CloudStack ● Consul ● Datadog ● DigitalOcean ● DNSMadeEasy ● DNSimple ● Docker ● Dyn Current list of providers 4 ● Triton ● UltraDNS ● VMware vCloud Director ● VMware vSphere

Slide 5

Slide 5 text

container-solutions.com | @containersoluti Why? ¯\_(ツ)_/¯ 5

Slide 6

Slide 6 text

container-solutions.com | @containersoluti Example 6

Slide 7

Slide 7 text

container-solutions.com | @containersoluti Provider 7

Slide 8

Slide 8 text

container-solutions.com | @containersoluti Provider Configuration 8

Slide 9

Slide 9 text

container-solutions.com | @containersoluti Provider Schema Definition 9

Slide 10

Slide 10 text

container-solutions.com | @containersoluti Resource 1 0

Slide 11

Slide 11 text

container-solutions.com | @containersoluti Resource Schema Definition 1 1

Slide 12

Slide 12 text

container-solutions.com | @containersoluti CRUD It! 1 2

Slide 13

Slide 13 text

container-solutions.com | @containersoluti Resource Creation 1 3

Slide 14

Slide 14 text

container-solutions.com | @containersoluti Error Handling 1 4

Slide 15

Slide 15 text

container-solutions.com | @containersoluti Partial State - w00t? 1 5

Slide 16

Slide 16 text

container-solutions.com | @containersoluti Partial State - w00t? 1 6

Slide 17

Slide 17 text

container-solutions.com | @containersoluti Partial State - w00t? 1 7

Slide 18

Slide 18 text

container-solutions.com | @containersoluti Partial State - w00t? 1 8

Slide 19

Slide 19 text

container-solutions.com | @containersoluti Partial State - w00t? 1 9

Slide 20

Slide 20 text

container-solutions.com | @containersoluti Resources 2 0 Anotated-source style blog post on how to write your own Terraform provider https://container-solutions.com/write-terraform-provider-part-1/ Template for bootstrapping Terraform providers: https://github.com/ContainerSolutions/terraform- provider-template/blob/v0.1.1 Terraform’s built-in providers https://github.com/hashicorp/terraform/tree/v0.6.14/builtin/providers

Slide 21

Slide 21 text

container-solutions.com | @containersoluti Thanks! 2 1