Suivi des déploiements
Job qui signale chaque déploiement à un service de suivi, par un appel HTTP : quel projet, quel environnement, quelle version, quelle pipeline.
Sans CI_TRACKING_ENDPOINT, le job ne fait rien : il peut donc être inclus avant que le service ne soit prêt.
Fonctionnement
Après le déploiement (stage postdeploy), le job appelle l'adresse CI_TRACKING_ENDPOINT en GET, avec ces paramètres :
| Paramètre | Valeur |
|---|---|
auth | CI_TRACKING_TOKEN |
project | CI_TRACKING_PROJECT |
project_name | le nom du projet GitLab (CI_PROJECT_NAME) |
environment | prod ou preprod |
version | le tag en prod, <branche de preprod>-<numéro de pipeline> en preprod |
ci_version | la version des templates (CI_TEMPLATE_VERSION) |
url | l'adresse de la pipeline |
Le jeton passe dans l'URL : il peut donc apparaître dans les journaux du service appelé. Lui donner des droits limités à cet usage, et déclarer CI_TRACKING_TOKEN en variable masquée.
La réponse du service n'est pas contrôlée : le job réussit même si le service répond par une erreur HTTP.
Utilisation
variables:
CI_TEMPLATE_VERSION: &CI_TEMPLATE_VERSION main
include:
- project: kgaut/gitlab-ci-templates
ref: *CI_TEMPLATE_VERSION
file:
- '/templates/generic/stages-variables-extends.yml'
- '/templates/generic/deploy-tracking.yml'
Variables
| Nom de la variable | Contenu | Exemple | Remarque |
|---|---|---|---|
| CI_TRACKING_ENDPOINT | Adresse du service de suivi | https://suivi.exemple.fr/api/deploy | sans valeur, le job ne fait rien |
| CI_TRACKING_TOKEN | Jeton d'authentification auprès du service | à définir dans les variables CI, masquée | |
| CI_TRACKING_PROJECT | Identifiant du projet dans le service | mon-projet |
Ces mêmes variables servent à l'envoi des métriques QA, vers CI_METRIC_ENDPOINT.
Liste des jobs
prod:deploy-track
Signale le déploiement d'un tag en production
preprod:deploy-track
Signale le déploiement de la branche PREPROD_BRANCH en préproduction