Les applications Terraform Kubernetes sur Google Cloud Marketplace permettent à vos clients d'utiliser Terraform pour déployer vos applications conteneurisées sur Google Kubernetes Engine. Vos utilisateurs ne sont pas facturés pour leur utilisation de vos applications Terraform Kubernetes, mais ils le sont pour leur utilisation des ressources Google Cloud . Vous pouvez proposer publiquement des applications Terraform Kubernetes à tous les utilisateurs Cloud Marketplace, ou de manière privée à l'aide d'offres privées.
Les applications Kubernetes Terraform que vous proposez sur Cloud Marketplace définissent leurs configurations à l'aide de charts Helm que vous hébergez dans Artifact Registry. Une fois cette configuration effectuée, vous intégrez votre application à Cloud Marketplace via Producer Portal.
Présentation de l'intégration d'une application Kubernetes Terraform
Pour proposer une application Terraform Kubernetes sur Cloud Marketplace, vous devez suivre les étapes suivantes :
Préparez votre application Kubernetes Terraform pour Cloud Marketplace. Cela inclut la configuration d'Artifact Registry et le transfert des images de votre application vers celui-ci.
Ajoutez les informations tarifaires de votre application dans Producer Portal.
Configurez le déploiement de votre application dans Producer Portal, y compris son module Terraform, son chart Helm et ses images de conteneurs.
Publiez votre produit sur Cloud Marketplace. Lorsque vous intégrez votre produit, vous soumettez différentes parties de votre produit à un examen. L'équipe Cloud Marketplace examine chaque envoi et travaille avec vous pour résoudre les éventuels problèmes avant approbation. Une fois tous vos envois approuvés, vous pouvez publier et lancer le produit en quelques minutes.
Conditions requises pour les applications Kubernetes Terraform
Tous les produits que vous proposez sur Cloud Marketplace doivent respecter les exigences concernant les fiches de Cloud Marketplace.
Votre application Terraform Kubernetes doit répondre aux exigences supplémentaires suivantes :
- Votre application doit s'exécuter sur des nœuds GKE qui utilisent des processeurs x86.
- Tous les graphiques Helm et les images de conteneur de votre application doivent être importés dans votre registre Artifact Registry, dans le même dépôt et le même projet que ceux que vous utilisez pour votre application Terraform Kubernetes.
- Votre registre Artifact Registry doit inclure un chart Helm.
- Votre module Terraform doit être hébergé sous forme de fichier ZIP dans un bucket Cloud Storage situé dans le même projet que celui que vous utilisez pour votre application Terraform Kubernetes.
- Vous devez activer la gestion des versions pour le bucket Cloud Storage que vous utilisez pour héberger votre module Terraform.
- Vous devez inclure un guide de l'utilisateur expliquant la procédure de déploiement à partir de la ligne de commande, la configuration et l'utilisation de l'application. Pour en savoir plus, consultez Exigences concernant votre guide de l'utilisateur dans ce document.
- Pour protéger les utilisateurs contre les API instables, n'utilisez que les ressources bêta ou Kubernetes généralement disponibles.
Exigences concernant les images de votre application
Les images de votre application doivent répondre aux exigences suivantes :
- Toutes les images de votre application doivent comporter le tag du canal de publication et de la version actuelle. Par exemple, si vous publiez la version
2.0.5
sur le canal de publication2.0
, toutes les images correspondantes doivent comporter les tags2.0
et2.0.5
. Pour en savoir plus, consultez Organiser vos releases. Toutes les images de votre application doivent contenir l'annotation suivante dans leur fichier manifeste d'image :
com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
Remplacez SERVICE_NAME par le nom du service. Pour trouver le nom de votre service, consultez le tableau des produits sur la page Présentation de Producer Portal. Pour en savoir plus sur les annotations, consultez la documentation de l'Open Container Initiative sur les annotations sur GitHub.
Exigences concernant votre dépôt Artifact Registry
Le chart Helm et les images de conteneur de votre application doivent faire partie d'un même dépôt Artifact Registry.
Par exemple, si votre dépôt Artifact Registry est us-docker.pkg.dev/exampleproject
, le chart Helm et les images de conteneur de votre application doivent ressembler à ce qui suit :
us-docker.pkg.dev/exampleproject/exampleapp/chart
us-docker.pkg.dev/exampleproject/exampleapp/image1
us-docker.pkg.dev/exampleproject/exampleapp/image2
Exigences concernant le module Terraform
Les clients utilisent le module Terraform pour déployer votre produit depuis Cloud Marketplace via Infrastructure Manager. Le module Terraform regroupe la configuration Kubernetes de votre application.
Utilisez le module exemple comme point de départ et suivez le guide du partenaire pour créer un module Terraform compatible avec votre application.
Paramètres transmis à votre application
Votre module Terraform doit déclarer les paramètres qui doivent être collectés auprès des clients lorsqu'ils sélectionnent votre application. Ces paramètres sont ensuite transmis au conteneur du chart Helm lorsque les utilisateurs déploient l'application.
Pour configurer ces paramètres, votre module Terraform doit inclure un fichier schema.yaml
.
Pour savoir comment créer un schema.yaml
, consultez le guide de création d'un schéma sur GitHub.
Demandes de cluster GPU
Si votre application a des besoins spécifiques ou élevés en matière de GPU, vous pouvez spécifier le type et le nombre de GPU dans le cluster à l'aide de votre schéma de déploiement. Si vous spécifiez vos besoins en GPU, vous désactivez la création assistée de cluster.
Votre application peut demander un GPU Nvidia générique ou une plate-forme Nvidia spécifique.
Exigences relatives au guide utilisateur de votre application
Le guide utilisateur de votre application doit inclure les informations suivantes :
- Présentation : une présentation générale de votre application, couvrant les fonctions de base et les options de configuration. Cette section doit également fournir un lien vers votre application publiée sur Cloud Marketplace.
- Configuration unique : inclut les étapes de configuration de Helm et d'installation de la
CustomResourceDefinition
(CRD) Application afin que votre cluster puisse gérer la ressource Application. - Installation : cela inclut les éléments suivants :
- Commandes pour déployer votre application
- Paramètres de transfert disponibles dans la configuration de l'UI
- Épingler des références d'images à des condensés immuables
- Informations sur les champs de saisie personnalisés que vous avez ajoutés à votre module Terraform, le cas échéant. Consultez les instructions pour ajouter des champs de saisie à votre module Terraform.
- Utilisation de base : guides pour les tâches suivantes :
- Modifier les noms d'utilisateur et les mots de passe
- Connexion à une console d'administration, le cas échéant
- Connexion d'un outil client et exécution d'un exemple de commande, le cas échéant
- Activation de l'entrée et installation des certificats TLS, le cas échéant
- Sauvegarder et restaurer : informations sur la sauvegarde de l'état de l'application et la restauration de l'état de l'application à partir d'une sauvegarde.
- Mise à jour des images : informations sur la mise à jour des images d'application pour les correctifs ou les mises à jour mineures.
- Scaling : informations sur le scaling de l'application, le cas échéant.
- Suppression : guides pour supprimer l'application et nettoyer toutes les ressources qui pourraient subsister, telles que les PersistentVolumeClaims.
Étapes suivantes
- Consultez les exigences concernant les fiches Google Cloud Marketplace.
- Préparez votre application Kubernetes Terraform pour Cloud Marketplace.
- Ajoutez votre application Terraform Kubernetes à Cloud Marketplace à l'aide de Producer Portal.