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

281 lines
8.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Atelier 18 mars 2023
## Très courte description
CR | Atelier | Gestion de communauté (Mastodon/Matrix), gitlab runner
## Participant⋅es
* ✅ kaiyou 🧪 [ACIDES.org](https://acides.org) 🏴‍☠️🌈 [Tedomum.net](https://tedomum.net)
* ✅ reminec 🤪 | 🧪 [ACIDES.org](https://acides.org) 🏴‍☠️🌈 [Tedomum.net](https://tedomum.net)
## 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](https://acides.org).
> * kaiyou **approuve l'initiative** et le fait de la ranger sous le labo [ACIDES.org](https://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](https://git.deuxfleurs.fr/ACIDES-hlilo/hlilo-website/src/branch/develop/data/pages/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
> * 📝 Version déployée chez Tedomum au jours de l'écriture : gitlab-v15.9.3
> * 🔗 https://docs.gitlab.com/runner/executors/kubernetes.html
#### 📝 #HelmChart | gitlab-runner
* 🔗 https://artifacthub.io/packages/helm/gitlab/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
* https://blog.stephane-robert.info/post/devops-secret-sops/
### 👩‍🎓 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
* https://github.com/sharkdp/bat
## 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
* reminec 🤪 | 🧪 [ACIDES.org](https://acides.org) 🏴‍☠️🌈 [Tedomum.net](https://tedomum.net)
### 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.