Configuration de Terraform pour Continuous Delivery

Continuous Delivery sera supprimé dans les régions suivantes le 12 février 2027 : au-syd, ca-tor, us-east. Code Risk Analyzer sera également retiré du marché dans toutes les régions à cette date. Si ces fonctionnalités ne sont pas activement utilisées dans une région donnée, elles pourraient être supprimées plus tôt dans cette région et ne plus accepter de nouvelles instances. En savoir plus

Terraform sur IBM Cloud® permet la création prévisible et cohérente de services IBM Cloud, afin que vous puissiez rapidement mettre en place des environnements cloud complexes et à plusieurs niveaux en suivant les principes de l’Infrastructure as Code ( IaC ). Tout comme pour l'utilisation de la CLI ou de l'API d' IBM Cloud, ainsi que des SDK, vous pouvez automatiser la création, la mise à jour et la suppression de vos instances IBM Cloud® Continuous Delivery à l'aide du langage de configuration d' HashiCorp (HCL).

Vous recherchez une solution Terraform on IBM Cloud® gérée ? Essayez IBM Cloud® Schematics. Avec Schematics, vous pouvez utiliser le langage de script Terraform que vous maîtrisez sans avoir à vous soucier de la configuration et de la maintenance de la ligne de commande Terraform et du plug-in IBM Cloud® Provider. Schematics fournit également des modèles Terraform prédéfinis que vous pouvez facilement installer à partir du catalogue IBM Cloud®.

Installation de Terraform et configuration des ressources pour Continuous Delivery

Avant de commencer, vérifiez que vous disposez des droits d'accès requis pour créer et utiliser des ressources continuous-delivery, ainsi que des droits d'accès requis pour créer et utiliser des ressources toolchain.

  1. Suivez le tutoriel d'initiation à Terraform on IBM Cloud pour installer l'interface de ligne de commande de Terraform et configurer le plug-in IBM Cloud Provider pour Terraform. Le plug-in fait abstraction des API d' IBM Cloud utilisées pour créer, mettre à jour ou supprimer des instances de service continuous-delivery et des ressources toolchain.

  2. Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, ajoutez la configuration permettant de créer une instance du service Continuous Delivery et d’attribuer à un utilisateur une politique d’accès dans Identity and Access Management (IAM) pour cette instance à l’aide de HCL. Vous ajoutez également la configuration pour créer une ressource de chaîne d'outils de base dans le même groupe de ressources et la même région que l'instance de service Continuous Delivery et pour affecter à un utilisateur une règle d'accès dans IAM pour cette ressource. La chaîne d'outils et l'instance de service Continuous Delivery qui régit l'utilisation de la chaîne d'outils se trouvent dans le même groupe de ressources et la même région. Pour plus d'informations sur l'utilisation du fichier de configuration Terraform, voir la documentation Terraform.

    L'instance de service Continuous Delivery dans l'exemple suivant est nommée my_cd. Il est créé avec le plan de tarification professionnel dans le groupe de ressources default et dans la région us-south. Le rôle Gestionnaire est affecté à l'utilisateur user1@ibm.com dans la règle d'accès IAM pour l'instance de service.

    La ressource de chaîne d'outils est nommée my_toolchain. Il est créé dans le groupe de ressources default et dans la région spécifiée dans le bloc provider "ibm" de votre fichier provider.tf. Pour cet exemple, region dans provider.tf est défini sur us-south. Le rôle Editeur est affecté à l'utilisateur user2@ibm.com dans la règle d'accès IAM pour la ressource de chaîne d'outils.

    data "ibm_resource_group" "default_rg" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "cd_policy" {
      ibm_id = "user1@ibm.com"
      roles  = ["Manager"]
      resources {
        service              = "continuous-delivery"
        resource_instance_id = element(split(":", ibm_resource_instance.cd_instance.id), 7)
      }
    }
    resource "ibm_cd_toolchain" "toolchain_instance" {
      name              = "my_toolchain"
      resource_group_id = data.ibm_resource_group.default_rg.id
    }
    resource "ibm_iam_user_policy" "toolchain_policy" {
      ibm_id = "user2@ibm.com"
      roles  = ["Editor"]
      resources {
        service              = "toolchain"
        resource_instance_id = ibm_cd_toolchain.toolchain_instance.id
      }
    }
    
  3. Initialisez l'interface de ligne de commande de Terraform.

    terraform init
    
  4. Créez un plan d'exécution Terraform. Le plan d'exécution Terraform récapitule toutes les actions que vous devez exécuter pour créer l'instance de service Continuous Delivery, la ressource de chaîne d'outils et les règles d'accès IAM associées dans votre compte.

    terraform plan
    
  5. Créez l'instance de service Continuous Delivery, la ressource de chaîne d'outils et les règles d'accès IAM associées dans votre compte dans IBM Cloud.

    terraform apply
    
  6. Dans la liste des ressourcesIBM Cloud, développez la section Developer tools, puis sélectionnez l'instance de service Continuous Delivery que vous avez créée et notez l'ID d'instance.

  7. Vérifiez que la règle d'accès a été affectée. Pour plus d'informations sur l'affectation de règles d'accès, voir Révision des accès affectés dans la console.

  8. Dans la liste des ressourcesIBM Cloud, développez la section Developer tools, puis sélectionnez la ressource de chaîne d'outils que vous avez créée et notez l'ID d'instance.

  9. Vérifiez que la règle d'accès a été affectée.

Activation des journaux de plate-forme pour une instance de service Continuous Delivery avec Terraform

Le service Continuous Delivery permet d'envoyer les journaux Tekton PipelineRun en tant que journaux de plate-forme. Cela permet de recevoir tous les journaux de Tekton PipelineRun pour la région et le groupe de ressources actuels dans votre compte, et vous pouvez configurer votre compte pour qu'il transmette ces journaux reçus à une cible telle que IBM Cloud Logs.

  1. Dans votre fichier de configuration Terraform, ajustez la configuration pour inclure le paramètre platform_logging_pipelineruns_enabled avec une valeur de true.

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_resource_instance" "cd_instance" {
      name              = "my_cd"
      service           = "continuous-delivery"
      plan              = "professional"
      location          = "us-south"
      resource_group_id = data.ibm_resource_group.default_rg.id
      parameters = {
        platform_logging_pipelineruns_enabled = "true"
      }
    }
    

Étape suivante ?

Maintenant que vous avez créé avec succès votre première instance de service Continuous Delivery et votre ressource de chaîne d'outils avec Terraform sur IBM Cloud, vous pouvez choisir parmi les tâches suivantes :

Pour plus d'informations sur les ressources et les sources de données du fournisseur IBM Cloud, voir la documentation du registre Terraform.