Configura tu imagen de VM para la implementación de Terraform

En este artículo, se describe cómo terminar de configurar y enviar la imagen de la VM para su implementación con Terraform.

Determina cómo crear tu paquete de implementación

Te recomendamos que uses la opción de configuración guiada de Producer Portal para hacer lo siguiente: crear tu paquete de implementación directamente en la consola de Google Cloud.

La opción de configuración guiada admite productos de VM simples, como VMs únicas Deployment con reglas básicas de firewall, pero no es compatible con algunas como implementaciones con varias VMs y recursos que no son de procesamiento. Si necesitas funciones que no admite la configuración guiada, puedes usar la opción de configuración manual para crear tu paquete de implementación o personalizar un paquete existente agregándole capacidades adicionales.

Cambia entre la configuración guiada y la configuración manual

Si usas la opción de configuración guiada de Producer Portal y más adelante quieres cambia a la configuración manual del paquete de implementación, haz clic Ve a la configuración manual.

Completa la configuración guiada

Para terminar de configurar y enviar un paquete de implementación simple con la console de Google Cloud, completa los siguientes pasos:

  1. En Producer Portal, ve a la sección Paquete de implementación.

  2. En Terraform configuration, junto al campo de entrada etiquetado Bucket de Cloud Storage, haz clic en Explorar.

    Si ya creaste un bucket de Cloud Storage, selecciónalo aquí.

    Si no tienes un bucket de Cloud Storage, haz clic en el ícono etiquetado como Create new bucket. Cuando creas un bucket nuevo, tienes las siguientes opciones:

    • Selecciona un nombre para el bucket.

    • Especifica en qué regiones almacena datos el bucket.

    • Especifica la clase de almacenamiento para tus datos.

    • Determina qué nivel de detalle aplicar al Permisos de Identity and Access Management (IAM) para los datos del bucket

    • Configura la configuración avanzada opcional, como la encriptación o las políticas de retención de datos.

  3. Asegúrate de habilitar el control de versiones de objetos para tu bucket de Cloud Storage.

  4. Para guardar la configuración del bucket y continuar con la configuración de la implementación haz clic en Configure.

  5. En Elige el tipo de máquina, debes especificar una Zona predeterminada, un Tipo de máquina mínimo y un Tipo de máquina predeterminado para tu producto de VM, junto con el tamaño y el tipo de su disco de arranque.

  6. En Especificar el sistema operativo, debes especificar el nombre y la versión del SO que usa la imagen de la VM, así como el número de versión de la imagen de la VM.

  7. De manera opcional, en Configurar acceso a la VM, puedes especificar las URLs del sitio y del administrador, junto con un nombre de usuario y una contraseña, que los usuarios pueden usar para acceder a la VM después de la implementación.

  8. De manera opcional, en Configurar redes, puedes especificar la configuración para Reenvío de IP y configura las reglas de firewall

  9. De manera opcional, en Definir los próximos pasos, puedes proporcionar instrucciones para lo siguiente: los usuarios de tu producto para guiarlos sobre cómo empezar a usar tu producto. Ellos podrán ver estas instrucciones después de implementar tu producto.

  10. Después de completar los pasos anteriores, haz clic en Generar para crear tu de implementación.

    Si necesitas realizar cambios adicionales en tu paquete de implementación más adelante, Puedes hacer clic en Editar para realizar cambios y, luego, en Generar para y vuelve a generar tu paquete de implementación con esos cambios aplicados.

  11. Valida el paquete de implementación en Producer Portal.

  12. Después de que Cloud Marketplace valide tu paquete de implementación si se completó correctamente, haz clic en Publicar para comenzar a probar tu implementación. .

Completa la configuración manual

En esta sección, se explica cómo usar la opción de configuración manual para crear un paquete de implementación y enviarlo para su revisión.

Especifica si quieres usar el módulo predeterminado o uno personalizado de Terraform

Puedes elegir si deseas que tus clientes usen el método predeterminado o uno personalizado módulo de Terraform cuando implementen el producto.

Si eliges usar el módulo de Terraform predeterminado, Google Cloud les proporciona a tus clientes un código de Terraform generado automáticamente que pueden usar para implementar tu producto.

Si decides usar un módulo de Terraform personalizado, debes proporcionarle a tu cliente tus propias plantillas de Terraform. Puedes proporcionar estas plantillas en un formulario que los clientes puedan implementar con la interfaz de línea de comandos (CLI) o con metadatos adicionales que les permitan implementar módulos directamente desde Cloud Marketplace.

