Ejecutar compilaciones en un grupo privado

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

Antes de comenzar

  • Asegúrate de haber creado un grupo privado mediante los pasos que figuran en Crea y administra grupos privados.

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

  • Puedes usar el mismo proyecto de Cloud para crear tu grupo de trabajadores personalizados y tus compilaciones de Cloud Build, o bien usar proyectos diferentes. Si tus compilaciones se encuentran en un proyecto diferente al de tu grupo privado, configura el proyecto predeterminado en la CLI de gcloud como el proyecto en el que se originan tus compilaciones:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

Permisos de IAM

  • Para ejecutar compilaciones mediante la CLI de gcloud o la API de Cloud Build, otorga la función Usuario de grupo de trabajadores en el proyecto del grupo privado a la cuenta de servicio o usuario 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 workerpool donde se crean tus compilaciones:

    Console

    1. Abre la página IAM en Google Cloud Console.

      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 tu grupo privado.

    3. Haga clic en Agregar.

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

      • Principales nuevas: 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 obtener esta dirección de correo electrónico, sigue estos pasos:

        1. Abrir la página de IAM.
        2. Selecciona el proyecto que contiene el 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.
      • Selecciona una función: selecciona la función de usuario de grupo de trabajadores de Cloud Build.

    5. Haz clic en Guardar para guardar tus 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 Cloud en el que creaste el grupo privado o desde un proyecto de Cloud diferente. Puedes especificar el grupo privado en el 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 Cloud en el que se encuentra el grupo privado.
    • REGION: La región en la que creaste tu grupo privado.
    • PRIVATEPOOL_ID: El ID del grupo privado único que especificaste cuando se creó el grupo privado.
  2. Usa el archivo de configuración de compilación que se creó antes para ejecutar la compilación a través de gcloud o la API o mediante activadores. Si la instancia se aloja de forma local, Cloud Build también proporciona compatibilidad con la función de activación para varios sistemas de administración de código fuente externo, 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 mediante 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: El ID del grupo privado único que especificaste cuando se creó el grupo privado.
  • PRIVATEPOOL_PROJECT_ID: Es el proyecto de Cloud en el que se encuentra el grupo privado.
  • REGION: La región en la que creaste tu grupo privado.

Próximos pasos