IBM Cloud Docs
Modifier localement la définition de la pile d'architecture déployable

Modifier localement la définition de la pile d'architecture déployable

Le fichier de définition de la pile définit les architectures déployables membres qui sont empilées pour former une architecture déployable plus complexe. Il spécifie des informations sur la manière dont ces architectures déployables sont censées être reliées les unes aux autres, comme les références d'entrée qui relient les architectures entre elles. Si vous envisagez de partager cette solution avec d'autres personnes par le biais d'un catalogue privé, une définition de la pile est nécessaire pour garantir un déploiement réussi.

À moins que vous n' empiliez des architectures déployables dans un projet et que vous ne souhaitiez partager cette solution avec d'autres par le biais d'un catalogue privé, vous n'avez pas besoin d'utiliser le fichier de définition de la pile.

La définition de pile contient des variables de pile. Ces variables sont des entrées que les utilisateurs peuvent configurer et des sorties d'architectures déployables empilées qui s'affichent au niveau parent. Ces valeurs d'entrée sont référencées dans les architectures déployables des membres, comme l'illustre l'image suivante. La définition de la pile comprend également des éléments provenant des architectures déployables des membres. Ces entrées peuvent être des références qui relient les architectures déployables entre elles. Les entrées qui nécessitent une valeur ou une référence spécifique pour déployer la solution avec succès doivent être incluses dans la définition de la pile. Pour un exemple, voir Création de la définition de pile à l’aide de l’interface de ligne de commande.

 Une représentation visuelle d'une définition de pile. Au niveau de la pile, une entrée nommée « préfixe » est incluse. L'architecture déployable membre A utilise ce préfixe comme entrée. A crée des sorties. L'architecture déployable membre B utilise ensuite l'une de ces sorties comme entrée et crée des sorties lorsqu'elle est déployée.
Visualisation de la définition de la pile

Utilisation de la console pour créer la définition de la pile

Dans un projet, votre définition de pile est créée automatiquement lorsque vous empilez des architectures déployables et que vous définissez des variables. L'utilisation de la console pour empiler des architectures déployables et définir des variables de pile offre les avantages suivants :

  • Vous pouvez utiliser le sélecteur de références dans la console pour créer des références entre des architectures déployables empilées, au lieu d'écrire les références à partir de zéro.
  • Le déploiement des architectures empilées d'un projet permet de vérifier que la solution globale fonctionne comme prévu avant que d'autres ne la configurent et ne la déploient.
  • Étant donné que la définition de la pile est créée automatiquement en fonction des sélections dans la console, les informations telles que les identifiants de localisateur de version des architectures déployables membres sont précises et mises à jour automatiquement.

Dans le projet, vous pouvez sélectionner les entrées que vous souhaitez inclure au niveau de la pile. Ces entrées sont incluses dans la section inputs de la définition de la pile et sont configurées comme références dans l'architecture déployable des membres de votre projet. Dans l'image suivante, l'entrée prefix est mise en évidence dans l'architecture déployable du membre Custom Apache. Si cette entrée est sélectionnée, le Default value devient une référence à l'entrée au niveau de la pile. Lorsqu'un utilisateur ajoute votre solution à un projet à partir d'un catalogue, il peut configurer l'entrée prefix et l'architecture membre Custom Apache fera référence à cette valeur. L'entrée fp_vsi_floating_ip_address fait référence à une sortie d'une autre architecture déployable membre. Cette entrée ne devrait pas être sélectionnée, car cette référence relie les architectures membres entre elles. Ces entrées provenant des architectures membres sont incluses dans la section members du fichier de définition de la pile.

 Définition des variables de pile dans un projet.
Définition des variables de pile dans un projet

Modification de la définition de votre pile

Pour modifier votre définition de pile localement, procédez comme suit :

  1. Suivez les étapes pour empiler des architectures déployables, définir des variables d'empilement et intégrer les architectures empilées dans un catalogue privé.

    Configurez et déployez les architectures empilées pour vérifier que la solution fonctionne comme prévu avant de l'ajouter à un catalogue privé.

  2. Une fois l'architecture déployable ajoutée à votre catalogue privé, vous accédez à la page Configurer la version du catalogue. De là, cliquez sur le menu Actions > Générer un manifeste.

    Vous pouvez également utiliser la méthode de définition de pile de l'API des projets ou la commande ibmcloud project stack-definition de l'interface de ligne de commande des projets pour exporter la définition de pile.

  3. Ouvrez le fichier stack_definition.json.

  4. En utilisant l’exemple de définition comme guide, modifiez les variables d’entrée et de sortie.

  5. Ajoutez le fichier dans le dossier racine de votre référentiel de code source.

