TeknoCerdas.com – Salam cerdas untuk kita semua. Salah satu software Infrastructure as Code (IaC) terpopuler yaitu Terraform baru meluncurkan versi terbaru. Terraform 0.13 Resmi dirilis oleh HashiCorp pada 10 Agustus 2020 lalu. Berita tersebut TeknoCerdas lansir dari blog resmi perusahaan.
Terraform 0.13 hadir dengan sejumlah perubahan dan fitur baru. Rilis ini adalah hasil pengembangan dari peningkatan HashiCorp Configuration Language (HCL) yang sudah diperkenalkan pada versi 0.12. Terraform 0.13 adalah versi pertama yang memiliki fitur terraform login
yang memudahkan untuk kolaborasi menggunakan Terraform Cloud.
Perubahan atau fitur baru apa saja yang disematkan pada Terraform 0.13.
- Peningkatan pada module
- Instalasi otomatis untuk provider pihak ketiga
- Validasi variabel custom
- Integrasi pada Terraform Cloud
Peningkatan pada module
Sekarang pada modul dapat menggunakan fitur dari HCL yang baru yaitu count
, depends_on
dan for_each
. Workflow yang banyak menggunakan module akan sangat terbantu dengan tambahan fitur ini.
variable "project_id" {
type = string
}
variable "regions" {
type = map(object({
region = string
network = string
subnetwork = string
ip_range_pods = string
ip_range_services = string
}))
}
module "kubernetes_cluster" {
source = "terraform-google-modules/kubernetes-engine/google"
for_each = var.regions
project_id = var.project_id
name = each.key
region = each.value.region
network = each.value.network
subnetwork = each.value.subnetwork
ip_range_pods = each.value.ip_range_pods
ip_range_services = each.value.ip_range_services
}
Instalasi otomatis untuk provider pihak ketiga
Modul yang berasal dari pihak ketiga yang terdaftar di Terraform registry akan otomatis terinstal ketika melakukan terraform init
. Dengan demikian prosesnya akan sama dengan official module yang disediakan oleh HashiCorp sehingga proses penggunaan akan lebih mudah.
Pada Terraform 0.13 juga diperkenalkan peningkatan fitur dari blok required_providers
. Sekarang mendukung penggunaan source
untuk banyak registry dan provider sekaligus.
terraform {
required_providers {
# HashiCorp's dns provider
hdns = {
source = "hashicorp/dns"
}
# A hypothetical alternative dns provider
mydns = {
source = "mycorp/dns"
}
}
}
Validasi variabel custom
Fitur ini diperkenalkan pada Terraform 0.12.20 sekarang secara resmi dianggap production ready di Terraform 0.13. Sebuah fitur yang akan memvalidasi nilai dari variabel dan memberikan pesan kesalahan sesuai yang dibuat.
variable "ami_id" {
type = string
validation {
condition = can(regex("^ami-", var.example))
error_message = "Must be an AMI id, starting with \"ami-\"."
}
}
Integrasi pada Terraform Cloud
Pada Terraform versi 0.13 terdapat peningkatan pada remote backend yang memperbolehkan pengguna untuk mentarget resource tertentu seperti penggunaan opsi -target
dan terraform state push
.
Fitur ini juga akan dibackport ke versi 0.12 untuk mempermudah masa transisi.
Dengan Terraform 0.13 resmi dirilis maka pengguna diharapkan dapat segera melakukan update untuk dapat menggunakan fitur dan peningkatan terbaru yang telah dimasukkan pada Terraform.