HashiCorp hat die neue Terraform 0.13 Version released.

Die Version 0.13 von Terraform baut auf den leistungsstarken Sprachverbesserungen auf, die mit der Version 0.12 vorgenommen wurden, wobei der Schwerpunkt auf einer verbesserten Benutzerfreundlichkeit für modulspezifische Arbeitsabläufe und Erweiterungen.

Terraform 0.13 Code
Terraform example Code

Wer von älteren Terraform-Versionen upgraden möchte, kommt nicht umher die Providerangaben auf die neue Version zu ändern. So muss man in der neuen Terraform Version nun für die Provider auch die jeweilige sources mit angeben.

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 2.20"
    }    
  }
}

Einer der Vorteile dieser Änderung besteht darin, dass sie die Installation und Nutzung von Providern für alle Arbeitsabläufe vereinfacht, einschließlich derer, die NICHT Teil des offiziellen HashiCorp-Repositorys sind. Somit lassen sich nun auch Community Provider auf einfachen Wege nutzen.

Die zweite große Änderung und Verbesserung wiederum ist die Einführung von count, for_each und depends_on-Funktionen. Mit diesen neuen Funktionen lässt sich umfangreicher Multiple-Service/Ressourcen Code wesentlich strukturierter aufbauen.

Nach Aufbau der Infrastruktur mit Terraform 0.13 ändert sich auch der State und ist nicht einfach abwärtskompatibel. Ebenso müssen einige Providerversionen in bestehenden Infrastructure-Codes aktualisiert werden. Dies sollte aber generell immer wieder passieren, um die neuen Provider API Funktionen verwenden zu können.

Alle Neuerungen hat HashiCorp hier auf ihrem Blog mit einigen Beispielen veröffentlicht.