Duniter indexer CI

The Duniter Indexer CI is failing. Can someone have a look? This new version improves developer documentation and handles smith certification.

Job error message:

ERROR: Preparation failed: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply caps: operation not permitted: unknown (docker.go:406:0s)
Will be retried in 3s ...
ERROR: Job failed (system failure): Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply caps: operation not permitted: unknown (docker.go:406:0s)
1 Like

A restart did it: https://git.duniter.org/nodes/duniter-indexer/-/pipelines/31719

1 Like

I’m spamming the restart button to get the CI run on an other runner than axiom runner which is failing. @poka I do not see the gitlab runner in the topic Infrastructure de l'écosytème Duniter, do you know where it is now?

Yes this is reference here, in axiom2 which is migrate to mmicro infrastructure.

I just checked the VM is ok, the runner is running:

root@runner-ci:~# gitlab-runner status
Runtime platform                                    arch=amd64 os=linux pid=817208 revision=436955cb version=15.11.0
gitlab-runner: Service is running

Docker is ok also, the resources are fine so I don’t know why your CI is failing.
This was configured by @1000i100 so maybe he could say more.

@Pini installed and configure podman on this VM few weeks ago, maybe there is a misconfigure stuff about ?

1 Like

I do not see a runner here, the only runner I see is

