Configuration d'une architecture déployable

Après avoir ajouté une architecture déployable à votre projet, vous pouvez modifier les valeurs d'entrée afin de configurer l'architecture pour le déploiement.

Les configurations peuvent être génériques, mais de nombreux projets utilisent une configuration, ou un groupe de configurations, pour déployer des ressources dans différents environnements. Par exemple, un groupe de configurations peut être utilisé pour déployer des ressources dans des environnements de développement, de test et de production, et pour configurer des services communs en dehors de ces environnements. Lorsque vous déployez votre configuration, IBM Cloud® Schematics utilise Terraform pour appliquer le plan sous-jacent.

Avant de pouvoir déployer votre architecture, les données d'entrée, le plan, la conformité et le coût estimé de l'architecture déployable doivent être validés. Toute modification apportée à la configuration est validée afin de s'assurer qu'il n'y a pas de problèmes ou de défaillances.

Définition des valeurs d'entrée

Les valeurs d'entrée sont utilisées pour configurer une architecture déployable afin de répondre à vos besoins spécifiques. Les entrées requises varient en fonction de l'architecture déployable que vous choisissez. Selon la conception de l'architecture, certaines entrées peuvent inclure un ensemble d'options que vous pouvez sélectionner, ou vous pouvez saisir des valeurs dans des champs sous forme de chaînes de texte.

Valeurs de référence

Les configurations peuvent être reliées entre elles en utilisant les sorties d'une configuration comme entrées dans une autre. Par exemple, une configuration pour une application pourrait utiliser une sortie provenant d'une configuration d'infrastructure, telle qu'un identifiant de cluster, pour se déployer sur cette infrastructure. Pour ce faire, vous pouvez ajouter une référence à une entrée ou une sortie provenant d'une autre configuration. Vous pouvez également référencer des paramètres à partir d'un environnement. Lorsque vous ajoutez une référence, la valeur est extraite de l'entrée, de la sortie ou de l'environnement et utilisée comme valeur d'entrée dans l'architecture que vous configurez.

Dans la console, vous pouvez ajouter une référence dans une architecture que vous configurez en survolant une entrée et en sélectionnant Référence l'icône Icône.

Si vous utilisez l'API ou l'interface CLI pour configurer une architecture déployable, ou si vous modifiez la définition d'une pile d'architecture déployable et que vous souhaitez inclure une référence, vous pouvez l'écrire sous forme de chaîne de texte. Les références sont conformes à la spécification URL, mais utilisent un protocole ref différent au lieu de http. Tout comme les URL sur les sites Web, vous pouvez écrire une référence relative à votre contexte actuel. Par exemple, si vous ajoutez une référence à une entrée dans la configuration que vous êtes en train de modifier, votre chemin d'accès actuel est /configs/<configname> et vous pouvez écrire une référence relative à ce chemin. Par exemple, ref:./inputs/region ajoute une référence à l'entrée nommée region dans la même configuration. Dans ce cas, la configuration que vous modifiez n'a pas besoin d'être déployée pour référencer une autre valeur qu'elle contient.

Vous pouvez trouver le nom d'une sortie à référencer en ouvrant une configuration déployée dans votre projet et en accédant à l'onglet Sorties.

Référencement des valeurs à partir d'une configuration

Le format général pour référencer une valeur dans une configuration est le suivant :

ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>.

Vous pouvez référencer une entrée ou une sortie à partir d'une configuration déployée à partir de votre projet. Par exemple, la référence suivante pointe vers une sortie nommée cluster_id dans la ProdCluster configuration : ref:/configs/ProdCluster/outputs/cluster_id.

Vous pouvez ajouter une référence relative à une autre entrée dans la configuration que vous êtes en train de modifier. Il n'est pas nécessaire de déployer la configuration pour ce faire.

Expérimental

Si vous avez empilé des configurations dans votre projet, vous pouvez référencer les sorties entre les configurations qui ont été empilées ensemble. Le format général pour référencer une valeur est le suivant :

ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>

