È stata presentata la versione 1.7 del progetto OpenTofu, che prosegue lo sviluppo della base di codice open source per la gestione della configurazione e l'automazione del mantenimento dell'infrastruttura Terraform. Lo sviluppo di OpenTofu è guidato dalla Linux Foundation, utilizzando un modello di gestione aperto con la partecipazione di una comunità formata da aziende e appassionati interessati al progetto (161 aziende e 792 sviluppatori individuali hanno dichiarato il loro supporto). Il codice del progetto è scritto in Go e distribuito con la licenza MPL 2.0.
Il fork è stato creato in risposta alla decisione di HashiCorp di passare a una licenza proprietaria BSL 1.1, che limita l'uso del codice in sistemi cloud concorrenti con i prodotti e i servizi di HashiCorp. Il cambio di licenza è motivato dal desiderio di mantenere il finanziamento dei propri sviluppi, considerando l'incapacità dei modelli di licenza tradizionali di affrontare il parassitismo delle aziende che utilizzano testi sorgente aperti di HashiCorp per creare propri prodotti cloud commerciali senza partecipare allo sviluppo congiunto.
La piattaforma può essere utilizzata per costruire, modificare e versionare l'infrastruttura secondo il concetto di infrastruttura come codice, in cui la configurazione dei sistemi è descritta in un linguaggio di alto livello orientato agli oggetti e viene elaborata in modo simile al codice. OpenTofu supporta la creazione di un grafo delle risorse, che definisce tutte le relazioni tra le risorse per un'efficiente parallelizzazione delle operazioni e delle modifiche, tenendo conto delle dipendenze.
OpenTofu consente anche di generare un piano di esecuzione (Execution Plan) basato sulla configurazione fornita, che permette di valutare le azioni sull'infrastruttura prima della loro applicazione effettiva. Le modifiche complesse all'infrastruttura possono essere effettuate in modo automatizzato, con un minimo intervento dell'amministratore, evitando così molti errori causati dal fattore umano. L'amministratore può monitorare completamente le modifiche che verranno apportate e in quale ordine, utilizzando il piano di esecuzione e il grafo delle risorse forniti.
Tra le modifiche nella versione OpenTofu 1.7:
- La possibilità di proteggere file di stato importanti utilizzando la crittografia end-to-end. La crittografia consente di escludere l'accesso di terze parti ai dati di tali file quando si utilizzano backend di archiviazione non affidabili. La password per la crittografia può essere impostata utilizzando variabili ambientali o sistemi di gestione delle chiavi come AWS KMS, GCP KMS e OpenBao.
- Supporto per funzioni dinamiche definite dal provider. Questa capacità consente al provider di fornire non solo risorse, ma anche funzioni per l'uso nel codice di OpenTofu. Inoltre, le funzioni possono essere definite dinamicamente dal provider in base alla configurazione dell'utente. Il supporto per questa funzionalità è già stato aggiunto ai provider sperimentali Lua e Go.
- Operazioni di eliminazione dichiarative implementate, che consentono di contrassegnare una risorsa per la rimozione dal file di stato, mantenendola però nell'infrastruttura creata.
- Possibilità di applicare cicli "for_each" nei blocchi che effettuano importazioni, per semplificare l'importazione di più risorse tipiche.
Fonte: opennet.ru
