Terraform引入新的CI/CD工具,增加对Azure Linux的支持

新闻资讯   2023-07-02 10:18   82   0  

作者 | Matt Campbell
译者 | 明知山
策划 | 丁晓昀

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落入陷阱!

扎克伯格和马斯克线上约架;马云:接下来是淘宝的机会;谷歌新广告嘲笑 iPhone 过时 | Q资讯

52家企业,48家要降本:FinOps 能否拯救“下云潮”

文章引用微信公众号"InfoQ",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。