Ejecuta compilaciones en un grupo privado

En este documento, se explica cómo ejecutar compilaciones en grupos privados. Si es la primera vez que usas los grupos privados, lee la descripción general de los grupos privados.

Antes de comenzar

  • Para asegurarte de haber creado un grupo privado, sigue los pasos en Crea y administra grupos privados.

  • Para usar los ejemplos de la línea de comandos de esta guía, instala y configura Google Cloud CLI.

  • Puedes usar el mismo proyecto de Google Cloud para crear tu grupo privado y tus compilaciones de Cloud Build o usar proyectos diferentes. Si tus compilaciones están en un proyecto diferente del grupo privado, configura el proyecto predeterminado en gcloud CLI en el proyecto en el que se originan:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

Permisos de IAM

  • Para ejecutar compilaciones a través de gcloud CLI o la API de Cloud Build, otorga el rol Usuario de grupo de trabajadores en el proyecto de grupo privado al usuario o a la cuenta de servicio que solicita la compilación.

  • Para ejecutar compilaciones automatizadas mediante activadores, haz lo siguiente:

    • Si el proyecto en el que inicias la compilación es el mismo que el proyecto en el que existe tu grupo privado, no necesitas otorgar permisos.
    • Si el proyecto en el que inicias la compilación es diferente del proyecto en el que existe tu grupo privado, otorga la función Usuario de grupo de trabajadores a la cuenta de servicio de Cloud Build del proyecto activador en el proyecto de grupo de trabajadores en el que se crean tus compilaciones:

    Consola

    1. Abre la página IAM en la consola de Google Cloud.

      Abrir la página Permisos de IAM

    2. En el menú desplegable del selector de proyectos en la parte superior de la página, selecciona el proyecto que contiene el grupo privado.

    3. Haz clic en Grant access.

    4. Ingresa la siguiente configuración de principal y rol:

      • Agregar principales: Ingresa la dirección de correo electrónico predeterminada de la cuenta de servicio de Cloud Build del proyecto que contiene el activador de compilación. Para obtenerla, sigue estos pasos:

        1. Abrir la página de IAM.
        2. Selecciona el proyecto que contiene tu activador de compilación.
        3. En la tabla de permisos, busca la dirección de correo electrónico que termina en @cloudbuild.gserviceaccount.com. Esta es tu cuenta de servicio de Cloud Build.
      • Asigna roles: Selecciona el rol Usuario de WorkerPool de Cloud Build.

    5. Haz clic en Guardar para guardar los permisos de IAM nuevos.

    gcloud

    Para agregar la cuenta de servicio de Cloud Build predeterminada del proyecto activador al proyecto workerpool con la función cloudbuild.workerPoolUser, haz lo siguiente:

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=serviceAccount:TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
          --role=roles/cloudbuild.workerPoolUser
    

    Reemplaza los valores de marcador de posición en el comando anterior por los siguientes:

    • PRIVATEPOOL_PROJECT_ID es el ID del proyecto con el grupo privado que ejecuta la compilación.
    • TRIGGER_PROJECT_NUMBER es el número del proyecto con el activador que ejecuta la compilación.

Ejecuta compilaciones

Puedes enviar compilaciones desde el mismo proyecto de Google Cloud en el que creaste el grupo privado o desde otro proyecto de Google Cloud. Puedes especificar el grupo privado en tu archivo de configuración de compilación o directamente en el comando gcloud:

Especifica el grupo privado en el archivo de configuración de compilación:

  1. En tu archivo de configuración de Cloud Build, agrega una opción pool y especifica el nombre completo del recurso del grupo de trabajadores para ejecutar la compilación:

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    Reemplaza los valores de marcador de posición en el archivo de configuración anterior por lo siguiente:

    • PRIVATEPOOL_PROJECT_ID: Es el proyecto de Google Cloud en el que se encuentra el grupo privado.
    • REGION: La región en la que creaste tu grupo privado.
    • PRIVATEPOOL_ID: Es el ID de grupo privado único que especificaste cuando creaste el grupo privado.
  2. Usa el archivo de configuración de compilación creado anteriormente para ejecutar tu compilación mediante gcloud o la API, o con activadores. Si tu instancia está alojada de forma local, Cloud Build también proporciona compatibilidad con la funcionalidad de activador para varios sistemas de administración de código fuente externos, como GitHub Enterprise o Bitbucket Server.

Especifica el grupo privado en el comando de gcloud:

Puedes especificar el grupo privado en el comando gcloud en lugar de hacerlo en el archivo de configuración de compilación. Por ejemplo, considera que tienes el siguiente archivo de configuración de compilación:

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

El siguiente comando compila con el archivo de configuración de compilación y especifica el grupo de trabajadores en el comando:

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

Reemplaza los valores de marcador de posición en los comandos anteriores por la siguiente información:

  • CONFIG_FILE: Es la ruta de acceso al archivo de configuración de compilación.
  • PRIVATEPOOL_ID: Es el ID de grupo privado único que especificaste cuando creaste el grupo privado.
  • PRIVATEPOOL_PROJECT_ID: Es el proyecto de Google Cloud en el que se encuentra el grupo privado.
  • REGION: La región en la que creaste tu grupo privado.

Próximos pasos