Mise à jour de votre logiciel

Pour mettre à jour le logiciel qui se trouve dans votre catalogue privé, vous pouvez ajouter une nouvelle version ou mettre à jour et republier une version existante.

Avant de commencer

Pour effectuer cette tâche, vous devez avoir le rôle Editeur sur le service de gestion des catalogues. Pour plus d'informations, voir Affectation des accès utilisateurs.

Pour mettre à jour votre logiciel à l'aide de Terraform, vérifiez que vous avez effectué les opérations suivantes:

  • Installez l'interface de ligne de commande Terraform et configurez le plug-in IBM Cloud Provider pour Terraform. Pour plus d'informations, voir le tutoriel Initiation à Terraform sur IBM Cloud®. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.
  • Créez un fichier de configuration Terraform nommé main.tf. Dans ce fichier, vous définissez des ressources à l'aide du langage de configuration HashiCorp. Pour plus d'informations, voir la documentation de Terraform.

Mettre à jour une version existante à l'aide de la console

Les étapes suivantes présentent un exemple de mise à jour du fichier readme d'un produit afin de montrer le processus complet de mise à jour d'une version existante d'un logiciel.

  1. Dans la console IBM Cloud®, accédez à Gérer > Catalogues > Catalogues privés et sélectionnez votre catalogue dans la liste.
  2. Cliquez sur le nom de votre produit logiciel.
  3. Sélectionnez Produits privés pour accéder à la liste des produits qui se trouvent dans votre catalogue privé.
  4. Cliquez sur l'icône Actions Icône Actions et sélectionnez Editer.
  5. Cliquez sur l'onglet d'édition du fichier Readme.
  6. Cliquez sur l'icône Editer Icône d'édition, ajoutez une nouvelle ligne de texte à la section Introduction et cliquez sur Mise à jour.
  7. Cliquez sur l'icône Actions Icône Actionset sélectionnez Fusion des modifications pour publier la version mise à jour sur votre compte.

Mettre à jour une version existante à l'aide de l'interface de ligne de commande

Effectuez les étapes ci-dessous pour créer une version brouillon, la mettre à jour et fusionner les modifications apportées à la version actuelle de votre logiciel.

Vous allez avoir besoin du localisateur de version pour connaître la version de votre logiciel. Pour cela, exécutez la commande ibmcloud catalog offering list --catalog "your-private-catalog" et recherchez le numéro de la version existante.

  1. Créez une version brouillon de votre logiciel.
    ibmcloud catalog offering create-draft --version-locator <VERSION_LOCATOR>
    
  2. Définissez une autre catégorie.
    ibmcloud catalog offering add-category --catalog "your-private-catalog" --offering "your-software" --category "category-type"
    
  3. Fusionnez le brouillon mis à jour dans votre logiciel. Cette action a pour effet de fusionner la mise à jour avec la version de votre logiciel publiée dans votre compte.
    ibmcloud catalog offering merge-draft --version-locator **<VERSION_LOCATOR_OF_DRAFT_VERSION>**
    
  4. Recherchez le logiciel dans le catalogue IBM Cloud.
    ibmcloud catalog get --public | grep your-software
    

Mettre à jour une version existante à l'aide de l'API

Vous pouvez mettre à jour une version à l'aide d'un programme en appelant l'API Catalog Management, comme indiqué dans l'exemple de demande suivant. Pour plus d'informations sur l'API, voir l'API de gestion de catalogue.

String catalogID = "{catalogID}";
String offeringID = "{offeringID}";
String label = "{label}";
String shortDesc = "{shortDesc}";
ReplaceOfferingOptions replaceOptions = new ReplaceOfferingOptions.Builder().catalogIdentifier(catalogID).id(offeringID).offeringId(offeringID).label(label).shortDescription(shortDesc).rev(revision.rev()).build();
Response<Catalog> response = service.replaceOffering(replaceOptions).execute();
System.out.println(response.getResult());
vcatalogID = "{catalogID}";
offeringID = "{offeringID}";
revision = "{revision}";
label = "{label}";
shortDesc = "{shortDesc}";
response = await service.replaceOffering({'catalogIdentifier': catalogID, 'offeringId': offeringID, 'id': offeringID, 'rev': revision, 'label': label, 'shortDescription': shortDesc});
console.log(response);
catalogID = "{catalogID}"
offeringID = "{offeringID}"
revision = "{revision}"
shortDesc = "{shortDesc}"
response = self.service.replace_offering(catalog_identifier=catalogID, offering_id=offeringID, id=offeringID, rev=revision, label=label, short_description=shortDesc)
print(response)
catalogID := "{catalogID}"
offeringID := "{offeringID}"
label := "{label}"
shortDesc := "{shortDesc}"
revision := "{revision}"
updateOptions := service.NewReplaceOfferingOptions(catalogID, offeringID)
updateOptions.SetID(offeringID)
updateOptions.SetLabel(label)
updateOptions.SetShortDescription(shortDesc)
updateOptions.SetRev(revision)
_, response, _ := service.ReplaceOffering(updateOptions)
fmt.Println(response)

Mettre à jour une version existante à l'aide de Terraform

Procédez comme suit pour mettre à jour une version existante de votre logiciel à l'aide de Terraform.

  1. Créez un argument dans votre fichier main.tf. L'exemple ci-après permet d'accéder à la version de logiciel à l'aide de la ressource cm_version, offering_id identifiant le logiciel.

    resource "cm_version" "cm_version" {
    catalog_identifier = "catalog_identifier"
    offering_id = "offering_id"
    zipurl = "zipurl"
    }
    

    Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Catalog Management.

  2. Une fois que vous avez terminé de générer votre fichier de configuration, initialisez l'interface de ligne de commande Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.

    terraform init
    
  3. Mettez à disposition les ressources à partir du fichier main.tf. Pour plus d'informations, voir Mise à disposition d'une infrastructure avec Terraform.

    1. Exécutez terraform plan pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.

      terraform plan
      
    2. Exécutez terraform apply pour créer les ressources définies dans le plan.

      terraform apply