Especificar si tus clientes deben usar la configuración predeterminada o personalizada y, en el caso de los módulos personalizados de Terraform, la forma en que deseas que tus clientes implementen del módulo, completa los siguientes pasos:

  1. En Producer Portal, ve a la sección Paquete de implementación.

  2. En Configuración de Terraform, debajo de Tipo, selecciona Predeterminado. Personalizada (implementación de CLI) o personalizada (implementación de IU).

Requisitos para los módulos personalizados de Terraform

Si eliges usar módulos personalizados de Terraform, estos deben cumplir con los siguientes requisitos:

  • Tu módulo personalizado debe tener un módulo que pueda usar Cloud Marketplace para verificar que cumpla con los requisitos. Para obtener más información, consulta Cómo probar que tu módulo pase la verificación.

  • Tu módulo debe tener una variable llamada project_id, que almacena el proyecto ID que usan tus clientes para implementar el módulo.

  • Debes especificar referencias a los nombres de tus imágenes como variables de Terraform, con el formato projects/PROJECT_NAME/global/images/IMAGE_NAME. El valor de default se debe establecer en el nombre de la imagen de la VM para que la copia de la imagen que pertenece a Cloud Marketplace se pueda reemplazar en el módulo cuando se publique tu producto de VM.

  • Tu módulo no debe depender de módulos externos que no se empaqueten con él.

  • Tu módulo debe usar solo los siguientes proveedores aprobados:

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Para ver un ejemplo de un módulo personalizado que cumpla con estos requisitos, visita el módulo de Terraform personalizado de muestra.

Requisitos adicionales para los módulos personalizados de Terraform para la implementación de la IU

Si tu módulo personalizado admite la implementación de la IU, debe cumplir con los siguientes requisitos adicionales:

  • Tu módulo debe contener una variable llamada goog_cm_deployment_name. Cloud Marketplace usa esta variable para nombrar las ubicaciones Deployment en su página de implementación. Debes usar esta variable para evitar colisiones de nombres de recursos entre varias implementaciones en un proyecto. Para ver un ejemplo, consulta goog_cm_deployment_name en el ejemplo de módulo de Terraform personalizado.

  • En el archivo metadata.display.yaml, debes especificar ET_GCE_DISK_IMAGE como el tipo xGoogleProperty para todas las variables de imagen. Para ver un ejemplo, consulta metadata.display.yaml en el módulo de Terraform personalizado de muestra.

  • Si tu producto contiene imágenes de varias VM o imágenes compatibles con varias CPU arquitecturas de Kubernetes, debes agregar enumValueLabels para que tus clientes puedan selecciona la imagen de VM que quieren usar. Para ver un ejemplo, consulta el módulo de Terraform personalizado de muestra.

  • Tu módulo no debe depender de la compatibilidad con Aprovisionadores de Terraform:

Pasos adicionales para módulos de Terraform personalizados

Si seleccionaste usar módulos de Terraform personalizados, debes completar los siguientes pasos adicionales para configurar la imagen de la VM para la implementación:

  1. En Producer Portal, ve a la sección Paquete de implementación.

  2. En Terraform configuration, en Image Variables, haz clic en Agregar variable.

    Para habilitar la implementación de Terraform de tu producto, debes haber activado el uso de imágenes de Marketplace. Cloud Marketplace usa la variable que agregas aquí para intercambiar Versión propiedad de Marketplace de tu imagen de VM cuando un cliente implementa tu producto.

  3. En el campo de texto Image Variable, ingresa un nombre para la variable, como “imagen”.

  4. En el módulo personalizado de Terraform, configura el valor predeterminado de la variable que que creaste en el paso anterior al nombre de la imagen de VM de tu producto, en el formato projects/YOUR_PROJECT/global/images/YOUR_IMAGE

  5. En Especifica la ubicación de tu objeto de GCS, haz clic en Explorar.

    Si ya creaste un bucket de Cloud Storage, selecciónalo aquí.

    Si no tienes un bucket de Cloud Storage, haz clic en el ícono etiquetado como Create new bucket. Cuando creas un bucket nuevo, puedes hacer lo siguiente:

    • Selecciona un nombre para el bucket.

    • Especifica en qué regiones almacena datos el bucket.

    • Especifica la clase de almacenamiento para tus datos.

    • Determina qué nivel de detalle aplicar a los permisos de Identity and Access Management (IAM) para los datos del bucket.

    • Configura la configuración avanzada opcional, como la encriptación o las políticas de retención de datos.

  6. Asegúrate de tener habilitado el control de versiones de objetos para tu bucket de Cloud Storage.

  7. Para guardar la configuración del bucket y continuar con la configuración del paquete de despliegue, haz clic en Configurar.

  8. En Roles obligatorios, especifica los roles de IAM que tus clientes. debes tener para implementar tu producto.

