IBM Cloud Docs
为 Container Registry 设置 Terraform

为 Container Registry 设置 Terraform

IBM Cloud® 上的 Terraform 支持以可预测且一致的方式供应 IBM Cloud 服务,以便您可以快速构建遵循“基础架构即代码”(IaC) 原则的复杂多层云环境。 与使用 IBM Cloud CLI 或 API 和 SDK 类似,您可以使用 HashiCorp 配置语言 (HCL) 自动供应,更新和删除 IBM Cloud® Container Registry 实例。

是否要在 IBM Cloud 解决方案上查找受管 Terraform? 试用 IBM Cloud Schematics。 通过 Schematics,可以使用您熟悉的 Terraform 脚本语言,但您无需担心设置和维护 Terraform 命令行和 IBM Cloud 提供程序插件。Schematics 还提供可从 IBM Cloud 目录安装的预定义 Terraform 模板。

安装 Terraform 并创建 Container Registry 名称空间

开始之前,请确保您具有创建和使用 IBM Cloud Container Registry 资源所需的 访问权

  1. 要安装 Terraform CLI 并配置 Terraform 的 IBM Cloud 提供程序插件,请遵循 Terraform on IBM Cloud 入门教程。 该插件对用于供应,更新或删除 Container Registry 资源的 IBM Cloud API 进行抽象。

  2. 创建名为 main.tf 的 Terraform 配置文件。 添加配置以创建 Container Registry 命名空间,并通过使用 HashiCorp 配置语言 (HCL) 在 Cloud Identity and Access Management (IAM) 中为用户分配 IAM 访问政策用于向用户、服务标识和访问组授予帐户资源访问权的方法。 访问策略包含主体、目标和角色。。 有关更多信息,请参阅 Terraform 语言文档

    以下示例使用您选择的名称在缺省 资源组环境以及所包含资源实例遵循的约束。 用户可以与资源组相关联以启用协作。 中创建名称空间,并将映像保留策略附加到保留 10 个映像的名称空间。 要检索缺省资源组的标识,请使用 ibm_resource_group 数据源。 然后,将在特定区域的名称空间的 IAM 访问策略中为用户 user@ibm.com 分配“管理者”角色。 将从您在步骤 1 中创建的 terraform.tfvars 文件中检索该区域。

    data "ibm_resource_group" "group" {
        name = "default"
    }
    
    resource "ibm_cr_namespace" "cr_namespace" {
        name = "<namespace_name>"
        resource_group_id = data.ibm_resource_group.group.id
    }
    
    resource "ibm_cr_retention_policy" "cr_retention_policy" {
        namespace = ibm_cr_namespace.cr_namespace.id
        images_per_repo = 10
    }
    
    resource "ibm_iam_user_policy" "policy" {
        ibm_id = "user@ibm.com"
        roles  = ["Manager"]
    
        resources {
            service = "container-registry"
            resource = ibm_cr_namespace.cr_namespace.id
            resource_type = "namespace"
            region = var.region
        }
    }
    

    不支持使用 Terraform 更新名称空间。 只能使用 Terraform 来创建和除去名称空间。

  3. 初始化 Terraform CLI。

    terraform init
    
  4. 创建 Terraform 执行计划。 Terraform 执行计划汇总了需要运行的所有操作,以在帐户中创建 Container Registry 名称空间和 IAM 访问策略。

    terraform plan
    
  5. 在 IBM Cloud中创建 Container Registry 名称空间和 IAM 访问策略。

    terraform apply
    
  6. Container Registry 名称空间概述页面中,验证是否已成功创建名称空间。

  7. 验证是否已成功分配 IAM 访问策略。 有关更多信息,请参阅 在控制台中复审分配的访问权

后续步骤

现在,您已成功使用 IBM Cloud上的 Terraform 创建第一个 Container Registry 名称空间,您可以在以下任务之间进行选择: