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
Crea un proyecto Google Cloud o elige uno que ya tengas. Usarás este proyecto para crear el grupo privado.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles. Para usar los ejemplos de línea de comandos de esta guía, instala y configura la CLI de Google Cloud.
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.
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
Abre la página Grupo de trabajadores en la Google Cloud consola:
Haz clic en Crear grupo privado.
Se muestra la página Crear grupo privado.
Introduce la siguiente información para crear tu grupo privado:
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.Región: selecciona la región en la que quieras crear el grupo privado.
Configuración de la máquina: configure lo siguiente:
Serie: elige una serie de máquinas.
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.
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.
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.
En Tipo de red, seleccione una de las siguientes opciones:
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.
Red privada: selecciona esta opción si tu instancia está alojada en una red privada y, a continuación, haz lo siguiente:
Proyecto: selecciona tu Google Cloud ID de proyecto.
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.
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 de192.0.2.0
a192.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.
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.
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
:
Crea el archivo de configuración del grupo privado en formato YAML o JSON.
Ejecuta el siguiente comando
gcloud
, dondePRIVATEPOOL_ID
es un identificador único de tu grupo privado,PRIVATEPOOL_CONFIG_FILE
es el nombre del archivo de configuración de tu grupo privado yREGION
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 formatoprojects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME
, dondeNETWORK_PROJECT_ID
es el ID del proyecto Google Cloud que contiene tu red de VPC yNETWORK_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
durantegcloud builds submit
.PRIVATEPOOL_MACHINE_TYPE
: el tipo de máquina del trabajador. Si se deja en blanco, Cloud Build usará el valor predeterminadoe2-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
durantegcloud 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
Crea el archivo de configuración del grupo privado llamado
workerpool.json
.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
Abre la página Grupo de trabajadores en la Google Cloud consola:
Selecciona el proyecto en el que has creado el grupo privado.
Haga clic en el nombre del grupo privado.
En la página Editar grupo privado, actualiza el tipo de máquina y el tamaño del disco según sea necesario.
Haz clic en Guardar.
gcloud
Actualizando el archivo de configuración del grupo privado:
Actualiza el campo que quieras cambiar en el archivo de configuración del grupo privado.
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 yPRIVATEPOOL_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
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.
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
Abre la página Grupo de trabajadores en la Google Cloud consola:
Selecciona el proyecto en el que has creado el grupo privado.
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
Abre la página Grupo de trabajadores en la Google Cloud consola:
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
- Consulta cómo ejecutar compilaciones en grupos privados.
- Consulta cómo usar Controles de Servicio de VPC con grupos privados.