Aller au contenu

Création de multiples users pour l’API de Thanos Query#

Objectif#

Possibilité de se connecter à l'API thanos-query avec plusieurs users (quand l'API est exposée).

Préparatifs#

CLIENT=xxxx       # pour obs-evp : CLIENT=evp

Paramétrage de la zone "grafana-client"#

Configuration de la zone#

Ajouter ce paramètre dans la définition de la zone grafana-client dans envs-ng/zones/ngot_zones/client-xxxx.cue :

"svc-grafana-client-xxxx": {
        ...
        parameters: {
            ...
            expose_thanos_query: true
            multiple_users_thanos_query: true
        }
    }

À cet endroit, le trackbone plan devrait échouer et cela est normal. En effet, il faut générer le secret pour qu'un trackbone plan réussisse et cela ne peut être fait qu'avec le trackbone apply -t boostrap=true qui sera exécuté lors du CAASCHR.

Il faudra penser à signaler ce point lors de la validation de la MR par un tiers.

Regénération des zones#

Regénérer les zones :

generate-static-zones-files

Déploiement#

Créer un CAASCHR à partir de ce template.

Après le déploiement#

Création d'un token Vault#

Les credentials sont communiqués au client avec un token Vault.

Avec les credentials présents dans Vault :

xdg-open "https://vault.infra-prd.caascad.com/ui/vault/secrets/secret/list/zones/fe/svc-grafana-client-${CLIENT}/thanos-query-auth/"

On peut créer un fichier json thanos_users.json comme ceci :

{
  "user1": {
    "username": "thanos-query-user-...",
    "password": "..."
  },
  "user2": {
    "username": "thanos-query-user-...",
    "password": "..."
  }

On crée le token Vault à partir du fichier json :

export VAULT_ADDR=https://vault-oab.si.fr.intraorange
vault login -method oidc -path=sso
vault write -wrap-ttl=10080m sys/wrapping/wrap @thanos_users.json

Exemple de sortie :

Key                              Value
---                              -----
wrapping_token:                  hvs.CAESIHlIPJCWnWPwDkDQBukoawPPZq62_4ATldF9-yLJRp0iGh4KHGh2cy56V0ZISXg3akJZTmt2ZWk4MmwxTG5od3Y
wrapping_accessor:               ZoKeQ8ISTpS4zAllRUOkG0zG
wrapping_token_ttl:              168h
wrapping_token_creation_time:    2025-08-14 12:03:14.652336556 +0200 CEST
wrapping_token_creation_path:    sys/wrapping/wrap

Ticket Jira#

Le ticket Jira pourra être rempli avec ces commentaires.

h1. Création de multiples users pour l’API de Thanos Query

L'URL de Thanos-Query est : https://metrics-query.obs-XXXXXX.cloudservicesfactory.com/

Vous pouvez récupérer les credentials des users grâce à un token Vault. Ce token a une durée de validité de 7 jours, et ne peut être utilisé qu'une seule fois.

Pour l'utiliser :
{code}
export VAULT_ADDR=https://vault-oab.si.fr.intraorange
vault login -method oidc -path=sso

TOKEN="YYYYYY"
vault unwrap -format=json ${TOKEN} | jq '.data'
{code}

Remplacer les :

  • XXXXXX par le nom de la zone (exemple : XXXXXX devient evp)
  • YYYYYY par le token Vault

Support#

Prévenir sur Mattermost #support :

  • la fin du déploiement
  • le commentaire écrit dans le ticket Jira qui peut être communiqué au client

Note

30/07/2025. On écrit pour la première fois cette documentation pour une zone Grafana mutualisée. Pour ce type de zones, les credentials sont communiqués directement au client avec un token Vault. Et non mis dans les variables Git.

Si une future demande concerne une zone Grafana "classique", l'idéal sera d'adapter le code gitops-tools pour mettre les différents credentials dans le repo Git du client.