Si vous souhaitez faire une référence relative, vous pouvez le faire. Une référence relative entre des configurations empilées ensemble serait formatée comme ref:../<member_name>/inputs_or_outputs/<input_or_output_name> suit :. Mais, si vous faites référence à une valeur dans la définition de la pile, celle-ci sera formatée comme ref:../../inputs/<input_name> dans la configuration des membres. Actuellement, les membres ne peuvent pas référencer les sorties de la définition de pile.

Référencement des entrées provenant d'un environnement

Étant donné que les environnements sont créés dans un projet et non dans une configuration, vous n'avez pas besoin d'inclure /configs/<configname> si vous souhaitez référencer un paramètre dans un environnement. Mais vous devez inclure le nom de l'environnement après le type environments de référence. Ensuite, spécifiez inputs et indiquez le nom de l'entrée à laquelle vous souhaitez faire référence : ref:./environments/<environment_name>/inputs/<name>. Vous ne pouvez pas ajouter de référence à un paramètre d'authentification ou à un profil de conformité à partir d'un environnement.

Par exemple, la référence suivante pointe vers un paramètre d'entrée nommé cluster_id dans Production l'environnement : ref:./environments/Production/inputs/cluster_id.

Configuration d'une architecture à l'aide de la console

Pour créer une configuration personnalisée, suivez les étapes suivantes :

  1. Dans le panneau Sécurité, sélectionnez la méthode d'authentification que vous souhaitez utiliser pour déployer votre architecture.

    Déployer une preuve de concept à des fins de test? Vous pouvez créer une clé API lorsque vous modifiez une configuration dans votre projet. Cela autorise le déploiement du projet sur le compte actuellement sélectionné. Sinon, vous pouvez ajouter une clé API à l'aide de IBM Cloud® Secrets Manager. Cela autorise le déploiement du projet vers un compte cible et est nécessaire pour déployer votre architecture. Pour plus d'informations, consultez Utilisation d'une clé API avec Secrets Manager pour autoriser un projet à déployer une architecture.

  2. Pendant la validation, un scan Code Risk Analyzer est exécuté sur votre architecture. Sélectionnez les politiques que vous souhaitez utiliser pendant la validation. Vous pouvez utiliser l'option Architecture par défaut ou l'option Sélectionner à partir d' Workload Protection si vous disposez d'une instance d' Workload Protection configurée dans votre compte cible.

    Si vous sélectionnez Architecture par défaut:

    • L'analyse utilise la stratégie par défaut que le propriétaire de l'architecture déployable a ajoutée lors de son intégration.
    • Les politiques ajoutées par le propriétaire de l'architecture comprennent des exigences. Les exigences qui sont également incluses dans l'ensemble de règles prises en charge sont vérifiées.
    • Les exigences supplémentaires ajoutées par le propriétaire de l'architecture qui ne figurent pas dans la liste des règles prises en charge ne sont pas vérifiées lors de la validation de votre configuration.
    • Si le propriétaire de l'architecture déployable n'a pas ajouté de politiques à son produit, l'ensemble complet de règles est utilisé.

    Pour afficher la liste des exigences ajoutées, accédez au catalogue IBM Cloud® et sélectionnez l'architecture déployable que vous configurez. L'onglet Sécurité et conformité répertorie toutes les exigences qui ont été ajoutées à l'architecture déployable.

    Si vous sélectionnez Select from Workload Protection, vous devez disposer d'une instance du service dans le compte cible vers lequel vous souhaitez effectuer le déploiement.

  3. Dans le panneau Entrées, saisissez les valeurs requises pour la configuration de l'architecture déployable.

    En fonction de l'architecture déployable, certaines entrées peuvent être configurées pour vous avec des références à d'autres architectures ou des valeurs fixes. Ces valeurs ont été fournies par le créateur de l'architecture déployable. Soyez prudent si vous modifiez ces valeurs, en particulier les références, car l'architecture pourrait ne pas se déployer correctement avec des valeurs différentes. Passez la souris sur la valeur saisie et cliquez sur Réinitialiser pour rétablir la valeur fixe spécifiée par le créateur. Vous ne pouvez pas réinitialiser les références d'entrée. Seules les entrées avec des valeurs fixes peuvent être réinitialisées à leur valeur fixe d'origine.

  4. Facultatif : activez les entrées facultatives pour saisir des valeurs pour les entrées facultatives.

  5. Cliquez sur Sauvegarder.

  6. Cliquez sur Valider. La fenêtre modale qui s'affiche fournit plus de détails sur votre validation en cours.

    Si la validation échoue, vous pouvez dépanner l'erreur. Ou bien, un administrateur du service IBM Cloud Projets peut examiner les résultats par l'intermédiaire du service Schematics, passer outre l'échec et approuver la configuration pour la déployer quand même. Cependant, assurez-vous que l'échec du pipeline est dû à l'analyse effectuée par Code Risk Analyzer et non à un échec de validation ou de planification. Il n'est pas recommandé de passer outre une erreur signalée en raison d'un échec de validation ou de planification, car la configuration pourrait ne pas être déployée correctement. Pour plus d'informations sur la sécurité et la conformité dans les projets, consultez la section Assurer la conformité continue au sein d'une entreprise.

