Avant d'intégrer votre application Terraform Kubernetes via Producer Portal, nous vous recommandons de préparer votre environnement Google Cloudet votre application Terraform Kubernetes pour Google Cloud Marketplace.
Avant de commencer
Pour accéder à Producer Portal, assurez-vous d'avoir rempli le formulaire d'informations sur le projet Cloud Marketplace.
Créer un espace de travail
Nous vous recommandons de créer un projet dans la consoleGoogle Cloud , avec un ID de projet se terminant par -public
, principalement pour vos produits Cloud Marketplace. Pour obtenir des instructions détaillées, consultez Créer et gérer des projets.
Si vous avez déjà configuré un projet pour vendre sur Cloud Marketplace, vérifiez que les rôles Identity and Access Management (IAM) sont correctement attribués pour Kubernetes, puis passez directement à Configurer Artifact Registry dans ce document.
Attribuer des rôles Identity and Access Management et spécifier un contact de sécurité pour votre projet
Pour attribuer des rôles Identity and Access Management (IAM) et spécifier un contact de sécurité pour votre projet, procédez comme suit :
Attribuez les rôles IAM suivants au niveau du projet :
- Éditeur de projet, à
cloud-commerce-marketplace-onboarding@twosync-src.google.com
- Administrateur Service Management (
roles/servicemanagement.serviceAdmin
), àcloud-commerce-marketplace-onboarding@twosync-src.google.com
etmanaged-services@cloud-marketplace.iam.gserviceaccount.com
- Éditeur de configuration (
roles/servicemanagement.configEditor
), àcloud-commerce-producer@system.gserviceaccount.com
Pour obtenir des instructions détaillées, consultez Accorder, modifier et révoquer les accès à des ressources.
- Éditeur de projet, à
Attribuez les rôles suivants au niveau du service à
cloud-commerce-procurement@system.gserviceaccount.com
:- Consommateur de service (
roles/servicemanagement.serviceConsumer
) - Contrôleur des services (
roles/servicemanagement.serviceController
)
Pour connaître les étapes à suivre pour accorder l'accès au niveau du service, consultez Accorder et révoquer l'accès à l'API.
- Consommateur de service (
Spécifiez un contact de sécurité. Pour en savoir plus, consultez Gérer les contacts pour les notifications.
Configurer Artifact Registry
Pour configurer Artifact Registry, procédez comme suit :
- Installez la CLI gcloud.
Pour mettre à jour une installation existante, exécutez la commande
gcloud components update
. Remarque : Sous Ubuntu, utilisez le package Debian pour installer gcloud CLI. Le package Snap de gcloud CLI n'inclut paskubectl
ni les extensions permettant de s'authentifier auprès d'Artifact Registry à l'aide de gcloud CLI. - Installez Docker si ce n'est pas déjà fait.
- Activez l'API Artifact Registry, qui vous permet d'effectuer des opérations push vers Artifact Registry.
Activer l'API - Créez un dépôt Artifact Registry intermédiaire. Pour obtenir la procédure détaillée, consultez Stocker des images de conteneurs Docker dans Artifact Registry.
- Activez Artifact Analysis, qui permet d'analyser la sécurité, pour votre dépôt Artifact Registry.
- Ajoutez un tag et transférez les images que vous souhaitez distribuer dans votre application vers votre dépôt Artifact Registry de préproduction.
Ajouter des tags à vos images et les transférer
Pour taguer et transférer vos images vers Artifact Registry, procédez comme suit :
- Choisissez le chemin d'accès à votre dépôt Artifact Registry de préparation. Nous vous recommandons d'utiliser la structure suivante pour votre dépôt :
us-docker.pkg.dev/YOUR_PARTNER_ID/YOUR_SOLUTION_ID
. Votre dépôt de préproduction doit se trouver dansus-docker.pkg.dev
. Cloud Marketplace n'est pas compatible avec les autres régions ni les domainesgcr.io
, tels queeurope-docker.pkg.dev
,gcr.io
oueu.gcr.io
, pour les applications Terraform Kubernetes. - Enregistrez ou copiez le chemin d'accès au dépôt de préproduction pour créer votre produit dans Producer Portal.
- Créez l'image que vous souhaitez insérer dans votre dépôt de préproduction Artifact Registry.
Utilisez Docker pour taguer l'image avec son numéro de version, par exemple
1.0
:docker tag IMAGE_NAME STAGING_REPO_PATH:VERSION_NUMBER
Par exemple, cette commande peut être :
docker tag test-image us-docker.pkg.dev/testpartner/testsolution:1.0
.Utilisez
gcloud
pour transférer votre image :gcloud docker push STAGING_REPO_PATH:tag
Pour chaque tag ou image supplémentaire que vous souhaitez ajouter à votre dépôt de préproduction, répétez les étapes précédentes. Vous pouvez ajouter plusieurs tags à une même image.
Le fait de transférer une image vers votre dépôt de préproduction ne la rend pas automatiquement visible pour les utilisateurs. Vos images deviennent visibles pour les utilisateurs une fois que vous les avez publiées.
Créer un cluster de développement dans Kubernetes Engine
Pour gérer et mettre à l'échelle les clusters Kubernetes, utilisez Google Kubernetes Engine. Pour créer un cluster de test et y déployer une application de base, consultez le guide de Démarrage rapide de Google Kubernetes Engine.
Organiser vos sorties
En général, chaque version de votre application doit adopter Semantic Versioning 2.0, qui suit la convention de numérotation MAJOR.MINOR.PATCH
. Chaque version doit posséder un numéro de version unique, tel que 1.0.1
, 1.0.2
ou 1.3.1
. Si vous le souhaitez, vous pouvez ajouter un modificateur de version préliminaire en ajoutant un tiret après le numéro de version, par exemple 1.3.1-alpha201910
. Vous pouvez utiliser des modificateurs de version préliminaire pour stocker et mettre en évidence toutes les informations supplémentaires que vous jugez utiles, telles que les dates de compilation indiquant la date de création des versions.
Nous vous recommandons de publier votre logiciel en canaux. Chaque canal est une série de versions présentant des mises à jour rétrocompatibles. Vos canaux de publication doivent être basés sur des versions mineures, telles que 4.1.x
. Évitez d'utiliser des noms de version génériques, tels que newest
.
Par exemple, si vous publiez la version 2.0
de votre application sur Cloud Marketplace et que les versions 2.0.1
, 2.0.5
et ultérieures sont rétrocompatibles avec 2.0
, placez ces versions sur le canal de publication 2.0
.
Lorsque vous publiez une version de votre application incompatible avec les précédentes, ou une version qui oblige les utilisateurs à suivre une procédure de migration manuelle, publiez-la sur un nouveau canal, afin que les utilisateurs puissent planifier leurs mises à jour.
Créer et importer votre wrapper de module Terraform dans Cloud Storage
Vous devez fournir un module Terraform que les utilisateurs Cloud Marketplace peuvent utiliser pour déployer votre application Terraform Kubernetes. Ce module utilise le fournisseur Helm pour déployer les charts Helm que vous avez fournis. Pour savoir comment créer un module Terraform compatible avec votre application Terraform Kubernetes, consultez le guide des partenaires Terraform Kubernetes sur GitHub.
Choisir des identifiants de produit
Vous devez sélectionner les identifiants suivants pour votre entreprise, votre produit et vos images de conteneur. Ils servent à créer les URL Cloud Marketplace, ainsi que les URI de vos images de conteneur :
- Nom de votre entreprise : Par exemple, si le nom de votre entreprise est Examplesoft Inc., vous pouvez utiliser l'identifiant
examplesoft
. - Nom de votre produit : Par exemple, si le nom de votre produit est Example Pro, utilisez l'identifiant
example-pro
. - Le canal de publication de votre produit, tel que
4.0
. Pour en savoir plus, consultez Organiser vos versions, plus haut sur cette page.
Exemples de codes produit
Par exemple, pour son produit Example Pro, l'entreprise Examplesoft Inc. choisit les identifiants suivants :
Nom | Identifiant | |
---|---|---|
Société | Examplesoft Inc | examplesoft |
Produit | Example Pro | example-pro |
Chart Helm | Chart Helm | graphique |
Image [1] | Exemple de base de données | example-db |
Image [2] | File d'attente Example | example-queue |
Canal de publication [1] | Version 4.xx | 4.0 |
Canal de publication [2] | Version 5.xx | 5.0 |
À partir de ces identifiants, les informations suivantes sont générées automatiquement :
- URL du produit dans Cloud Marketplace :
https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
- URI Artifact Registry dans votre projet :
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
Étapes suivantes
Après avoir configuré votre environnement Google Cloud pour les applications Terraform Kubernetes, continuez à préparer vos applications pour la publication en suivant les étapes suivantes :
- Ajoutez votre application Terraform Kubernetes à Producer Portal.
- Ajoutez des informations sur les tarifs de votre application.
- Configurez le déploiement de votre application, y compris son chart Helm et ses images de conteneur.