Prepara tu app de Kubernetes de Terraform para Google Cloud Marketplace

Antes de incorporar tu app de Kubernetes de Terraform a través de Producer Portal, te recomendamos que prepares tu entorno Google Cloudy tu app de Kubernetes de Terraform para Google Cloud Marketplace.

Antes de comenzar

Para acceder a Producer Portal, asegúrate de haber completado el formulario de información del proyecto de Cloud Marketplace.

Crea tu espacio de trabajo

Te recomendamos que crees un proyecto nuevo en la consola deGoogle Cloud , con un ID del proyecto que termine en -public, principalmente para tus productos de Cloud Marketplace. Para obtener instrucciones detalladas, consulta Crea y administra proyectos.

Si ya tienes un proyecto configurado para vender en Cloud Marketplace, verifica que los roles de Identity and Access Management (IAM) se hayan otorgado correctamente para Kubernetes y pasa directamente a Configura Artifact Registry en este documento.

Otorga roles de Identity and Access Management y especifica un contacto de seguridad para tu proyecto

Para otorgar roles de Identity and Access Management (IAM) y especificar un contacto de seguridad para tu proyecto, completa los siguientes pasos:

  1. Otorga los siguientes roles de IAM a nivel del proyecto:

    • Editor del proyecto, a cloud-commerce-marketplace-onboarding@twosync-src.google.com
    • Administrador de Service Management (roles/servicemanagement.serviceAdmin), a cloud-commerce-marketplace-onboarding@twosync-src.google.com y managed-services@cloud-marketplace.iam.gserviceaccount.com
    • Editor de configuración (roles/servicemanagement.configEditor) a cloud-commerce-producer@system.gserviceaccount.com

    Para obtener instrucciones detalladas, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.

  2. Otorga los siguientes roles, a nivel del servicio, a cloud-commerce-procurement@system.gserviceaccount.com:

    • Consumidor de servicio (roles/servicemanagement.serviceConsumer)
    • Controlador de servicios (roles/servicemanagement.serviceController)

    Si deseas conocer los pasos para otorgar acceso a nivel del servicio, consulta Cómo otorgar y revocar el acceso a la API.

  3. Especifica un contacto de seguridad. Para obtener más información, consulta Administra contactos para las notificaciones.

Configura Artifact Registry

Para configurar Artifact Registry, completa los siguientes pasos:

  1. Instala la CLI de gcloud. Para actualizar una instalación existente, ejecuta el comando gcloud components update. Nota: En Ubuntu, usa el paquete Debian para instalar gcloud CLI. El paquete de instantáneas de gcloud CLI no incluye kubectl ni extensiones para autenticarse con Artifact Registry usando gcloud CLI.
  2. Instala Docker si aún no lo hiciste.
  3. Activa la API de Artifact Registry, que te permite enviar elementos a Artifact Registry.
    Habilita la API
  4. Crea un repositorio de Artifact Registry de etapa de pruebas. Si deseas conocer los pasos detallados, consulta Almacena imágenes de contenedores de Docker en Artifact Registry.
  5. Activa Artifact Analysis, que permite el análisis de seguridad, para tu repositorio de Artifact Registry.
  6. Etiqueta y envía las imágenes que deseas distribuir en tu app a tu repositorio de Artifact Registry de etapa de pruebas.

Etiqueta y envía tus imágenes

Para etiquetar y enviar tus imágenes a Artifact Registry, completa los siguientes pasos:

  1. Elige la ruta del repositorio de etapa de pruebas de Artifact Registry. Te recomendamos que tu repositorio use la siguiente estructura: us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID. Tu repositorio de etapa de pruebas debe estar dentro de us-docker.pkg.dev. Cloud Marketplace no admite otras regiones ni dominios de gcr.io, como europe-docker.pkg.dev, gcr.io o eu.gcr.io, para las apps de Kubernetes de Terraform.
  2. Guarda o copia la ruta del repositorio de etapa de pruebas para cuando crees tu producto en Producer Portal.
  3. Compila la imagen que deseas enviar a tu repositorio de etapa de pruebas de Artifact Registry.
  4. Usa Docker para etiquetar la imagen con su número de versión, como 1.0:

    docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
    

    Por ejemplo, este comando podría ser docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0.

  5. Usa gcloud para enviar la imagen:

    gcloud docker push STAGING_REPO_PATH:tag
    
  6. Para cada etiqueta o imagen adicional que desees agregar a tu repositorio de etapa de pruebas, repite los pasos anteriores. Puedes agregar varias etiquetas a una sola imagen.

