Crear y gestionar grupos privados

En esta página se describe cómo crear, actualizar, ver y eliminar grupos privados de Cloud Build. Si no conoces las piscinas privadas, consulta el artículo sobre las piscinas privadas.

Antes de empezar

  1. Crea un proyecto Google Cloud o elige uno que ya tengas. Usarás este proyecto para crear el grupo privado.

  2. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

  4. Opcional: Para que las compilaciones accedan a recursos privados de tu red de nube privada virtual, debes configurar una conexión de peering entre tu red de nube privada virtual y la red de nube privada virtual en la que residen los grupos privados. Para obtener instrucciones, consulta el artículo sobre cómo configurar tu entorno para crear grupos privados.

  5. Opcional: Familiarízate con las configuraciones de los tipos de máquinas y la disponibilidad regional. Para obtener más información, consulta workerconfig en la documentación del esquema del archivo de configuración del grupo privado.

Crear un grupo privado

Para obtener los permisos que necesitas para crear un grupo privado, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Propietario de WorkerPool de Cloud Build (roles/cloudbuild.workerPoolOwner) en tu cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Puedes crear hasta 10 grupos privados por Google Cloud proyecto y región. Para crear un grupo privado, sigue estos pasos:

Google Cloud consola

  1. Abre la página Grupo de trabajadores en la Google Cloud consola:

    Abre la página del grupo de trabajadores de Cloud Build.

  2. Haz clic en Crear grupo privado.

    Se muestra la página Crear grupo privado.

    Introduce la siguiente información para crear tu grupo privado:

  3. Nombre: introduce un nombre para tu grupo privado. Este valor solo puede contener caracteres alfanuméricos /[a-z][0-9]/ o guiones -. El nombre de tu grupo privado debe tener entre 1 y 63 caracteres.

  4. Región: selecciona la región en la que quieras crear el grupo privado.

  5. Configuración de la máquina: configure lo siguiente:

    1. Serie: elige una serie de máquinas.

    2. Tipo de máquina: este ajuste muestra los tipos de máquina que puede usar el grupo de trabajadores en función de la serie de máquinas que hayas seleccionado. Los tipos de máquinas disponibles varían según la región.

    3. Tamaño del disco: introduce el tamaño del disco de tu grupo privado. Especifica un valor igual o superior a 100 e igual o inferior a 4000. Si no proporcionas ningún valor, Cloud Build usará un tamaño de disco de 100.

    4. Virtualización anidada: si has seleccionado una máquina de la serie C3, puedes habilitar la virtualización anidada. Esta función te permite ejecutar instancias de máquinas virtuales dentro de otras máquinas virtuales para que puedas crear tus propios entornos de virtualización.

  6. En Tipo de red, seleccione una de las siguientes opciones:

    1. Red predeterminada: selecciona esta opción si se puede acceder a tu instancia a través de la red de Internet pública. Si seleccionas la opción Red predeterminada, tu grupo privado usará la red del productor de servicios. Para obtener más información, consulta Configurar un entorno para usar pools privados en una red VPC.

    2. Red privada: selecciona esta opción si tu instancia está alojada en una red privada y, a continuación, haz lo siguiente:

      1. Proyecto: selecciona tu Google Cloud ID de proyecto.

      2. Red: selecciona tu red en el menú desplegable. Si no has creado ninguna red, consulta el artículo Crear y gestionar redes de VPC para saber cómo crear una.

      3. Intervalo de IP: introduce el intervalo de IP interna que puede usar la red de productor de Cloud Build para asignar a las VMs que mantienen una conexión con repositorios privados.

        Puede especificar el intervalo mediante la notación de enrutamiento de interdominios sin clases (CIDR) con el formato STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE. Por ejemplo, 192.0.2.0/24 tiene una longitud de prefijo de 24. Los primeros 24 bits del intervalo de IP se usan como máscara de subred (192.0.2.0), mientras que las posibles direcciones de host van de 192.0.2.0 a 192.0.2.255.

        El valor de la longitud del prefijo no debe superar /29. Si no se especifica ningún valor para el intervalo, se asigna automáticamente el valor predeterminado /24. Si no se especifica ningún valor para la longitud del prefijo, las direcciones IP se asignan automáticamente en la red de VPC emparejada. Si no se especifica ningún valor para la dirección IP, se le asigna automáticamente un intervalo dentro de la red VPC emparejada.

    3. Asignar IPs externas: esta opción está seleccionada de forma predeterminada para permitir que los grupos privados accedan a Internet público. Desmarca esta casilla para restringir el acceso a tu red privada.

  7. Haz clic en Crear para crear tu grupo privado.

gcloud

Tienes dos opciones para crear un grupo privado con gcloud: puedes pasar el archivo de configuración del grupo privado al comando gcloud o pasar las opciones de configuración directamente al comando gcloud.

