A comunidade OpenTofu anunciou a disponibilização da versão v1.12.0, que incorpora meses de desenvolvimento e traz funcionalidades voltadas para automação, segurança e desempenho. Entre os destaques estão o argumento prevent_destroy dinâmico, novos formatos de saída simultâneos e aprimoramentos no gerenciamento de checksums de provedores.
Principais novidades
prevent_destroy dinâmico
O argumento prevent_destroy do bloco lifecycle de recursos agora aceita referências a variáveis ou outros símbolos dentro do mesmo módulo. Isso permite habilitar ou desabilitar a proteção contra destruição de forma contextual, por exemplo, diferindo entre ambientes de produção e desenvolvimento.
variable "prevent_destroy_database" {
type = bool
default = true
}
resource "example_database" "example" {
# ...
lifecycle {
prevent_destroy = var.prevent_destroy_database
}
}
Saída simultânea em JSON e texto
A nova opção de linha de comando -json-into=FILENAME grava a saída JSON em um arquivo, enquanto a saída legível permanece no terminal. Ferramentas que consomem JSON podem operar em paralelo sem substituir a interface padrão.
Novo meta‑argumento destroy = false
É possível remover um recurso do estado do OpenTofu sem destruí‑lo no provedor remoto, facilitando migrações e limpeza de recursos que já não são gerenciados.
Melhorias no checksum de provedores
A execução de tofu init agora inclui todos os hashes (zh: e h1:) para todas as plataformas, eliminando a necessidade de rodar tofu providers lock em cenários padrão. O comando providers lock passa a ser usado apenas quando se emprega um repositório alternativo.
Instalação de provedores mais rápida
O instalador realiza requisições concorrentes, reduzindo o tempo de tofu init quando múltiplos provedores são necessários.
Depreciações importantes
| Recurso | Status | Impacto |
|---|---|---|
| WinRM para provisioners | Depreciado | Avisos a partir da 1.12; remoção prevista na 1.13. Recomenda‑se migrar para OpenSSH no Windows. |
| Arquiteturas 32‑bit (386, arm) | Futuro fim de suporte | Avisos serão emitidos na 1.13; migração para 64‑bit (amd64, arm64) recomendada. |
Como obter a nova versão
- GitHub Releases – Baixe o binário em OpenTofu v1.12.0.
- Gerenciadores de pacotes – Instale via apt, dnf, homebrew ou o gerenciador de sua preferência.
- Docker – Imagens oficiais estão disponíveis no Docker Hub.
Para instruções detalhadas de instalação, consulte os guias oficiais em https://opentofu.org/docs/intro/install.
Impacto para usuários e equipes
A capacidade de definir prevent_destroy dinamicamente reduz a necessidade de manter múltiplas versões de módulos para ambientes diferentes, simplificando o versionamento e a colaboração. As melhorias de checksum e de performance de instalação favorecem pipelines CI/CD que utilizam caches de plugins ou espelhos internos, diminuindo falhas de verificação e tempo de build.
A depreciação do WinRM e o fim do suporte a 32‑bits sinalizam um foco maior em plataformas modernas, alinhando o OpenTofu às práticas de segurança e eficiência adotadas pela comunidade.
Próximos passos
- Acompanhar a discussão sobre a dinamização de outros meta‑argumentos de ciclo de vida em umbrella issue #1329.
- Preparar a migração de scripts que ainda utilizam WinRM para OpenSSH antes da chegada da versão 1.13.
- Avaliar a necessidade de atualizar a arquitetura de servidores de CI/CD para 64‑bits, evitando interrupções quando o suporte a 32‑bits for removido.
Com essas mudanças, o OpenTofu reforça sua posição como ferramenta de IaC (Infrastructure as Code) robusta, flexível e preparada para os desafios atuais de automação de infraestrutura.