HashiCorp 发布了一系列针对 Terraform 和 Terraform Cloud 的改进。Terraform Cloud 提供了一个新的 CI/CD 管道集成工具。Terraform 为 Azure Kubernetes Service 增加了对 Azure Linux 容器主机的支持。HashiCorp Terraform AWS Provider 5.0 发布,改进了对默认标记的支持。
新的 CI/CD 管道工具有一个相关的命令行工具,叫作 tfci。这个工具通过 API 调用自动运行 Terraform Cloud,并支持可以嵌入到 CI 工具中的 Terraform Cloud 操作。tfci 提供的命令包括:通过 Terraform Cloud Run ID 显示运行详情、执行新的计划运行、在计划确认后继续执行暂停的任务,以及返回计划详情。
除了 tfci,还有为 GitHub Actions 和 GitLab CI 提供的模板。这些模板包含用户在使用 tfci 时可能需要配置的常见操作。例如,下面的代码片段是在 GitHub Actions 中使用 tfci 执行计划的部分内容:
runs:
using: docker
image: 'docker://hashicorp/tfci:v1.0.1'
args:
- tfci
## global flags
- -hostname=${{ inputs.hostname }}
- -token=${{ inputs.token }}
- -organization=${{ inputs.organization }}
## command
- run
- create
- -workspace=${{ inputs.workspace }}
- -configuration_version=${{ inputs.configuration_version }}
- -message=${{ inputs.message }}
- -plan-only=${{ inputs.plan_only }}
HashiCorp 还增加了在 Azure Kubernetes Service 上部署 Azure Linux 容器主机的支持。微软最近提供了 Azure Linux 容器主机(之前的 Mariner OS)的一般可用性。Azure Linux 被设计成一个最小化的、云优先的 Linux 发行版。
这些更新包含在 azurerm Terraform Provider 中。要在 AKS 上配置 Azure Linux 容器主机,可以将 os_sku 设置为 Mariner:
resource "azurerm_kubernetes_cluster" "default" {
name = "aks-${random_string.suffix.result}"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
kubernetes_version = var.kubernetes_version
dns_prefix = "k8s-${random_string.suffix.result}"
default_node_pool {
name = "default"
node_count = var.aks_node_count
vm_size = var.aks_confidential_computing_enabled ? "Standard_DC2s_v2" : "Standard_D2_v2"
os_sku = "Mariner"
os_disk_size_gb = 50
}
confidential_computing {
sgx_quote_helper_enabled = true
}
identity {
type = "SystemAssigned"
}
tags = {
name = "demo-aks-${random_string.suffix.result}"
environment = "demo"
}
}
HashiCorp Terraform AWS Provider 5.0 改进了对默认标签的支持,允许在 Provider 级别设置标签。这个更新解决了之前默认标签实现的许多痛点,包括处理不一致的最终计划、默认标签和资源标签之间的相同标签,以及标签配置中的永久差异。
可以使用 default_tags 在 Provider 级别指定默认标签:
provider "aws" {
default_tags {
tags = {
environment = "Dev"
department = "WebEng"
application = "HashiCafe website"
cost_center = "8675309"
}
}
}
resource "aws_s3_bucket" "example" {
bucket = "example-bucket-aj-11122"
tags = {
environment = "Production"
created_at = timestamp()
}
}
该版本还调整了已弃用或已删除的属性的报告方式,之前用户会收到警告通知,现在会向用户显示“不受支持错误”。EC2 的典型功能也被完全移除,因为这些功能早在 2022 年 8 月就被 AWS 弃用了。
CI/CD 管道集成工具和模板对 Terraform Cloud 和 Terraform Enterprise 用户可用。更多细节可以在发布博客和 GitHub 代码库中找到。Terraform AWS Provider 5.0 提供了一个升级指南,其中包含了有关该版本变更的更多详细信息。
原文链接:
https://www.infoq.com/news/2023/06/hashicorp-azure-linux/
声明:本文由 InfoQ 翻译,未经许可禁止转载。
红帽对 RHEL 下游造成毁灭性打击!停止公开企业版源代码,要挤占开源份额实现盈利?
AI之下没有秘密:网友诱骗ChatGPT激活 Windows 11,ChatGPT落入陷阱!
文章引用微信公众号"InfoQ",如有侵权,请联系管理员删除!