Résoudre les erreurs de déploiement

Cette page décrit :

Inspecter les détails et les journaux de déploiement

Vous pouvez inspecter les détails et les journaux du déploiement et des révisions individuelles.

Inspecter l'état du déploiement

Chaque déploiement contient des informations sur son état actuel, son code d'erreur et les détails sur les causes de l'échec.

En cas d'erreur, commencez par afficher l'état d'un déploiement.

Inspecter l'état d'une révision

Si un déploiement échoue avec le code d'erreur REVISION_FAILED, vous pouvez consulter l'état d'une révision.

Dans la sortie de l'état de la révision, examinez les champs stateDetail et errorCode.

L'état de la révision inclut les mêmes informations que pour un déploiement. De plus, il inclut l'ID de build.

Inspecter les journaux Cloud Build

Affichez l'état d'une révision et obtenez l'ID de compilation de Cloud Build utilisé par la révision.

Utilisez l'ID de compilation pour inspecter les journaux Cloud Build. Pour en savoir plus sur l'inspection des résultats de compilation, consultez la section Afficher les résultats de compilation.

Erreurs fréquentes

Cette section décrit les erreurs courantes que vous pouvez rencontrer lors du déploiement d'une configuration Terraform avec Infra Manager.

Déploiement ayant échoué

Si l'état du déploiement est FAILED, le déploiement a rencontré une erreur inattendue.

Affichez l'état du déploiement et inspectez les champs stateDetail et errorCode pour en savoir plus.

Si un déploiement échoue avec le code d'erreur REVISION_FAILED, vous pouvez inspecter l'état de la révision.

Erreurs de configuration

Si l'état du déploiement est FAILED, il est possible qu'il ait échoué en raison d'erreurs de configuration avec la configuration Terraform.

Si l'erreur de déploiement est liée à votre configuration, les champs tfErrors et errorLogs sont inclus dans la sortie de l'état du déploiement. Exemples d'erreurs de configuration : configuration non valide ou autorisations manquantes.

Affichez les erreurs de Terraform. Dans la sortie de l'état du déploiement:

  • tfErrors est un résumé des erreurs rencontrées par Terraform (limité par Infra Manager à 10 erreurs dans cette liste).
  • errorLogs pointent vers un objet Cloud Storage dans votre bucket d'artefacts. Ce bucket contient tous les tfErrors au format JSON délimité par un retour à la ligne.

Chaque tfError possède une adresse de ressource et une description de l'erreur lisible par l'humain dans le champ errorDescription. Si la ressource échoue en raison d'un code d'erreur HTTP renvoyé par une API Google Cloud , le champ httpResponseCode est également renseigné. Toute information supplémentaire sur l'échec de l'API est enregistrée dans le champ d'erreur.

Autorisations manquantes pour le compte de service afin d'extraire la configuration

L'erreur suivante s'affiche:

  error downloading 'GCS_LOCATION': googleapi: Error 403: SA_EMAIL does
  not have storage.objects.list access to the Google Cloud Storage bucket.

Cette erreur s'affiche, car Infra Manager n'est pas autorisé à récupérer la configuration Terraform à partir du bucket Cloud Storage.

Pour résoudre le problème, accordez le rôle storage.objectViewer au compte de service. Pour en savoir plus sur l'octroi d'autorisations au compte de service, consultez la section Configurer le compte de service.

Emplacement incorrect pour récupérer la configuration

L'erreur suivante s'affiche:

  `blueprint fetch failed: invalid path`

Cette erreur s'affiche lorsqu'un emplacement non valide est spécifié pour extraire la configuration Terraform. Infra Manager utilise le terme blueprint (modèle) pour désigner une configuration Terraform.

Pour résoudre cette erreur, vérifiez l'emplacement de la configuration Terraform et assurez-vous qu'il est correctement mis en forme dans votre commande.

Autorisation incorrecte pour déclencher des ressources

Les erreurs sont généralement inférieures à tfErrors avec le code de réponse 403 pour les ressources qui n'ont pas pu être déployées.

Cette erreur s'affiche lorsque le compte de service ne dispose pas des autorisations suffisantes pour créer, lire, mettre à jour ou supprimer les ressources définies dans la configuration Terraform.

Pour résoudre cette erreur, consultez la section Accorder des autorisations IAM au compte de service.

Configuration avec le backend

L'erreur suivante s'affiche:

  `blueprint invalid: found backend config in file.tf`

Cette erreur s'affiche lorsque la configuration Terraform comporte un bloc backend. Infrastructure Manager gère le backend. Par conséquent, vous ne pouvez pas définir de bloc backend dans la configuration Terraform.

Pour résoudre cette erreur, supprimez le bloc backend de la configuration.

Valider la configuration du dépôt Cloud Build

Si Infra Manager ne peut pas accéder à votre dépôt Git (à l'aide d'un dépôt Git privé ou d'un workflow automatisé Cloud Build), vous devrez peut-être vérifier que votre dépôt Cloud Build a été correctement configuré.

Pour vérifier que le dépôt Cloud Build a été configuré pour fournir un accès au dépôt privé, consultez Se connecter à un dépôt GitHub.

Infra Manager utilise la première connexion où l'URL du dépôt Cloud Build correspond à la configuration Terraform (référencée dans --git-source-repo) et où il peut générer un jeton en lecture seule. La connexion du dépôt est validée directement par un appel à l'API accessReadToken sur le dépôt Cloud Build sélectionné.

Exécutez cette commande à l'aide du compte de service Infra Manager pour vérifier que les autorisations sont correctes:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token \
--impersonate-service-account=SERVICE_ACCOUNT)" \
"https://cloudbuild.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/connections/CB_CONNECTION/repositories/CB_REPO:accessReadToken"

Étape suivante