Enviar una imagen a tu repositorio de etapa de pruebas no hace que sea visible para los usuarios de forma automática. Las imágenes se vuelven visibles para los usuarios después de que las publicas.

Crea un clúster de desarrollo en Kubernetes Engine

Usa Google Kubernetes Engine para administrar y escalar los clústeres de Kubernetes. Para crear un clúster de prueba y, además, implementar una aplicación básica en él, sigue la Guía de inicio rápido del motor de Google Kubernetes.

Organiza tus lanzamientos

En general, cada versión de tu aplicación debe adoptar el Control de versiones semánticas 2.0, que sigue la convención de numeración MAJOR.MINOR.PATCH. Cada versión debe tener un número de versión único, como 1.0.1, 1.0.2 o 1.3.1. De manera opcional, para agregar un modificador previo al lanzamiento, usa un guion después del número de versión, como 1.3.1-alpha201910. Puedes usar modificadores previos al lanzamiento para almacenar y destacar información adicional que te resulte útil, como la fecha de compilación que indica cuándo se crearon las versiones.

Te recomendamos que publiques su software en segmentos. Cada segmento es una serie de versiones con actualizaciones de retrocompatibilidad. Tus segmentos se deben basar en versiones secundarias, como 4.1.x. Evita usar nombres de versión genéricos, como newest.

Por ejemplo, si lanzas la versión 2.0 de tu app en Cloud Marketplace y esperas que las versiones 2.0.1, 2.0.5 y posteriores sean compatibles con versiones anteriores de 2.0, organiza estos lanzamientos en el segmento de lanzamiento 2.0.

Cuando publiques una versión de tu app incompatible con versiones anteriores, o una versión que requiera que los usuarios realicen pasos de migración manual, lánzala en un segmento nuevo, para que los usuarios puedan planificar sus actualizaciones.

Crea y sube tu wrapper del módulo de Terraform a Cloud Storage

Debes proporcionar un módulo de Terraform que los usuarios de Cloud Marketplace puedan usar para implementar tu app de Kubernetes de Terraform. Este módulo usa el proveedor de Helm para implementar los gráficos de Helm que proporcionaste. Para conocer los pasos para crear un módulo de Terraform que sea compatible con tu app de Kubernetes de Terraform, consulta la guía para socios de Terraform Kubernetes en GitHub.

Elige los identificadores de tus productos

Debes seleccionar los siguientes identificadores para tu empresa, producto y las imágenes del contenedor, que se usan a fin de crear tus URLs de Cloud Marketplace y los URIs para tus imágenes del contenedor:

  • El nombre de tu empresa. Por ejemplo, si el nombre de tu empresa es Ejemplosoft Inc., puedes usar el identificador examplesoft.
  • El nombre de tu producto. Por ejemplo, si el nombre del producto es Example Pro, usa el identificador example-pro.
  • El segmento del producto, como 4.0. Para obtener más información, consulta Organiza tus versiones, que se encontraba anteriormente en esta página.

Identificadores de productos de muestra

Por ejemplo, la empresa Examplesoft Inc. elige los identificadores siguientes para Example Pro, su producto:

Nombre Identificador
Empresa Examplesoft Inc examplesoft
Producto Example Pro example-pro
Gráfico de Helm Gráfico de Helm gráfico
Imagen [1] Base de datos de ejemplo example-db
Imagen [2] Example Queue example-queue
Segmento [1] Versión 4.x.x 4.0
Segmento [2] Versión 5.x.x 5.0

A partir de estos identificadores, se genera automáticamente la siguiente información:

  • La URL del producto en Cloud Marketplace: https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
  • Los URIs de Artifact Registry en tu proyecto:
    • us-docker.pkg.dev/examplesoft/example-pro/chart:4.0
    • us-docker.pkg.dev/examplesoft/example-pro/example-db:4.0
    • us-docker.pkg.dev/examplesoft/example-pro/example-query:4.0
    • us-docker.pkg.dev/examplesoft/example-pro/chart:5.0
    • us-docker.pkg.dev/examplesoft/example-pro/example-db:5.0
    • us-docker.pkg.dev/examplesoft/example-pro/example-query:5.0

¿Qué sigue?

Después de configurar tu entorno de Google Cloud para las apps de Kubernetes de Terraform, completa los siguientes pasos para seguir preparando tus apps para la publicación: