Configuración de Terraform para Container Registry

Terraform en IBM Cloud® permite un suministro predecible y coherente de servicios de IBM Cloud para que pueda crear rápidamente entornos de nube complejos y de varios niveles que sigan los principios de Infraestructura como código (IaC). Al igual que con la interfaz de comando (CLI) o la API y los SDK de IBM Cloud, puede automatizar el aprovisionamiento, la actualización y la eliminación de sus instancias de IBM Cloud® Container Registry mediante HashiCorp Configuration Language (HCL).

¿Desea Terraform gestionado en la solución IBM Cloud? Pruebe IBM Cloud Schematics. Con Schematics, puede utilizar el lenguaje de scripting de Terraform con el que esté familiarizado, pero no tendrá que preocuparse de configurar y mantener la interfaz de comando de Terraform y el complemento IBM Cloud Provider. Schematics también proporciona plantillas predefinidas de Terraform que puede instalar desde el catálogo IBM Cloud.

Instalación de Terraform y creación de un espacio de nombres Container Registry

Antes de empezar, asegúrese de que tiene el acceso necesario para crear y trabajar con los recursos de IBM Cloud Container Registry.

  1. Para instalar la CLI de Terraform y configurar el IBM Cloud plug-in de proveedor para Terraform, siga la guía de aprendizaje de iniciación de Terraform en IBM Cloud. El plug-in abstrae las API de IBM Cloud que se utilizan para suministrar, actualizar o suprimir recursos de Container Registry.

  2. Cree un archivo de configuración de Terraform denominado main.tf. Agregue la configuración para crear un Container Registry espacio de nombres y asignar a un usuario un IAM Política de accesoMétodo para asignar acceso a los recursos de una cuenta a los usuarios, ID de servicio y grupos de acceso. Una política de acceso incluye un asunto, un destino y un rol. en Cloud Identity and Access Management (IAM) para ese espacio de nombres usando HashiCorp Lenguaje de configuración (HCL). Para obtener más información, consulte la documentación sobre el lenguaje Terraform.

    El siguiente ejemplo crea un espacio de nombres en el grupo de recursosEntorno y restricciones a los que se ajustan las instancias de recursos contenidas. Se puede asociar un usuario con un grupo de recursos para permitir la colaboración. predeterminado con un nombre de su elección y adjunta una política de retención de imágenes a ese espacio de nombres que retiene 10 imágenes. Para recuperar el ID del grupo de recursos predeterminado, se utiliza el origen de datos ibm_resource_group. A continuación, el usuario user@ibm.com se asigna a la función Administrador en la política de acceso de IAM para el espacio de nombres de una región determinada. La región se recupera del archivo terraform.tfvars que ha creado en el paso 1.

    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
        }
    }
    

    No se da soporte a la actualización de un espacio de nombres utilizando Terraform. Puede utilizar Terraform para crear y eliminar sólo espacios de nombres.

  3. Inicialice la CLI de Terraform.

    terraform init
    
  4. Cree un plan de ejecución de Terraform. El plan de ejecución de Terraform resume todas las acciones que deben ejecutarse para crear el espacio de nombres Container Registry y la política de acceso de IAM en su cuenta.

    terraform plan
    
  5. Cree el espacio de nombres Container Registry y la política de acceso de IAM en IBM Cloud.

    terraform apply
    
  6. En la página de resumen del espacio de nombres Container Registry, compruebe que su espacio de nombres se ha creado correctamente.

  7. Verifique que la política de acceso IAM se ha asignado correctamente. Para obtener más información, consulte Revisión del acceso asignado en la consola.

Próximos pasos

Ahora que ha creado correctamente el primer espacio de nombres Container Registry con Terraform en IBM Cloud, puede elegir entre las tareas siguientes: