Configuración de Terraform para Continuous Delivery

Continuous Delivery Se dejará de ofrecer en las siguientes regiones el 12 de febrero de 2027: au-syd, ca-tor, us-east. Code Risk Analyzer también dejará de estar disponible en todas las regiones a partir de esa fecha. Si en una región no se hace un uso activo de estas funciones, es posible que dichas funciones se retiren antes de lo previsto en esa región y dejen de aceptar nuevas instancias. Más información

Terraform en IBM Cloud® permite la creación predecible y coherente de servicios de IBM Cloud, de modo que puedas construir rápidamente entornos en la nube complejos y de varios niveles siguiendo los principios de Infraestructura como código ( IaC ). Al igual que al utilizar la CLI o la API de IBM Cloud y los SDK, puede automatizar la creación, actualización y eliminación de sus instancias de IBM Cloud® Continuous Delivery mediante el lenguaje de configuración de HashiCorp (HCL).

¿Está buscando un Terraform gestionado en la solución DE IBM Cloud® ? Pruebe IBM Cloud® Schematics. Con Schematics, puedes utilizar el lenguaje de scripting de Terraform con el que estás familiarizado sin tener que preocuparte por la configuración y el mantenimiento de la línea comando de Terraform ni del complemento IBM Cloud® Provider. Schematics también ofrece plantillas de Terraform predefinidas que puedes instalar fácilmente desde el catálogo de IBM Cloud®.

Instalación de Terraform y configuración de recursos para Continuous Delivery

Antes de empezar, asegúrese de que tiene el acceso necesario para crear y trabajar con recursos de continuous-delivery y el acceso necesario para crear y trabajar con recursos de toolchain.

  1. Siga la Guía de aprendizaje de iniciación de Terraform en IBM Cloud para instalar la CLI de Terraform y configurar el plugin de proveedor de IBM Cloud para Terraform. El complemento abstrae las API de IBM Cloud que se utilizan para crear, actualizar o eliminar instancias de servicio continuous-delivery y recursos toolchain.

  2. Cree un archivo de configuración de Terraform denominado main.tf. En este archivo, añada la configuración necesaria para crear una instancia del servicio Continuous Delivery y para asignar a un usuario una política de acceso en Identity and Access Management (IAM) para dicha instancia mediante HCL. También puede añadir la configuración para crear un recurso de cadena de herramientas básico en el mismo grupo de recursos y región que la instancia de servicio Continuous Delivery y para asignar a un usuario una política de acceso en IAM para dicho recurso. La cadena de herramientas y la instancia de servicio Continuous Delivery que controla el uso de la cadena de herramientas están en el mismo grupo de recursos y región. Para obtener más información sobre cómo trabajar con el archivo de configuración de Terraform, consulte la documentación de Terraform.

    La instancia de servicio Continuous Delivery del ejemplo siguiente se denomina my_cd. Se crea con el plan de precios profesional en el grupo de recursos default y en la región us-south. Al usuario user1@ibm.com se le asigna el rol de Gestor en la política de acceso de IAM para la instancia de servicio.

    El recurso de cadena de herramientas se denomina my_toolchain. Se crea en el grupo de recursos default y en la región especificada en el bloque provider "ibm" en el archivo provider.tf. Para este ejemplo, region en provider.tf se establece en us-south. Al usuario user2@ibm.com se le asigna el rol de Editor en la política de acceso de IAM para el recurso de cadena de herramientas.

    data "ibm_resource_group" "default_rg" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "cd_policy" {
      ibm_id = "user1@ibm.com"
      roles  = ["Manager"]
      resources {
        service              = "continuous-delivery"
        resource_instance_id = element(split(":", ibm_resource_instance.cd_instance.id), 7)
      }
    }
    resource "ibm_cd_toolchain" "toolchain_instance" {
      name              = "my_toolchain"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "toolchain_policy" {
      ibm_id = "user2@ibm.com"
      roles  = ["Editor"]
      resources {
        service              = "toolchain"
        resource_instance_id = ibm_cd_toolchain.toolchain_instance.id
      }
    }
    
  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 debe ejecutar para crear la instancia de servicio, el recurso de cadena de herramientas y las políticas de acceso de IAM asociadas de Continuous Delivery en su cuenta.

    terraform plan
    
  5. Cree la instancia de servicio de Continuous Delivery, el recurso de cadena de herramientas y las políticas de acceso de IAM asociadas en su cuenta en IBM Cloud.

    terraform apply
    
  6. En la lista de recursos IBM Cloud, expanda la sección Herramientas de desarrollador y, a continuación, seleccione la instancia de servicio Continuous Delivery que ha creado y anote el ID de instancia.

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

  8. En la lista de recursos IBM Cloud, expanda la sección Herramientas de desarrollador y, a continuación, seleccione el recurso de cadena de herramientas que ha creado y anote el ID de instancia.

  9. Verifique que la política de acceso se ha asignado correctamente.

Activación de registros de plataforma para una instancia de servicio Continuous Delivery con Terraform

El servicio Continuous Delivery permite enviar los registros de Tekton PipelineRun como registros de plataforma. Esto permite recibir en su cuenta todos los registros de Tekton PipelineRun para la región y el grupo de recursos actuales, y puede configurar su cuenta para reenviar estos registros recibidos a un destino como IBM Cloud Logs.

  1. En su archivo de configuración de Terraform ajuste la configuración para incluir el parámetro platform_logging_pipelineruns_enabled con un valor de true.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
      parameters = {
        platform_logging_pipelineruns_enabled = "true"
      }
    }
    

¿Qué hacer a continuación?

Ahora que ha creado con éxito su primera instancia del servicio Continuous Delivery y el recurso de la cadena de herramientas con Terraform en IBM Cloud, puede elegir entre las siguientes tareas:

Para obtener más información sobre los recursos y orígenes de datos del proveedor de IBM Cloud, consulte la documentación del registro de Terraform.