Została wydana wersja projektu OpenTofu 1.7, kontynuująca rozwój otwartej bazy kodu platformy do zarządzania konfiguracją i automatyzacji utrzymania infrastruktury Terraform. Rozwój OpenTofu odbywa się pod auspicjami organizacji Linux Foundation, z wykorzystaniem otwartego modelu zarządzania przy udziale społeczności składającej się z zainteresowanych firm i entuzjastów (wsparcie projektu ogłosiło 161 firm i 792 indywidualnych programistów). Kod projektu napisany jest w języku Go i jest udostępniany na licencji MPL 2.0.
Fork został stworzony w odpowiedzi na przeniesienie przez firmę HashiCorp swoich produktów na własność licencji BSL 1.1, ograniczającej wykorzystanie kodu w systemach chmurowych konkurujących z produktami i usługami HashiCorp. Zmiana licencji jest uzasadniona chęcią utrzymania finansowania swoich prac w sytuacji, gdy tradycyjne modele licencjonowania nie są w stanie stawić czoła firmom wykorzystującym gotowe otwarte źródła prac HashiCorp do tworzenia własnych komercyjnych produktów chmurowych bez udziału w wspólnej pracy.
Platforma może być używana do budowy, modyfikacji i wersjonowania infrastruktury zgodnie z koncepcją infrastruktury jako kodu, w której konfiguracja systemów jest opisana w wysokopoziomowym języku zorientowanym na przedmioty i przetwarzana analogicznie do kodu. OpenTofu wspiera budowę grafu zasobów, definiującego wszystkie powiązania między zasobami dla efektywnego równoległego przetwarzania operacji na zasobach i wprowadzania zmian z uwzględnieniem zależności.
OpenTofu umożliwia również generowanie planu wykonania (Execution Plan) na podstawie podanej konfiguracji, co pozwala ocenić działania na infrastrukturze przed ich faktycznym zastosowaniem. Złożone zmiany w infrastrukturze mogą być wprowadzane automatycznie, przy minimalnym udziale administratora, co pozwala uniknąć wielu błędów wywołanych czynnikiem ludzkim. Administrator może w pełni śledzić, co dokładnie będzie zmieniane i w jakiej kolejności, korzystając z dostarczonego planu wykonania i grafu zasobów.
Wśród zmian w wersji OpenTofu 1.7:
- Możliwość ochrony ważnych plików stanu za pomocą szyfrowania end-to-end. Szyfrowanie pozwala wyeliminować dostęp osób trzecich do danych w tych plikach przy użyciu niewiarygodnych zapleczy przechowywania. Hasło do szyfrowania może być ustawione z użyciem zmiennych środowiskowych lub systemów zarządzania kluczami, takich jak AWS KMS, GCP KMS i OpenBao.
- Wsparcie dla funkcji dynamicznych definiowanych przez dostawcę. Opisana funkcjonalność pozwala dostawcy na udostępnienie nie tylko zasobów, ale i funkcji do użycia w kodzie OpenTofu. Co więcej, funkcje mogą być definiowane dynamicznie przez dostawcę, w zależności od konfiguracji użytkownika. Wsparcie dla przedstawionej funkcjonalności zostało już dodane do eksperymentalnych dostawców Lua i Go.
- Zrealizowane deklaratywne operacje usuwania, które umożliwiają oznaczenie zasobu do usunięcia z pliku stanu, ale zachowanie go w utworzonej infrastrukturze.
- Możliwość stosowania pętli „for_each” w blokach importowych, co ułatwia importowanie wielu typowych zasobów.
Źródło: opennet.ru
