HashiCorp发布Terraform Cloud Operator for Kubernetes v2版本
HashiCorp近日发布了Terraform Cloud Operator for Kubernetes的v2版本。该Operator通过Kubernetes自定义资源(Custom Resource)管理Terraform Cloud工作区,新版本增加了对多个自定义资源的支持、改进的同步机制、新暴露的指标以及将监控范围限定到特定命名空间的功能。
主要功能和改进
多自定义资源支持:
- 新版本引入了多个自定义资源,每个资源都有独立的控制器,用于管理不同的Terraform Cloud资源。
- 可以调整每个控制器的worker线程数量,默认每个控制器有一个worker,但可以增加以提高并发处理能力。
命名空间限定监控:
- 新增
--namespace选项,允许将Operator的监控范围限定在特定的Kubernetes命名空间。
- 新增
改进的同步机制:
- 新增
--sync-period选项,优化了自定义资源与Terraform Cloud之间的同步。
- 新增
暴露Prometheus指标:
- 每个控制器的标准Prometheus格式指标现在可以通过HTTPS端口
8443的/metrics路径获取。 - 指标列表可在Kubebuilder文档中查看。
- 每个控制器的标准Prometheus格式指标现在可以通过HTTPS端口
Terraform Cloud客户端管理:
- 每个自定义资源现在都有自己的Terraform Cloud客户端,允许单个Operator部署跨多个Terraform Cloud组织使用。
使用场景
基础设施管理:
- 通过Kubernetes控制平面直接管理Kubernetes内外的基础设施。
- 平台团队可以为应用开发人员提供Kubernetes原生工作流,同时确保使用经过批准的Terraform模块。
资源管理:
- 通过
AgentPool管理Terraform Cloud agent池和agent令牌。 - 通过
Module实现API驱动的运行工作流。 - 通过
Workspace管理Terraform Cloud工作区。
- 通过
示例代码
以下示例创建了一个名为agent-pool-development的agent池,并生成了一个名为token-red的令牌:
---
apiVersion: app.terraform.io/v1alpha2
kind: AgentPool
metadata:
name: this
spec:
organization: kubernetes-operator
token:
secretKeyRef:
name: tfc-operator
key: token
name: agent-pool-development
agentTokens:
- name: token-red
agentDeployment:
replicas: 1
autoscaling:
targetWorkspaces:
- name: us-west-development
- id: ws-NUVHA9feCXzAmPHx
- wildcardName: eu-development-*
minReplicas: 1
maxReplicas: 3自动扩展功能
autoscaling部分允许Operator根据工作区的负载动态调整agent pod的数量,最少1个,最多3个。
其他信息
- Terraform Cloud Operator for Kubernetes适用于Terraform Cloud用户。
- 从v1迁移到v2的指南可在这里找到。
- 更多详细信息可在发布博客文章或Terraform讨论论坛中获取。
- 项目源码托管在GitHub。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。