We can see the retries of the job here: deploy_docker_duniter_indexer (#108494) · Jobs · nodes / duniter-indexer · GitLab

ERROR: Job failed (system failure): Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply caps: operation not permitted: unknown (docker.go:406:0s)

Qui a la main sur mmicro et qui s’en occupe ? @Pini @Pedrito @Cid_Ragarock ça fait deux mois que ce runner est en panne (il n’arrive pas à produire l’image de l’indexeur), on a vraiment besoin que tout ça fonctionne mieux pour avancer dans de bonnes conditions, là c’est un peu galère d’écrire du code et de devoir spammer le bouton retry pour changer de runner pour qu’il finisse dans une image docker. Ce serait super si je pouvais me concentrer sur l’écriture du code et la documentation et que d’autres personnes assurent le reste. Si je me mets à plein temps sur le projet, c’est pour avancer sur les tâches compliquées que personne d’autre n’arrive à faire, pas pour faire tourner le projet tout seul, je n’en suis pas capable.

Là j’ai l’impression que le forum est déserté. Non je ne me fais pas à la messagerie instantanée, ce n’est vraiment pas mon truc. Pas de problème si vous échangez là dessus, mais il faudrait avoir des informations publiques à disposition de tous si on veut avancer.

2 Likes

@Pini @HugoTrentesaux
c’est le probleme de la VM qui n’a pas les droit c’est ça ?

C’est un souci de conf du noyau qui ne permet pas de faire tourner des binaires d’architectures différentes via qemu.

Je n’ai pas la main sur mmicro. Nous dépendons de nos hégerdeurs.

Les runners sont tagués pour une bonne raison. Le runner podman est tagué podman. Les runners basés sur Docker devraient être tagués docker. Si la CI de l’indexer nécessite un runner Docker elle doit le spécifier dans son fichier .gitlab-ci.yaml.

La période actuelle n’est pas celle où je suis le plus disponible. Je ne décroche pas, j’ai juste moins de temps pour geeker.

EDIT : En regardant la liste des jobs de la CI duniter-indexer je constate que tous les jobs récents (réussis ou en échec) ont tourné sur un runner tagué dind. Je ne vois donc pas de rapport avec le runner podman que j’ai mis en place.

plait-il ? :joy:

Message SMS de Pedrito :

Bonjour Hugo
Je suis assez peu dispo ces temps ci.
L’infra est maintenue par moi même et Cid. Par contre l’admin sys est faite par Pini et / ou Poka.
Je vais répondre au post que tu viens de faire d’ici ce soir.

Ma sollicitation première allait dans le sens de l’infra mais pas seulement.
En effet, j’étais en contact avec Poka et plus du tout de réponse. Sais tu s’il va bien? Si je peux faire qqch pour lui?

L’admin sys ne peut pas être faite par quelqu’un qui n’est pas au courant et n’a pas la main, ça ne marchera pas :confused:
@poka ne répond plus, il n’a pas la forme en ce moment, mais il ne semble pas que l’on puisse y faire grand chose. Il faudrait quand même qu’on sache qui s’occupe de quel runner et quels runners ne sont pas administrés. C’était le but du recensement Infrastructure de l'écosytème Duniter mais il n’est pas fini.

Pas de rapport avec le runner podman ici (il est utile pour duniter-v2s mais pas pour duniter-indexer pour l’instant). Il s’agit du runner axiom-team-ci-privileged-dind, c’est, je pense, celui indiqué dans le recensement :

2 Likes

@HugoTrentesaux : Ça y est j’ai un peu de temps pour jeter un oeil. As-tu un job sous la main que je pourrais relancer plusieurs fois afin de comprendre ce qu’il se passe ?

J’ai compris ce qu’il se passe : le runner n’a pas les droits pour lancer Docker en mode privileged:

gitlab-runner@runner-ci:~$ docker run --rm -it debian
root@f84c69a21960:/# 
exit
gitlab-runner@runner-ci:~$ docker run --rm -it --privileged debian
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: unable to apply caps: operation not permitted: unknown.
ERRO[0000] error waiting for container: context canceled 

@Cid_Ragarock : voici ce que j’ai trouvé sur le sujet : Docker inside LXC starting container process caused "apply caps: operation not permitted" - Server Fault.

EDIT : J’ai désactivé le runner axiom-team-ci-privileged-dind en attendant que ce soit résolu.

1 Like

@HugoTrentesaux

L’admin sys ne peut pas être faite par quelqu’un qui n’est pas au courant et n’a pas la main, ça ne marchera pas :confused:

Je ne suis pas sur de comprendre. Que veux tu donc dire stp?
Il est prévu depuis le début que nous mettions à disposition la partie infra nécessaire à Axiom. Nous apportons notre concours en maintenant cette infra.
Nous ne sommes pas à même de maintenir les services afférents, cela me semblait être clair.
“La main” avait été donné à @poka? @Pini veux tu prendre le relai?

@Pini

J’ai compris ce qu’il se passe : le runner n’a pas les droits pour lancer Docker en mode privileged:

Nous avions lors de la bascule des services avec @poka adapté les droits mais cela rejoint ce que demandais @Cid_Ragarock plus haut. Il y a encore un peu d’adaptation à faire à ce niveau, sachant que nous voudrions éviter les failles de sécurité.

2 Likes

Oui je veux bien. Merci.

2 Likes

OK pour moi.
On s’organise sur Element.

1 Like

On a fait quelques tests avec @Pedrito, non concluants jusque là : il n’est toujours pas possible de lancer un docker en mode privileged sur notre VM runner-ci hébergée sur la machine mmicro.

De mon côté j’ai testé le build de duniter-indexer avec podman, et ça semble passer modulo quelques changements au fichier .gitlab-ci.yaml. En revanche ces modifications ne sont pas compatibles avec Docker. Donc la CI peut fonctionner soit sur runner docker, soit sur runner podman, mais pas sur les deux.

1 Like

Maintenant que j’ai la main sur la VM de test je viens de configurer un nouveau runner.

Quelqu’un peut-il tester ? Je ne promets pas que ça marche du premier coup.

1 Like

J’avais pas eu le temps de tester ton nouveau runner, mais je vais avoir besoin de publier une nouvelle image pour l’indexeur, donc c’est le bon moment pour tester !

[edit] la pipeline fonctionne sur le nouveau runner : deploy_docker_duniter_indexer (#120186) · Jobs · nodes / duniter-indexer · GitLab
mais comment récupérer l’image docker ? On pourrait utiliser le registry GitLab comme proposait @Moul
Ou alors il faut activer la publication sur https://hub.docker.com/r/duniter/duniter-indexer, est-ce qu’il suffit de dé-commenter les lignes commentées @Pini ?

Ce runner est obsolète. Utilise kepler-pipglr à la place.

Désolé pas très réactif ces temps ci car je suis bien occupé à migrer les services de mon assoce vers une autre machine suite à un disuqe dur défaillant.

@HugoTrentesaux, si tu as une idée de priorisation sur ce dont tu as besoin et qui dépends de moi, n’hésite pas à me pinguer en direct.

1 Like

Ok, merci pour l’info du runner. Prend ton temps pour ton assoce (de musique ?), si tu veux je peux te maintenir une liste des tâches prioritaires qui pourraient te convenir :slight_smile: