OpenTofu v1.11.0stable Released Dec 09, 2025
Impact Score: 5/10

OpenTofu v1.11.0 โ€” Release Notes & Engineering Impact

Source available โ€” automated, not human-reviewed

Component: opentofu ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

OpenTofu v1.11.0. Source highlight: We're proud to announce that OpenTofu 1.11.0 is now officially available! ๐ŸŽ‰

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

๐Ÿ“„ View Raw Release Notes (Original Developer Log)
# OpenTofu 1.11.0 We're proud to announce that OpenTofu 1.11.0 is now officially available! ๐ŸŽ‰ ## Highlights This release cycle introduces major new capabilities and integrations: ### Ephemeral Values and Write Only Attributes Ephemeral resources allow you to work with confidential data, temporary credentials, and transient infrastructure without persisting them to your state. ```hcl ephemeral "aws_secretsmanager_random_password" "password" { } resource "kubernetes_secret_v1" "credentials" { metadata { name = "admin" namespace = "my-app" } data_wo = { username = "admin" password = ephemeral.aws_secretsmanager_random_password.password.random_password } data_wo_revision = 1 type = "kubernetes.io/basic-auth" } ``` ### The `enabled` Meta-Argument If you want to conditionally deploy a resource, you no longer have to use `count = var.create_my_resource ? 1 : 0`, you can now add the new `enabled` meta-argument to your resource to conditionally deploy it. ```hcl resource "aws_instance" "web" { ami = "ami-12345" instance_type = "t3.micro" lifecycle { enabled = var.create_instance # Simple boolean condition } } ``` ## Compatibility Notes - macOS: Requires macOS 12 Monterey or later - **Azure Backend (`azurerm`)**: - The `endpoint` and `ARM_ENDPOINT` configuration options are no longer supported - The `msi_endpoint` and `ARM_MSI_ENDPOINT` options are no longer supported - The `environment` and `metadata_host` arguments are now mutually exclusive - **issensitive() Function**: Now correctly returns unknown results when evaluating unknown values. Code that previously relied on the incorrect behavior may need updates. - **Testing with Mocks**: Mock values generated during testing now strictly adhere to provider schemas. Test configurations with invalid mock values will need to be corrected. - **S3 Module Installation**: When installing module packages from Amazon S3 buckets using S3 source addresses OpenTofu will use the same credentials as the AWS CLI and SDK. - **TLS and SSH Security**: - SHA-1 signatures are no longer accepted for TLS or SSH connections - SSH certificates must comply with the `draft-miller-ssh-cert-03` specification - **`-var`/`-var-file` during `tofu apply <planfile>`**: - Since ephemeral variables values cannot be saved into the plan, now we allow using `-var`/`-var-file` during `tofu apply <planfile>` to pass again the values for ephemeral variables during apply - This new functionality allows `-var`/`-var-file` to be used with non-ephemeral variables too, but **it will error if the values given for this type of variables is different from the ones given during the plan creation** - `TF_VAR` values should stay consistent between `plan` and `apply <planfile>` to avoid the errors mentioned above ## Reference - [Full Changelog](https://github.com/opentofu/opentofu/blob/v1.11/CHANGELOG.md) - [Blog Post](https://opentofu.org/blog/opentofu-1-11-0) Thank you for your continued support and testing of the OpenTofu project!