Aller au contenu principal

Troubleshooting (deprecated)

Troubleshooting​

Ce document apporte les solutions ou corrections Ă  des dysfonctionnements mineurs connus.

Erreur unexpected error: ssh: handshake failed: knownhosts: key mismatch lors d'un kosmos create​

Exemple :

[ansible@spray-dev-service KUBM_dcy]$ kosmos create -n yournamespace --source-repository ssh://git@gitlab.technique.artemis:2222/athea/distrib/artemis/monprojet.git monapplication
About to create application monapplication

Whoops. There was an error while executing your CLI :
=> not able to clone source repository ssh://git@gitlab.technique.artemis:2222/athea/distrib/artemis/monprojet.git :
unexpected error: ssh: handshake failed: knownhosts: key mismatch

Explication:

KOSMOS-CLI (par le biais de kosmos-common) charge le fichier ~/.ssh/known_hosts pour avoir la liste des hosts connus et autorisés.

3 cas de figure :

  1. Le host n'est pas connu, dans ce cas nous aurions une erreur de type unknown key --> nous ne sommes pas dans ce cas
  2. Le host est connu mais l'entrée n'est pas celle correspondante à la clé
  3. Le host est connu mais l'entrée est dans un format non supporté par le code (cas de l'exemple)

Fix rapide:

  1. Vérifier qu'il n'y a pas déjà une entrée de format ecdsa-sha2-nistp256 correspondant a [gitlab.technique.artemis]:2222 dans le fichier ~/.ssh/known_hosts. Si cette entrée est présente, la supprimer. Attention, ne pas supprimer l'entrée correspondante à gitlabe pour le format ssh-ed25519.
  2. Exécuter la commande :
$ ssh-keyscan -p 2222 gitlab.technique.artemis
# gitlab.technique.artemis:2222 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
[gitlab.technique.artemis]:2222 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC/++Y0rKP97VM4XhDGXpLn0tw5BhmzBvfnSdxtQCYUvZGlk3oujhdAbqVPsDBrp0QzzCG9yKRAczm9vCzgiGcGRAv5X8w8sMIHc7EAQhN+EaD6V7TJyoFiPbfORdkWLedr42efKSeESktm9aj1c+vkM2dyJa0Vbe0oiCIwfAtETV1eONtNr1tH/koYc/2kR9IbyvdQU18q9XcZvmpN85LOf7NAIuPbmPRWMTtdc9fM7FhJklmYU1sAJ68Of7h3eXG8GOeoX+jy0aeuFXsa1QsU4hLsF2JUL9mD9LoUrPzfkchULVje1ygzQRHlSuwZFC5OJmt8qq3zInc8/Lua0CVWD1HJ3WcffubZF+EMmp4z0QuskyeLmsmjD/hDooaGLZNCmb8x/GezAGueyYRSoNOaIRj4RwOMnC7ZClGMiaBQ7XGk0N5KOZwtUSRfZSTnpfNKmBv6Fqun1pT4Bdei3e3RaZLRkHdnQlvsGdwsDmvEwAl/RCv5LH2euq4arN0cuUE=
# gitlab.technique.artemis:2222 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
[gitlab.technique.artemis]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNtGy6N2Mxm5iOgUEda4F/CNYgmXDCEs2ahD+rk0kwUHd8+yFhzfR4z3rr4G1rM1EO5wj/egrtaa6lH2VMllcqs=
# gitlab.technique.artemis:2222 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
[gitlab.technique.artemis]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBMiHEkdKgwahkCGROiujtNzXmdTLWjCJ8LBT+j32NCE
  1. Copier la sortie de format ecdsa-sha2-nistp256 ([gitlab.technique.artemis]:2222 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNtGy6N2Mxm5iOgUEda4F/CNYgmXDCEs2ahD+rk0kwUHd8+yFhzfR4z3rr4G1rM1EO5wj/egrtaa6lH2VMllcqs= dans l'exemple) et la placer dans le fichier ~/.ssh/known_hosts --> le format ssh-ed25519 n'est pas reconnu aujourd'hui
  2. Tester de nouveau la commande kosmos create, l'erreur devrait être corrigée.

Erreur unexpected error: author field is required lors d'un kosmos create​

Exemple:

$ kosmos create -n monnamespace --source-tag master --source-repository ssh://git@gitlab.technique.artemis:2222/athea/distrib/artemis/monprojet.git monapplication
About to create application monapplication

Whoops. There was an error while executing your CLI :
=> not able to manage target repository :
unexpected error: author field is required

Explication:

L'action de commit nécessite que dans la configuration git, les champs user.name et user.email soient renseignés. Par défaut, les CommitOptions (dans kosmos-common) prennent la configuration présente dans le fichier ~/.gitconfig. Sauf que dans notre cas, il n'est pas souhaitable d'avoir une config globale à toute la plateforme (il faut que l'auteur soit identifié). Un essai de création d'un fichier .gitconfigperso dans le dossier de travail de l'utilisateur puis l'exécution de la commande export GIT_CONFIG=/path/to/.gitconfigperso ne règle pas le souci : il semblerait que les CommitOptions de go-git/v5 ne prennent pas en compte la variable kd'environnement et qu'ils ne lisent que le fichier ~/.gitconfig.

Fix rapide:

Ajouter (ou modifier) les champs du fichier ~/.gitconfig

remarque
  1. Besoin a terme de modifier le package kosmos-common pour permettre de passer les informations user.name et user.email
  2. Besoin de modifier le CLI en conséquence (l'import et l'export doivent être concernés aussi par ce problème)
  3. Forcer les utilisateurs à avoir leur propre fichier de config kosmos-config.yaml et de donner le path du fichier pour chaque commande OU donner ces informations à chaque exécution par flag

unexpected error: author field is required​

Explication:

Les champs user.name et user.email sont obligatoires dans la configuration GIT client.

Fix rapide:

Passer les commandes suivantes :

git config --global user.name nom_utilisateur

git config --global user.email email_utilisateur