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 控制平面直接配置集群内部或外部的基础设施。
主要优势
- 灵活的资源管理:
版本 2 引入了多个自定义资源,并为不同的 Terraform Cloud 资源提供了专用控制器,增强了在大规模部署中同时管理自定义资源的灵活性和性能。 - 命名空间管理:
通过--namespace选项,可以指定操作符的监控范围到特定命名空间,实现更精细的资源管理。 - 可配置的同步:
使用--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 原生体验。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。