La génération échoue si elle n'a pas été enregistrée correctement et s'il n'existe pas de secret
Une fois que vous avez créé et exécuté une génération, votre génération n'aboutit pas et vous recevez un message indiquant que la génération n'a pas été enregistrée correctement et qu'il n'existe pas de secret
Si vous recevez un message indiquant que la génération n'a pas été enregistrée correctement et qu'il n'existe pas de secret, cela signifie que la génération BUILD_NAME n'a pas été définie correctement.
Exemple de message d'erreur
The Build is not registered correctly, build: <BUILD_NAME>, registered status: False, reason: SpecSourceSecretNotFound|SpecOutputSecretRefNotFound|MultipleSecretRefNotFound
La génération BUILD_NAME fait référence à un secret qui n'existe pas. Si la raison est SpecOutputSecretRefNotFound, un secret de registre n'existe pas. S'il s'agit de SpecSourceSecretNotFound, un secret permettant
d'accéder au référentiel Git est manquant. La cause est MultipleSecretRefNotFound si les deux secrets n'existent pas. Corrigez la génération pour qu'elle fasse référence à des secrets existants.
Essayez l'une des solutions ci-après.
Que vous exécutiez votre génération depuis la console ou depuis l'interface de ligne de commande, utilisez l'interface de ligne de commande pour traiter les problèmes liés à votre génération.
- Exécutez la commande
ibmcloud ce buildrun get --name BUILDRUN_NAMEpour afficher les détails de votre exécution de génération. - Consultez la section
Reasondans la sortie de la commande.
Suivez la procédure ci-après pour résoudre le problème lié à votre génération.
-
Vérifiez vos secrets. Dans une génération, des secrets sont utilisés aux fins suivantes :
- Pour s'authentifier au niveau du registre de conteneur. Un secret de registre stocke les données d'identification permettant d'accéder à un registre de conteneur. Pour répertorier tous les secrets de votre projet, y compris les secrets de
registre existants, exécutez la commande
ibmcloud ce secret list. Pour créer un secret de registre, exécutez la commandeibmcloud ce secret create --format registry. Pour plus d'informations sur les secrets de registre, voir Ajout d'un accès à un registre de conteneur privé. - Pour s'authentifier au niveau d'un référentiel de code source privé. Un secret SSH stocke les données d'identification permettant de s'authentifier auprès d'un service avec une clé SSH, telle que l'authentification auprès d'un référentiel
Git , tel que GitHub ou GitLab. Pour répertorier tous les secrets de votre projet, y compris les secrets SSH existants, exécutez la commande
ibmcloud ce secret list. Pour créer un secret SSH, exécutez la commandeibmcloud ce secret create --format ssh. Pour plus d'informations sur les secrets SSH permettant d'accéder aux référentiels, voir Accès aux référentiels de code privé.
- Pour s'authentifier au niveau du registre de conteneur. Un secret de registre stocke les données d'identification permettant d'accéder à un registre de conteneur. Pour répertorier tous les secrets de votre projet, y compris les secrets de
registre existants, exécutez la commande
-
Une fois les secrets définis, utilisez la commande
ibmcloud ce build updatepour mettre à jour la configuration de génération. Si vous référencez un secret de registre, spécifiez le nom du secret à l'aide de l'option--registry-secretavec la commandebuild update. Si vous référencez un secret SSH pour accéder à un référentiel privé qui contient le code source pour générer votre image de conteneur, spécifiez l'option--git-repo-secretavec la commandebuild update. Par exemple :ibmcloud ce build update --name <BUILD_NAME> [--registry-secret <REGISTRY_ACCESS_SECRET>] [--git-repo-secret <GIT_REPO_SECRET>] -
Utilisez la commande
ibmcloud ce buildrun submitpour soumettre une nouvelle exécution de génération. Pour la commandebuildrun submit, vous devez spécifier l'option--buildpour fournir le nom de votre configuration de génération. Vous pouvez éventuellement spécifier l'option--namepour fournir le nom de cette exécution de génération. Si vous spécifiez l'option--name, veillez à utiliser un autre nom d'exécution de génération que celui de l'exécution de génération ayant échoué, ou à supprimer l'exécution de génération ayant échoué à l'aide de la commandeibmcloud ce buildrun delete. Par exemple :ibmcloud ce buildrun submit --build <BUILD_NAME> --name <BUILDRUN_NAME>