Si vous configurez des architectures déployables qui sont empilées les unes sur les autres, veillez à valider chaque architecture dans l'ordre en fonction de leurs dépendances. Vous pouvez également modifier les paramètres de votre projet afin de déployer automatiquement les modifications de configuration qui ont été validées avec succès. Si vous procédez ainsi, chaque architecture est validée, approuvée et déployée automatiquement en fonction de ses dépendances. Pour plus d'informations, consultez la section Déploiement d'une architecture.

Approbation des modifications de configuration à l'aide de la console

Une fois votre configuration validée, les modifications doivent être approuvées par un éditeur ou un administrateur du service Projets de l' IBM Cloud. Suivez les étapes suivantes pour approuver les modifications :

  1. Dans la liste des projets, sélectionnez un projet.
  2. Vérifiez qu'il n'y a pas d'éléments nécessitant une attention particulière dans l'onglet Aperçu de votre projet. Les éléments nécessitant une attention particulière peuvent empêcher le déploiement.
  3. Accédez à l'onglet Configurations et sélectionnez une configuration d'architecture déployable.
  4. Cliquez sur le bouton Editer.
  5. Cliquez sur Afficher la dernière validation.
  6. Ajoutez un commentaire fournissant plus de détails sur l'approbation, puis cliquez sur Approuver.

Si votre validation a échoué en raison de l'analyse effectuée par Code Risk Analyzer, un administrateur du service Projets d' IBM Cloud peut passer outre cet échec et approuver la configuration afin qu'elle soit tout de même déployée.

Configuration d'une architecture à l'aide de l'interface CLI

Pour ajouter une configuration à un projet à l'aide de l'interface CLI, exécutez la commande ibmcloud project config-create suivante :

ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]

Pour plus d'informations sur les paramètres de commande, voir ibmcloud project config-create.

Approbation des modifications de configuration à l'aide de l'interface CLI

  1. Exécutez la commande ibmcloud project config-validate suivante pour vérifier la validité de votre configuration :

    ibmcloud project config-validate --project-id PROJECT-ID --id ID
    

    Pour plus d'informations sur les paramètres de commande, voir ibmcloud project config-validate.

  2. Après avoir validé votre configuration, approuvez vos modifications et fusionnez-les avec la configuration principale en exécutant la commande ibmcloud project config-approve suivante :

    ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]
    

    Pour plus d'informations sur les paramètres de commande, voir ibmcloud project config-approve.

Configurer une architecture en utilisant l'API

Vous pouvez ajouter une configuration à un projet par programmation en appelant l 'API Projects, comme indiqué dans l'exemple de requête suivant. L'exemple ajoute une configuration nommée My new configuration à un projet :

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
  "{base_url}/v1/projects/{project_id}/configs"

Approbation des modifications de configuration à l'aide de l'API

Vous pouvez approuver par programmation les modifications de configuration et les fusionner avec la configuration principale en appelant l 'API Projects, comme indiqué dans l'exemple de requête suivant. L'exemple approuve les modifications de configuration et les fusionne avec la configuration :

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "comment": "Approving the changes" }' \
  "{base_url}/v1/projects/{project_id}/configs/{id}/approve"