Voir ce qui s'est passé sur un composant
L'onglet Événements d'un composant est son journal : chaque push, tag, release, pipeline, synchro Argo CD et quality gate que ses outils ont signalés, jour par jour, le plus récent en haut. Quand un push vient de la release d'un autre composant, la ligne le dit et t'y mène.
Ce que ça affiche, et pour qui
- Les événements de ce composant seulement, venus des outils auxquels son
catalog-info.yamlle relie. - Tous ceux qui voient le composant dans le catalogue voient son onglet. Un lien vers un autre composant n'apparaît que si tu vois aussi cet autre composant.
- Un outil à webhook y apparaît dès son premier webhook reçu. Un outil relevé toutes les 5 minutes y apporte aussi ses 7 derniers jours (voir Sans webhook).
Avant de commencer
-
Tu es administrateur pour allumer l'onglet et poser les webhooks.
-
Le composant porte l'annotation d'au moins un outil dans son
catalog-info.yaml:apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: shop-app
annotations:
gitlab.com/project-slug: acme/shop-app # GitLab
github.com/project-slug: acme/shop-app # GitHub
argocd/app-name: shop-app # Argo CD
sonarqube.org/project-key: acme-shop-app # SonarQube
spec:
type: service
lifecycle: production
owner: group:default/platformNe garde que les lignes des outils que tu utilises.
1. 🔌 Allumer le plugin
-
Dans la barre latérale, en bas, clique sur Administration.
-
Sous Plateforme, clique sur Plugins.
-
Sur la carte Événements (Ce qui s'est passé sur un composant, jour par jour : pushs, pipelines, synchros.), clique sur l'interrupteur Activer Événements. Il s'allume.
La page de ton composant a maintenant un onglet Événements, à côté de ses autres onglets.
2. 🔗 Faire envoyer ses événements à GitLab
-
Dans Administration, sous Plateforme, clique sur Connexions de l'entreprise, puis sur l'onglet Webhooks.
-
Sur la carte GitLab, clique sur Configurer.
-
Dans la fenêtre Configurer le secret GitLab, à côté d'Adresse du webhook, clique sur Copier l'adresse. L'adresse finit par
/api/orion-events/gitlab, par exemplehttps://astrolabe.exemple.com/api/orion-events/gitlab. -
Dans Secret du webhook, tape un long texte aléatoire, par exemple
un-long-texte-aleatoire, puis clique sur Enregistrer. -
Dans ton projet GitLab, ouvre Settings › Webhooks et ajoute un webhook :
- URL : l'adresse copiée ;
- Secret token : le même secret ;
- Trigger : coche Push events, Tag push events, Releases events, Pipeline events et Job events.
Cette étape dans GitLab n'a pas été vérifiée sur une instance.
La carte GitLab de l'onglet Webhooks propose maintenant Gérer. Pour en savoir plus sur cette carte, voir Régler le secret du webhook GitLab.
3. 🔗 Faire envoyer ses événements à GitHub
-
Dans Administration › Connexions de l'entreprise, clique sur l'onglet Webhooks.
-
Sur la carte GitHub, clique sur Configurer.
-
Dans la fenêtre Configurer le secret GitHub, à côté d'Adresse du webhook, clique sur Copier l'adresse. L'adresse finit par
/api/orion-events/github. -
Dans Secret du webhook, tape un long texte aléatoire, puis clique sur Enregistrer.
-
Dans ton dépôt GitHub, ouvre Settings › Webhooks › Add webhook :
- Payload URL : l'adresse copiée, Content type
application/json; - Secret : le même secret ;
- Let me select individual events : coche Pushes, Branch or tag creation, Releases, Workflow runs et Workflow jobs.
Cette étape dans GitHub n'a pas été vérifiée sur une instance.
- Payload URL : l'adresse copiée, Content type
4. 🔗 Argo CD et SonarQube
Les synchros Argo CD et les quality gates SonarQube viennent de leur connexion dans Administration › Connexions de l'entreprise : Ajouter l'intégration Argo CD, Ajouter l'intégration SonarQube. Astrolabe les relève toutes les 5 minutes (voir plus bas). Ce relevé et leur webhook n'ont pas été vérifiés sur une instance.
⏳ Sans webhook
Un outil qui a sa connexion dans Administration › Connexions de l'entreprise et pas de webhook est
relevé toutes les 5 minutes. La première lecture ramène les 7 derniers jours. L'onglet dit alors, par
exemple, GitLab n'a pas de webhook : son API est relevée toutes les 5 min.
Pour GitLab et GitHub, le composant doit être enregistré depuis son propre dépôt : dans
Catalogue › Enregistrer un composant existant, donne l'adresse du catalog-info.yaml du dépôt que
nomme son annotation, par exemple
https://gitlab.exemple.com/acme/shop-app/-/blob/main/catalog-info.yaml pour
gitlab.com/project-slug: acme/shop-app.
5. 📖 Lire l'onglet
-
Dans la barre latérale, clique sur Catalogue, puis sur le nom de ton composant, par exemple
shop-app. -
Clique sur l'onglet Événements.
-
Chaque jour a son titre, par exemple Aujourd'hui — vendredi 30 octobre. Chaque ligne donne l'outil, ce qui s'est passé et l'heure :
Ligne Ce qu'elle dit Push Renovate Bot a poussé le commit 9f8e7d6 sur main — « chore: bump shop-lib to 1.4.2 », avec le pipeline de ce commit, par exemple#7101 · échecTag Lib Maintainer a créé le tag v1.4.2 sur le commit a1b2c3dPipeline Le workflow #7101 a échoué pour le commit 9f8e7d6, avec sa durée, par exemple1 min 15 s -
Pour restreindre la liste, clique sur une source au-dessus (Toutes les sources, GitLab…), ou choisis une branche dans Branche. En bas, Voir les événements plus anciens charge les jours précédents.
🔁 Voir quelle release a déclenché un push
Sous un push, une ligne qui commence par ↳ dit ce qui l'a causé :
| Ligne | Quand elle apparaît |
|---|---|
↳ déclenché par la release 1.4.2 de shop-lib (05:23:45) | Le message du commit nomme un paquet et sa version, par exemple chore: bump shop-lib to 1.4.2 (Renovate, Dependabot, « bump … to … »). |
↳ poussé par shop-lib | Le commit a été poussé par le bot du projet GitLab d'un autre composant. Non vérifié sur une instance. |
↳ déclenché par le pipeline #4512 de shop-lib | Le pipeline a été lancé par un pipeline d'un autre composant. Non vérifié sur une instance. |
Sur le composant de la release, le tag le dit dans l'autre sens :
↳ a poussé le commit 9f8e7d6 sur shop-app.
Le nom de l'autre composant est un lien vers son onglet Événements quand Astrolabe connaît ce
composant : l'enfant le déclare dans spec.dependsOn, sous le nom du paquet, et Stack technique est
allumé dans Administration › Plugins. Ces conditions n'ont pas été vérifiées sur une instance.
spec:
dependsOn:
- component:default/shop-lib
Le message de ton commit ne nomme pas le paquet ? Ajoute cette ligne à la fin du message, après une ligne vide :
Triggered-By: shop-lib@1.4.2
Le push affiche alors ↳ déclenché par la release 1.4.2 de shop-lib.
✅ C'est tout !