Tony Carmichael
(He/Him)
Product Lead, Terraform OSS Ecosystem
Slide 3
Slide 3 text
@aicarmic
on GitHub and Twitter
Product Lead, Terraform OSS Ecosystem
Slide 4
Slide 4 text
Taylor Dolezal
(He/Him)
Developer Advocate at HashiCorp
Slide 5
Slide 5 text
@onlydole
on GitHub and Twitter
Developer Advocate at HashiCorp
Slide 6
Slide 6 text
Kerim Satirli
(He/Him)
Developer Advocate at HashiCorp
Slide 7
Slide 7 text
@ksatirli
on GitHub and Twitter
Developer Advocate at HashiCorp
Slide 8
Slide 8 text
Agenda Infrastructure as Code
Declarative, machine-readable definition files
HashiCorp Terraform
Safely and predictably make infrastructure changes
HashiCorp Configuration Language
Concise description of infrastructure
Code Quality
The good, bad, and the lint-able
Slide 9
Slide 9 text
⁄
Infrastructure
as Code
Slide 10
Slide 10 text
Infrastructure
as Code
▪ executable documentation
▪ enables collaboration
▪ safe and predictable
Slide 11
Slide 11 text
⁄
HashiCorp
Terraform
Slide 12
Slide 12 text
Terraform
Providers
135+
Official / Verified Providers
Cisco ACI, MSO, etc.
360+
Community Providers
Auth0, 1Password, Unifi, etc.
Slide 13
Slide 13 text
Terraform
Provider
Quality
135+
Official / Verified Providers
360+
Community Providers
Slide 14
Slide 14 text
Terraform
Registry
https://registry.terraform.io/
Slide 15
Slide 15 text
Terraform
Registry
900k
Installs per Day
4.2k
Community Modules
Slide 16
Slide 16 text
⁄
HashiCorp
Configuration Language
Slide 17
Slide 17 text
HashiCorp
Configuration
Language
CODE EDITOR
service "http" "web_proxy" {
listen_addr = "127.0.0.1:8080"
process "server" {
command = ["proxy-app", "server"]
}
}
variable "port" {
description = "Port for web_proxy"
default = 8080
}
Slide 18
Slide 18 text
HashiCorp
Configuration
Language
CODE EDITOR
service "http" "web_proxy" {
listen_addr = "127.0.0.1:${var.port}"
process "server" {
command = ["proxy-app", "server"]
}
}
variable "port" {
description = "Port for web_proxy"
default = 8080
}
Command: tflint
TERMINAL
> tflint
1 issue(s) found:
Warning: data "google_projects" "projects" is declared but not
used (terraform_unused_declarations)
on data-sources.tf line 11:
11: data "google_projects" "projects" {