hlilo-website/data/miam/ateliers/002-atelier-tedomum-gitlab-runner.md

8.9 KiB

Atelier 18 mars 2023

Très courte description

CR | Atelier | Gestion de communauté (Mastodon/Matrix), gitlab runner

Participant⋅es

Ordre Du Jour (ODJ)

  • 👋 Tour de table
  • 📌 reminec présente et candidate pour un projet ACIDES.org
  • 📌 mise en place d'un salon vocal dans l'espace Matrix Tedomum
  • 📌 mise en place d'un runner gitlab sur le cluster kubernetes kity
  • 📌 Build de l'image Element via le runner
  • 📌 M.à.j du service Element
  • 👋 Conclusion | 🕑 0-10min

Description

L'atelier a durée ~1h15

📝 #Candidature #ACIDES

  • reminec présente l'ébauche de son initiative qu'il veut animer au sein du labo ACIDES.org.
  • kaiyou approuve l'initiative et le fait de la ranger sous le labo ACIDES.org

L'ébauche se compose pour le moment d'une équipe lost-in-learn sur une instance cryptpad(😍) hébergée chez deuxfleur.fr

Présentation

Voir le index.md

A faire

  • 📌 Trouver un nom qui respecte la convention posée par acides.org
  • 📌 Mettre en place un espace Matrix

📝 #Tedomum

💡 Tedomum possède un salon public pour les alertes de monitoring.

📝 #Tedomum - Gestion de communauté (#COMA)

⚠️ Attention à ne pas diluer le contenu tant qu'il n'y pas nécessité de segmenter

📝 #Mastodon
Tâches à réaliser
  • 📌 Il faut au moins distinguer 2 comptes
    • Compte COMA : Utiliser pour la communication externe
    • Compte status des services : Utiliser pour annoncer les interruptions de services, les services actuellement en défaut.
Idées
  • ⚖️ Il doit être possible de brancher les alertes de monitoring sur le compte mastodon dédiés au suivis des services.
    • ⚠️ Attention toutefois à ce que le monitoring ne flood pas les envois
📝 Salons Matrix
Tâches abouties
  • Salon vocal/visio créé (Le salon vocal possède une zone de tchat écrit)
    • ⚠️ Le partage d'écran ne marche que dans le client Web
  • Salon ajouté à l'espace matrix Tedomum
  • Ajout des droits d'admins de reminec sur les espaces Tedomum et ACIDES.
Tâches à réaliser
  • 📌 Revoir la consistence dans le nommage des Espaces / Salons (et leur alias) | S'inspirer de NixOS qui joue avec une arborescence de nommage.

Le but recherché est de favoriser la distinction entre le salon général, et l'espace d'accueil.

📝 #Tedomum #K8s #Kity

  • 💡 Le noeud Bambino est le moins sollicité.
Tâches effectuées
  • Nouveau namespace tedomum-runner
  • Push du travail en l'état sur le repo FluxCD (HelmChart gitlab-runner)
  • Nous avons désactivé le runner global pour taper sur le runner nouvellement mis en place.
    • 💡Nous avons un runner global hébergé en dehors kity (sur Japet, un dédié OVH pour les builds).

runner non fonctionnel en l'état

📝 #K8s, #Gitlab & #GitlabRunner

📝 #HelmChart | gitlab-runner

values.yaml
  • Personnalisation des valeurs suivantes :
    • gitlabUrl
    • runnerRegistrationToken
    • runnerToken
    • concurrent
    • nodeSelector

WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens.

Difficultés rencontrés

Documentation & dépréciations

La documentation gitlab est un tantinet brouillonne :

  • 🚨 L'ancienne façon d'enregistrer un runner est dépréciée.
  • ⚠️ La nouvelle façon est documentée, mais pas encore livrée dans l'interface (prévu pour v15.10.x)
Vrac de la séance
🪚 Premier essai - build Element via le runner

Échec - Le build est plannifié sur le noeud chez Orlinum.

💡 #Tedomum #Kity Pas de traffic sortant depuis le noeud Orlinum.

WARNING: The 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with a 'deploy' command. For more information, see #380872 (closed)

The register command will be preserved with some changes, which should limit the impact to users.

nodeSelector : Page de doc en 404 https://kubernetes.io/docs/user-guide/node-selection/

