Die Version 1.7 des OpenTofu-Projekts wurde vorgestellt, das die Entwicklung einer Open-Source-Codebasis für Konfigurationsmanagement und Automatisierung der Infrastrukturpflege von Terraform fortsetzt. OpenTofu wird unter dem Sponsoring der Linux Foundation entwickelt und folgt einem offenen Verwaltungsmodell, das die Beteiligung einer Gemeinschaft umfasst, die aus interessierten Unternehmen und Enthusiasten besteht (161 Unternehmen und 792 individuelle Entwickler haben ihre Unterstützung für das Projekt angekündigt). Der Code des Projekts ist in der Programmiersprache Go geschrieben und wird unter der MPL 2.0-Lizenz vertrieben.
Das Fork wurde als Reaktion auf die Umstellung der Produkte von HashiCorp auf die proprietäre Lizenz BSL 1.1 geschaffen, die die Verwendung des Codes in Cloud-Systemen, die mit HashiCorp-Produkten und -Diensten konkurrieren, einschränkt. Der Lizenzwechsel wird mit dem Wunsch erklärt, die Finanzierung ihrer Entwicklungen in einem Umfeld zu sichern, in dem klassische Lizenzierungsmodelle nicht in der Lage sind, das Parasitieren von Unternehmen zu verhindern, die die bestehenden Open-Source-Codes von HashiCorp nutzen, um eigene kommerzielle Cloud-Produkte ohne Beteiligung an der gemeinsamen Entwicklung zu schaffen.
Die Plattform kann genutzt werden, um die Infrastruktur gemäß dem Konzept „Infrastructure as Code“ zu erstellen, zu ändern und zu versionieren. Dabei wird die Konfiguration der Systeme in einer hochgradig abstrahierten, domänenspezifischen Sprache beschrieben und ähnlich wie Code verarbeitet. OpenTofu unterstützt den Aufbau eines Ressourcen-Grafen, der alle Verbindungen zwischen den Ressourcen definiert, um parallele Operationen und Änderungen unter Berücksichtigung der Abhängigkeiten effizient zu gestalten.
OpenTofu ermöglicht es zudem, auf Basis der definierten Konfiguration einen Ausführungsplan (Execution Plan) zu generieren. Dieser Plan hilft, die Maßnahmen an der Infrastruktur zu bewerten, bevor sie tatsächlich angewendet werden. Komplexe Änderungen an der Infrastruktur können automatisiert mit minimalem Eingreifen des Administrators vorgenommen werden, was viele Fehler, die durch menschliches Versagen verursacht werden, vermeiden hilft. Der Administrator kann dabei genau nachverfolgen, was geändert wird und in welcher Reihenfolge, indem er den bereitgestellten Ausführungsplan und den Ressourcen-Grafen nutzt.
Zu den Änderungen in der Version OpenTofu 1.7:
- Die Möglichkeit, wichtige Zustandsdateien mit End-to-End-Verschlüsselung zu schützen. Die Verschlüsselung verhindert den Zugriff Dritter auf diese Daten, wenn unsichere Speicher-Backends verwendet werden. Das Passwort für die Verschlüsselung kann mithilfe von Umgebungsvariablen oder Schlüsselverwaltungssystemen wie AWS KMS, GCP KMS und OpenBao festgelegt werden.
- Unterstützung dynamischer Funktionen, die vom Anbieter definiert werden. Diese Fähigkeit ermöglicht es dem Anbieter, nicht nur Ressourcen, sondern auch Funktionen für die Verwendung im OpenTofu-Code bereitzustellen. Darüber hinaus können die Funktionen dynamisch abhängig von der Konfiguration des Benutzers vom Anbieter definiert werden. Die Unterstützung dieser Funktionalität wurde bereits in den experimentellen Anbietern Lua und Go integriert.
- Deklarative Löschoperationen wurden implementiert, die es ermöglichen, eine Ressource zur Löschung aus der Zustandsdatei zu kennzeichnen, sie jedoch in der aufgebauten Infrastruktur zu belassen.
- Die Möglichkeit, "for_each"-Schleifen in Blocks, die Importe durchführen, anzuwenden, um die Einfuhr mehrerer typischer Ressourcen zu erleichtern.
Quelle: opennet.ru
