Résoudre les problèmes liés aux tests de validation

Pour vérifier que les images de VM personnalisées démarrent correctement et répondent aux exigences de configuration, Image Builder exécute des tests de validation automatisés sur une VM de test temporaire. Si l'un de ces tests échoue, le pipeline s'arrête et Image Builder ne publie pas l'image finale.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :

      gcloud init
  • Définissez une région et une zone par défaut.
  • REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Présentation

Si les étapes de personnalisation sont effectuées avec succès, l'orchestrateur exporte le disque de démarrage de la VM en tant qu'image de test temporaire (nommée image-builder-test-image-BUILD_ID dans la famille image-builder-test-images).

L'orchestrateur démarre une VM de test à partir de cette image et exécute une suite de tests système. Image Builder génère les résultats des tests au format XML JUnit standard directement dans les journaux Cloud Build.

Résoudre les problèmes liés à des tests de validation spécifiques

Consultez les échecs courants et les étapes de diagnostic pour chaque test de validation :

Validation du pilote Intel IDPF

Ce test vérifie que les instances de VM compatibles chargent le pilote de la fonction de chemin de données d'infrastructure Intel à hautes performances (idpf) sur les interfaces réseau physiques.

  • Condition d'échec : la validation de la VM échoue si elle revient à un package d'adaptateur réseau générique ou si le noyau invité ne dispose pas du module de pilote idpf actif.
  • Résolution :
    • Assurez-vous que votre système d'exploitation de base dispose d'une version de noyau compatible avec l'IDPF.
    • Vérifiez que les utilitaires réseau standards ne suppriment pas le pilote ni ne le mettent sur liste noire.
    • Pour les compilations de noyau personnalisées, vérifiez que CONFIG_IDPF est configuré.

Mise en réseau et validation de l'agent invité

Ce test vérifie que l'instance dispose de communications invitées fonctionnelles et de configurations d'interface réseau standardisées.

  • Condition d'échec : le test échoue dans les cas suivants :
    • Le gestionnaire de services de l'agent invité SubState n'affiche pas l'état running.
    • Aucune interface réseau non loopback n'est en ligne.
    • Les noms d'interface ne correspondent pas aux modèles standards attendus (par exemple, eth* ou en*).
  • Solution :

    • Vérifiez que l'agent invité est installé et configuré pour démarrer au démarrage :

      systemctl is-active google-guest-agent
      
    • Assurez-vous que vos configurations réseau (telles que les modèles netplan ou ifupdown) ne désactivent pas les interfaces virtuelles principales.

Vérification du démarrage sécurisé

Ce test vérifie que le démarrage sécurisé UEFI est actif et que le système applique la validation de la signature du noyau de l'OS invité sur l'image.

  • Condition d'échec : le test échoue si les variables UEFI de Compute Engine indiquent que SecureBoot n'est pas 1 ou que SetupMode n'est pas 0.
  • Solution :

    • Vérifiez que votre image inclut des clés de signature valides.
    • Dans votre fichier imagebuilder.yaml, vérifiez que guestOsFeatures contient UEFI_COMPATIBLE sous votre bloc de destinations :

      destinations:
        - diskImage:
            guestOsFeatures:
              - UEFI_COMPATIBLE
      

Suspendre ou reprendre la validation

Ce test suspend la VM de test à l'aide de l'API Compute Engine et affirme qu'une fois l'exécution de la VM reprise, la connectivité est rétablie sans déclencher un redémarrage complet de l'invité.

  • Condition d'échec : le test échoue si l'instance redémarre lors de la sortie de veille, se bloque pendant la suspension ou ne parvient pas à récupérer les pings réseau.
  • Résolution :
    • Vérifiez que les services ACPI et les règles d'alimentation du système d'exploitation invité sont activés et configurés pour répondre aux événements ACPI.
    • Inspectez les journaux du système invité (/var/log/syslog ou /var/log/messages) pour vérifier si des daemons personnalisés bloquent les demandes de mise en veille du système.

Ignorer les tests de validation

Bien que nous vous recommandions de valider les images de production, vous pouvez ignorer les tests de validation pendant les tests en définissant skipSystemTests: true sous le bloc spec.config dans votre fichier imagebuilder.yaml :

spec:
  config:
    skipSystemTests: true