HashiCorp发布Kubernetes版Terraform Cloud Operator 2.3版本

HashiCorp 发布 Terraform Cloud Operator for Kubernetes 2.3 版本

HashiCorp 近期发布了 Terraform Cloud Operator for Kubernetes 的 2.3 版本,新增了通过声明式方式启动工作区运行的功能。该工具于2023年11月推出,旨在提供 Kubernetes 原生体验,同时利用 Terraform 的工作流程。

Terraform Cloud Operator 的核心功能

Terraform Cloud Operator 允许用户通过 Kubernetes 自定义资源定义(CRD)管理 Terraform Cloud 资源。它支持从 Kubernetes 控制平面直接配置集群内部或外部的基础设施。

主要优势

  1. 灵活的资源管理
    版本 2 引入了多个自定义资源,并为不同的 Terraform Cloud 资源提供了专用控制器,增强了在大规模部署中同时管理自定义资源的灵活性和性能。
  2. 命名空间管理
    通过 --namespace 选项,可以指定操作符的监控范围到特定命名空间,实现更精细的资源管理。
  3. 可配置的同步
    使用 --sync-period 选项,可以调整自定义资源与 Terraform Cloud 之间的同步频率,确保及时更新和操作流畅性。

版本 2.3 的新特性

在之前的版本中,启动运行仅限于通过修改 Module 资源中的 restartedAt 时间戳来实现。这种方法不够直观,且无法跨所有工作区类型使用,也无法控制运行类型。版本 2.3 解决了这些问题,允许用户以声明方式启动计划、应用和刷新运行,增强了开发人员对所有操作符管理工作区的自助服务能力,包括 VCS 驱动的工作区。

新增的工作区资源注解

版本 2.3 在工作区自定义资源中引入了三个新的注解,用于启动工作区运行:

  • workspace.app.terraform.io/run-new:设置为 true 以触发新运行。
  • workspace.app.terraform.io/run-type:控制运行类型(计划、应用或刷新)。
  • workspace.app.terraform.io/run-terraform-version:为推测性计划运行指定 Terraform 版本。

示例

以下是一个工作区资源和注解的示例:

apiVersion: app.terraform.io/v1alpha2
kind: Workspace
metadata:
  name: this
spec:
  organization: kubernetes-operator
  token:
    secretKeyRef:
      name: tfc-operator
      key: token
  name: kubernetes-operator

要立即为上述工作区资源启动新的应用运行,可以使用以下命令:

kubectl annotate workspace this \
    workspace.app.terraform.io/run-new="true" \
    workspace.app.terraform.io/run-type=apply --overwrite

运行成功后,注解会反映在工作区资源中,以便观察:

apiVersion: app.terraform.io/v1alpha2
kind: Workspace
metadata:
  annotations:
    workspace.app.terraform.io/run-new: "true"
    workspace.app.terraform.io/run-type: apply
  name: this
spec:
  organization: kubernetes-operator
  token:
    secretKeyRef:
      name: tfc-operator
      key: token
  name: kubernetes-operator

运行完成后,操作符会自动将 run-new 值重置为 false

总结

Terraform Cloud Operator v2.3 使启动和管理工作区运行变得更加直观,帮助团队高效管理基础设施,同时充分利用 Kubernetes 原生体验。

阅读 22
0 条评论