Crea metadatos para tu módulo personalizado de Terraform (solo implementación de IU)

Para que tu módulo personalizado admita la implementación de la IU, debes crear y agregar los metadatos que usa Cloud Marketplace para analizar correctamente tu módulo y renderizarlo en la IU para tu cliente.

Para crear y agregar estos metadatos, puedes usar la API de Herramienta de la CLI de CFT. Para usar CFT y crear y agregar metadatos a tus módulos personalizados, completa los siguientes pasos:

  1. Instala la herramienta de la CLI de CFT. Para obtener más información, visita el Documentación de la CLI de CFT Te recomendamos que especifiques el valor de VERSION para que sea latest. Configura PLATFORM en uno de los siguientes valores:

    • linux

    • windows

    • darwin

  2. Ejecuta el siguiente comando:

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    En el comando anterior, la marca -p proporciona una ruta de acceso para el paquete de Terraform, la marca -q genera metadatos sin necesidad de información para un repositorio remoto, la marca -d genera el archivo metadata.display.yaml y la marca --nested=false genera metadatos para el módulo raíz, omitiendo cualquier módulo en la carpeta modules/.

Después de completar los pasos anteriores, la herramienta de CLI de CFT genera dos archivos nuevos: metadata.yaml y metadata.display.yaml.

Personaliza los metadatos de tu módulo de Terraform personalizado

Cloud Marketplace usa el archivo metadata.display.yaml para personalizar la que usan los clientes para implementar tu producto a través de la IU. Si quieres personaliza este formulario. Después de crear los metadatos, puedes modificar los valores de los campos en metadata.display.yaml. Para obtener detalles sobre las opciones de personalización disponibles, visita la documentación de BlueprintUI de código abierto o consulta el esquema de BlueprintUI.

Te recomendamos que uses la extensión GooglePropertyExtensions para alterar tus metadatos. GooglePropertyExtensions te permite usar validaciones específicas de Google Cloud, como la aplicación de que los clientes puedan solo seleccionar redes de nube privada virtual (VPC) que ya existen en su en un proyecto final. Para ver un ejemplo, consulta el módulo de Terraform personalizado de muestra.

Valida los metadatos de tu módulo personalizado

Para validar los metadatos de tu módulo personalizado, ejecuta el siguiente comando:

cft blueprint metadata -p TF_PACKAGE_PATH -v

En el comando anterior, la marca -p proporciona una ruta para el paquete de Terraform, y la marca -v valida todos los archivos de metadatos en la ruta proporcionada según el esquema BlueprintMetadata.

Prueba que tu módulo pase la verificación

Tu módulo personalizado pasa la verificación si se ejecuta el siguiente comando: correctamente:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

En el comando anterior, marketplace_test.tfvars es un archivo de variables de Terraform que solo usa Cloud Marketplace, solo para esta verificación del modulo. Si tu plantilla declara variables que no tienen un valor predeterminado y no estableces un valor para esas variables, el comando no se ejecutará correctamente. Para asegurarte de que el comando se ejecute correctamente, puedes crear un archivo marketplace_test.tfvars para establecer valores para las variables que declara tu plantilla. Para ver un archivo marketplace_test.tfvars de ejemplo, consulta el módulo de Terraform personalizado de muestra.

Incluye un módulo de prueba (opcional) (solo implementación de la CLI)

De manera opcional, si tu módulo personalizado admite la implementación de CLI, puedes incluir una carpeta llamada examples/marketplace_test. Te recomendamos que lo hagas si tu producto debe incluir un módulo de prueba independiente para verificar su capacidades de integración. Si incluyes esta carpeta, para que el módulo pase la verificación, el siguiente comando debe ejecutarse correctamente:

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Valida y prueba tu implementación

Luego de crear y configurar tu paquete de implementación, debes validar y probarla antes de que el equipo de Cloud Marketplace pueda revisarla y aprobarla. que la modifica.

  1. En Producer Portal, ve a la sección Paquete de implementación.

  2. Haz clic en Validate. El proceso de validación puede tardar hasta dos horas en completarse, y puedes salir de la pantalla mientras se ejecuta.

  3. Una vez que la validación se haya completado correctamente, haz clic en Vista previa de la implementación. para probar la implementación.

¿Qué sigue?

Una vez que hayas validado y probado correctamente tu implementación, puedes hacer clic en Publicar para enviar tu producto general para su revisión y publicación en Cloud Marketplace. Para obtener más información, consulta Envía tu producto.