OpenTofu v1.11.0 發佈

新聞
HongKong
4
02:01 PM · Dec 18 ,2025

OpenTofu v1.11.0 現已發佈,一些更新亮點如下:

臨時資源和只寫屬性

臨時值允許 OpenTofu 處理只在單個 OpenTofu 階段內存在於內存中的數據和資源,保證這些值不會被保存在狀態快照或計劃文件中:

  • 使用臨時資源,可以臨時訪問存儲的憑證或網絡隧道,用於 provider 或 provisioner 配置,且這些值不會被保存到 OpenTofu 的計劃文件或狀態快照中。

    舉例來説,你可以用臨時資源從 OpenBao 請求限時的 AWS 憑證,提供給 hashicorp/aws provider,或者打開臨時 SSH 隧道,讓 cyrilgdn/postgresql provider 訪問遠程網絡上的 Postgres 服務器。

  • 使用只寫屬性設置資源參數,這些參數只在變更時需要被 OpenTofu 訪問,比如數據庫的初始管理員密碼。

    例如,你可以用臨時資源生成 SSH 密鑰對,然後通過只寫屬性把私鑰保存到你的秘密存儲中,這樣 OpenTofu 本身就不需要保留密鑰副本。

資源和模塊的 enabled 支持

OpenTofu 傳統上允許通過 count 元參數動態啓用或禁用某個模塊,選擇實例數為零或一。

OpenTofu v1.11.0 引入了 enabled 元參數,希望讓讀者更容易理解資源實例數只能是零或一:

variable "subnet" {
  type = object({
    id = string
  })
  default = null
}

variable "enable_cluster" {
  type    = bool
  default = false
}

resource "aws_subnet" "example" {
  # ...

  lifecycle {
    enabled = var.subnet == null
  }
}

resource "aws_instance" "example" {
  # ...
  subnet_id = var.subnet != null ? var.subnet.id : aws_subnet.example.id
  # ...
}

module "servers" {
  source = "./app-cluster"
  servers = 5
  lifecycle {
    enabled = var.enable_cluster
  }
}

更多詳情可查看:https://opentofu.org/blog/opentofu-1-11-0/

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.