La prochaine fois que vous ajouterez une nouvelle version de votre solution au catalogue, vos mises à jour seront incluses.

Exemple de fichier de définition

Il est recommandé d'utiliser un projet pour créer la définition de la pile afin d'en garantir l'exactitude. Toutefois, l'extrait de code suivant peut être utilisé comme modèle pour créer la définition de la pile à partir de zéro :

{
   "inputs": [
      {
         "name": "Stack input 1",
         "type": "string",
         "hidden": false,
         "required": true,
         "default" : "Default value"
      },
      {
         "name": "Stack input 2",
         "type": "string",
         "hidden": false,
         "required": true
      }
   ],
   "outputs": [
      {
         "name": "Output 1 name",
         "value": "The reference to this output value"
      },
      {
         "name": "Output 2 name",
         "value": "The reference to this output value"
      }
   ],
   "members": [
      {
         "Name": "Deployable architecture 1 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      },
      {
         "Name": "Deployable architecture 2 name",
         "Version_locator": "",
         "inputs": [
            {
               "name": "Input 1 name",
               "value": "reference"
            },
            {
               "name": "Input 2 name",
               "value": "reference"
            }
         ]
      }
   ]
}

Entrées de pile

La valeur inputs indique un tableau des variables d'entrée qui sont nécessaires pour que la solution soit déployée avec succès. Lorsqu'un utilisateur ajoute l'architecture déployable à un projet à partir d'un catalogue, il doit configurer ces entrées avant de procéder au déploiement. Les valeurs suivantes peuvent être incluses au niveau inputs.

"inputs": [
   {
      "name": "Stack input 1",
      "type": "string",
      "hidden": false,
      "required": true,
      "default" : "Default value"
   },
   {
      "name": "Stack input 2",
      "type": "string",
      "hidden": false,
      "required": true
   }
]
name
Le nom de votre variable d'entrée.
type
Le type de données primitives Terraform de la variable. Par exemple, boolean ou string.
hidden
Un booléen qui indique si le paramètre doit être masqué aux utilisateurs lors de l'installation.
required
Un booléen qui indique si les utilisateurs doivent spécifier le paramètre lors de l'installation.
default
La valeur par défaut qui doit être définie dans le catalogue.

Sorties de pile

La valeur outputs indique un tableau des variables de sortie qui sont créées lorsque la solution est déployée. Les valeurs suivantes peuvent être incluses au niveau outputs.

"outputs": [
   {
      "name": "Output 1 name",
      "value": "The reference to this output value"
   },
   {
      "name": "Output 2 name",
      "value": "The reference to this output value"
   }
]
name
Le nom de la variable de sortie.
value
La référence où la valeur peut être trouvée. Pour plus d'informations sur les références, voir Référencement des valeurs.

Contributions des membres

La valeur members indique un tableau d'entrées et de sorties pour chaque architecture déployable empilée. Les valeurs suivantes peuvent être incluses au niveau members.

"members": [
   {
      "Name": "Deployable architecture 1 name",
      "Version_locator": "",
      "inputs": [
         {
            "name": "Input 1 name",
            "value": "reference"
         },
         {
            "name": "Input 2 name",
            "value": "reference"
         }
      ]
   }
]
name
Le nom programmatique de l'architecture déployable incluse dans la pile.
version_locator
Identifie la version de l'architecture déployable du membre. Pour trouver le localisateur de version, sélectionnez le produit dans le catalogue pour ouvrir la page des détails du catalogue. Assurez-vous que la bonne version est sélectionnée. Cliquez ensuite sur Afficher les détails.
inputs
Entrées des architectures déployables membres qui sont empilées les unes sur les autres. Inclure des entrées avec des valeurs spécifiques qui sont nécessaires pour que la solution globale soit déployée. Si les architectures membres qui sont empilées dépendent les unes des autres, il convient d'inclure ces valeurs ici en tant que références. Pour plus d'informations, voir Référencement des valeurs. Par exemple, si l'une de vos architectures nécessite une sortie d'une autre architecture avec laquelle elle est empilée, ajoutez une référence à la sortie en tant que valeur.
name
Le nom de votre variable d'entrée. Ne modifiez pas le nom car il doit correspondre à l’entrée utilisée dans l’architecture déployable du membre.
value
La valeur de votre variable d'entrée. Une valeur par défaut ou une référence doit être fournie.