🪚 Deuxieme essai
  • ⚠️ Échoué car il cherche à dialoguer via ipv6, non dispo pour le moment dans le cluster.

Après investigation, c'est la résolution DNS du cluster qui échouait pour 1/3 requtes, puisqu'un des pods du cluster-dns était sur un noeud dont le DNS était configuré en IPv6 mais ne disposant pas d'IPv6.

En corrigeant le resolv.conf du noeud pour fournir un nameserver en IPv4, l'ensemble est reparti.

Connaissances

Vocabulaire

👩‍🎓 Race condition

L'un dépend de l'autre mais la dépendance n'est pas respectée pendant l'execution.

👩‍🎓 COMA - COmmunity MAnagement

Gestion de communauté

👩‍🎓 SOPS - Secrets OPerationS (by Mozilla)

Très courte definition

Permets de chiffrer/déchiffrer du texte ou du binaire.

Description

Il gère nativement les formats de fichiers suivants en préservant les clefs :

  • json
  • yaml
  • env
  • ini

Alternative à :

  • ansible-vault
  • HashiCorp vault

Voir plus loin

👩‍🎓 lunarVim

Une configuration de neoVIM

👩‍🎓 bat

Courte Description

Clone de cat, avec :

  • La gestion de coloration de syntaxique
  • l'intégration de git
  • l'affichage des caractères non imprimable
  • pagination automatique

Voir plus loin

FAQ

#Gitlab & #GitlabRunner

Est-ce que le nodeSelector est pour les builds ou pour le runner lui même ?
Comment choisir les noeuds sur lesquels les builds seront lancées ?
Comment on crée un runner via l'interface ?

L'ancienne façon est encore disponible, mais dépréciée. La nouvelle est documenté mais pas encore livrée dans l'interface.

https://docs.gitlab.com/ee/architecture/blueprints/runner_tokens/

Gitlab 15.9.x ne possède pas encore l'UI pour faire face à la dépréciation de l'ancienne façon. Prévue pour v15.10.x

Comment on configure un #GitlabRunner via le #HelmChart ?
  • Il faut écrire un config.toml,
  • 🚨 c'est déprécié via le values.yaml.

#Astuces

#Matrix

💡 Salon de monitoring

Comme les salons sont distribués et répliqués entre les instances, il est recommandé de rejoindre le salon de monitoring avec un 2e compte hébergé ailleurs que sur l'instance monitorée. Ainsi, les messages seront consultable via cette autre instance.

Post-Scriptum

🤔 Evaluer la valeur ajoutée de l'atelier et du rendu

  • la pertinence d'un tel document
  • la pertinence de prendre un temps imprévu pour aborder des sujets connexes à l'atelier si ça consomme du temps précieux pour la réalisation de la tâche initialement prévue

⚖️ Réutilisation du contenu

Il y a t'il moyen de nourrir, extraire, et faciliter une curation de contenu via une convention qui se dessine :

  • Objet
  • Duree
  • Topos
  • Tâches
    • aboutie
    • effectuée
    • à réaliser
  • Difficultés
  • Connaissances
  • Vocabulaire
  • Astuces
  • FAQ

Dans l'idée, ça nourrit au moins une section 'Quoi de neuf chez Tedomum' via l'objet qui se transformerait en titre et le topos en description.

Est-ce pertinent de vouloir s'approcher d'une documentation croisée dans un atelier où il est prévu de tomber des tâches ?

Choix cornélien qui se dessine :

  • Peut-être opportun de ralentir un chouilla le rythme ?
  • Au contraire, laisser filer
  • Peut-être un mélange des 2 au cas par cas ?

Licenses

CC-BY-SA

Crédits

Auteurices

Relectures

  • kaiyou

Versions

v1.1.0

Date: 30 mars 2023 | Temp rédaction : 30min | reminec

  • reformatage avant publication

v1.0.0

Date : 18 mars 2023 | Temps rédaction : 3h30 | reminec

  • Prise de notes durant l'atelier
  • Interviews de kaiyou pour approfondir
  • Enrichissement
  • Formatage

Remerciements

kaiyou @ acides.org (Tedomum.net) | Pour son expertise et le temps pris pour s'arrêter sur des sujets connexes à l'atelier.