Envía el archivo de configuración del grupo privado al comando gcloud:

  1. Crea el archivo de configuración del grupo privado en formato YAML o JSON.

  2. Ejecuta el siguiente comando gcloud, donde PRIVATEPOOL_ID es un identificador único de tu grupo privado, PRIVATEPOOL_CONFIG_FILE es el nombre del archivo de configuración de tu grupo privado y REGION es la región en la que quieres crear tu grupo privado:

    gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGION
    

    Debería ver un resultado similar al siguiente:

    Created [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/private-pool].
    NAME                 CREATE_TIME                STATUS
    private-pool  2018-11-19T16:08:24+00:00  RUNNING
    

Pasa las opciones de configuración directamente al comando gcloud:

Ejecuta el siguiente comando gcloud:

    gcloud builds worker-pools create PRIVATEPOOL_ID \
        --project=PRIVATEPOOL_PROJECT_ID \
        --region=REGION \
        --peered-network=PEERED_NETWORK \
        --worker-machine-type=PRIVATEPOOL_MACHINE_TYPE \
        --worker-disk-size=PRIVATEPOOL_DISK_SIZE_GB \
        --no-public-egress

Donde:

  • PRIVATEPOOL_ID: identificador único de tu grupo privado. Este valor debe tener entre 1 y 63 caracteres, y los caracteres válidos son [a-zA-Z0-9_-]+.
  • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto en el que quieres crear tu grupo privado.
  • REGION: una de las regiones admitidas.
  • PEERED_NETWORK: la URL del recurso de red de la red emparejada con la red del productor de servicios. PEERED_NETWORK debe tener el formato projects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME, donde NETWORK_PROJECT_ID es el ID del proyecto Google Cloud que contiene tu red de VPC y NETWORK_NAME es el nombre de tu red de VPC. Si no especifica ningún valor, Cloud Build usará la red del proveedor de servicios.
  • PRIVATEPOOL_DISK_SIZE_GB: tamaño del disco conectado al grupo privado. Especifica un valor igual o superior a 100 e igual o inferior a 4000. Si no se proporciona, Cloud Build usa un tamaño de disco de 100. --worker-disk-size se anula si especificas otro tamaño de disco con --disk-size durante gcloud builds submit.
  • PRIVATEPOOL_MACHINE_TYPE: el tipo de máquina del trabajador. Si se deja en blanco, Cloud Build usará el valor predeterminado e2-standard-2. Para ver una lista de los tipos de máquinas admitidos, consulta el esquema del archivo de configuración del grupo privado. --worker-machine-type se anula si especificas otro tipo de máquina con --machine-type durante gcloud builds submit.
  • --no-public-egress: si se define esta marca, el pool privado se crea sin una dirección IP externa. Define esta marca si vas a crear el grupo privado dentro de un perímetro de Controles de Servicio de VPC.

API

  1. Crea el archivo de configuración del grupo privado llamado workerpool.json.

  2. Usa cURL para llamar a la API Cloud Build:

        curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"
            -H "Content-Type: application/json" \
            https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=PRIVATEPOOL_ID -d @workerpool.json
    

    Donde:

    • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto en el que quieres crear tu grupo privado.
    • PRIVATEPOOL_ID: el ID de tu grupo privado. Este valor debe tener entre 1 y 63 caracteres, y los caracteres válidos son [a-zA-Z0-9_-]+.
    • REGION: una de las regiones admitidas para crear tu grupo privado.

Crear un grupo privado en un perímetro de Controles de Servicio de VPC

Para crear un grupo privado con un perímetro de Controles de Servicio de VPC, consulta Usar Controles de Servicio de VPC.

Actualizar un grupo privado

Para obtener los permisos que necesitas para crear un grupo privado, pide a tu administrador que te conceda el rol de IAM Editor de WorkerPool de Cloud Build (roles/cloudbuild.workerPoolEditor) en tu cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Para actualizar la configuración de un grupo privado, sigue estos pasos:

Consola

  1. Abre la página Grupo de trabajadores en la Google Cloud consola:

    Abre la página del grupo de trabajadores de Cloud Build.

  2. Selecciona el proyecto en el que has creado el grupo privado.

  3. Haga clic en el nombre del grupo privado.

  4. En la página Editar grupo privado, actualiza el tipo de máquina y el tamaño del disco según sea necesario.

  5. Haz clic en Guardar.

gcloud

Actualizando el archivo de configuración del grupo privado:

  1. Actualiza el campo que quieras cambiar en el archivo de configuración del grupo privado.

  2. Ejecuta el siguiente comando, donde PRIVATEPOOL_ID es el identificador único de tu grupo privado, REGION es la región en la que se encuentra tu grupo privado y PRIVATEPOOL_CONFIG_FILE es el nombre del archivo de configuración de tu grupo privado:

    gcloud builds worker-pools update PRIVATEPOOL_ID \
        --region=REGION \
        --config-from-file=PRIVATEPOOL_CONFIG_FILE
    

Transfiriendo el valor que se va a actualizar directamente al comando gcloud builds worker-pools update:

   gcloud builds worker-pools update PRIVATEPOOL_ID \
       --region=REGION \
       --worker-disk-size=PRIVATEPOOL_DISK_SIZE \
       --worker-machine-type=PRIVATEPOOL_MACHINE_TYPE

Donde:

  • PRIVATEPOOL_ID: el ID de tu grupo privado. No puedes actualizar este valor. Debes especificar un ID de grupo privado que ya exista.
  • REGION: la región en la que has creado tu grupo privado.
  • PRIVATEPOOL_DISK_SIZE: el tamaño actualizado del disco.
  • PRIVATEPOOL_MACHINE_TYPE es el tipo de máquina actualizado.

API

  1. En el archivo de configuración del grupo privado, actualiza el tamaño del disco y el tipo de máquina según sea necesario.

  2. Usa cURL para llamar a la API de Cloud Build. Sustituye las variables por los valores correspondientes:

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID \
        -d @workerpool.json
    

    Donde:

    • PRIVATEPOOL_ID: el ID de tu grupo privado.
    • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto que contiene tu grupo privado.
    • REGION: la región en la que has creado tu grupo privado.

Ver los detalles de tu grupo privado

Para obtener los permisos que necesitas para crear un grupo privado, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Visor de WorkerPool de Cloud Build (roles/cloudbuild.workerPoolViewer) en tu cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Para ver los detalles de un grupo privado, sigue estos pasos:

Consola

  1. Abre la página Grupo de trabajadores en la Google Cloud consola:

    Abre la página del grupo de trabajadores de Cloud Build.

  2. Selecciona el proyecto en el que has creado el grupo privado.

  3. Haga clic en el nombre del grupo privado.

    Se muestra la página Editar grupo privado.

gcloud

Si no sabes el ID de tu grupo privado, ejecuta el siguiente comando para ver los detalles de tu grupo privado:

gcloud builds worker-pools list --region=REGION --project=PRIVATEPOOL_PROJECT_ID

Donde:

  • PRIVATEPOOL_PROJECT_ID es el ID del Google Cloud proyecto que contiene el grupo privado.
  • REGION es la región del grupo privado.

Debería ver un resultado similar al siguiente:

NAME                                                                  CREATE_TIME                STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID]      2018-11-19T16:08:24+00:00  RUNNING

Si conoces el ID de tu grupo privado, ejecuta el siguiente comando para obtener más información sobre él:

gcloud builds worker-pools describe PRIVATEPOOL_ID \
    --region=REGION \
    --project=PRIVATEPOOL_PROJECT_ID

Dónde

  • PRIVATEPOOL_ID: el ID de tu grupo privado.
  • REGION: la región en la que has creado tu grupo privado.
  • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto que contiene tu grupo privado.

API

Si no sabes el ID de tu grupo privado, ejecuta el siguiente comando cURL para ver los detalles del grupo privado. Sustituye PRIVATEPOOL_PROJECT_ID por el ID del proyecto Google Cloud que contiene el grupo privado:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools

Si conoces el ID de tu grupo privado, ejecuta el siguiente comando curl para obtener los detalles de tu grupo privado:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

Dónde

  • PRIVATEPOOL_ID: el ID de tu grupo privado.
  • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto que contiene tu grupo privado.
  • REGION: la región en la que has creado tu grupo privado.

Ver las estimaciones de precios de grupos privados

Cuando creas o actualizas un grupo privado, en la barra lateral Estimación mensual de las páginas Crear grupo privado y Editar grupo privado se muestra una estimación del coste mensual de tu grupo. El cálculo se basa en los siguientes factores:

  • Número de CPUs virtuales
  • Tipo de máquina
  • Memoria
  • Minutos de compilación
  • Región (solo para máquinas N2D y C3)

Los precios estimados no incluyen los costes del tamaño de disco adicional que supere los 100 GB incluidos de forma predeterminada. Los precios estimados pueden ser diferentes de los precios finales en función de la configuración final de la compilación, los minutos de compilación reales utilizados y otros factores. Para obtener más información, consulta los precios de Cloud Build.

Eliminar un grupo privado

Para obtener los permisos que necesitas para crear un grupo privado, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Propietario de WorkerPool de Cloud Build (roles/cloudbuild.workerPoolOwner) en tu cuenta de servicio. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Para eliminar un grupo privado, sigue estos pasos:

Consola

  1. Abre la página Grupo de trabajadores en la Google Cloud consola:

    Abre la página del grupo de trabajadores de Cloud Build.

  2. En la fila del grupo privado, haz clic en el icono de la papelera.

gcloud

Para eliminar un grupo privado, ejecuta el comando gcloud builds worker-pools delete:

 gcloud builds worker-pools delete PRIVATEPOOL_ID \
     --region=REGION \
     --project=PRIVATEPOOL_PROJECT_ID

Donde:

  • PRIVATEPOOL_ID: el ID de tu grupo privado.
  • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto que contiene tu grupo privado.
  • REGION: la región en la que has creado tu grupo privado.

Una vez que se haya eliminado el grupo privado, deberías ver un resultado similar al siguiente:

 Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].

API

Usa cURL para llamar a la API Cloud Build:

  curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

Donde:

  • PRIVATEPOOL_ID: el ID de tu grupo privado.
  • PRIVATEPOOL_PROJECT_ID: el ID del Google Cloud proyecto que contiene tu grupo privado.
  • REGION: la región en la que has creado tu grupo privado.

Siguientes pasos