Aller au contenu principal

Configuration

Disponible

Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.

La CLI stocke ses jetons et ses préférences dans un fichier local. En CI ou dans un script, les variables d'environnement prennent le relais.

Le fichier​

Emplacement par défaut : ~/.config/stackngo/config.yaml (Linux, macOS), %APPDATA%\stackngo\config.yaml (Windows). --config PATH en désigne un autre.

Le fichier est créé par sng config create ou par la première commande qui écrit un jeton (sng sso login). Il est en mode 0600 dans un dossier 0700 : lisible par vous seul.

~/.config/stackngo/config.yaml
api_url: https://api.dev.stackngo.fr
cluster: ovh-gra-0
tenant: acme-dev
access_token: "…" # votre identité (sng sso login)
refresh_token: "…"
tenant_token: "…" # session du tenant courant (sng tenant use)
CléRôle
api_urlAdresse de l'API, sans /v1. Le binaire embarque https://api.dev.stackngo.fr ; cette clé ne sert qu'à viser une autre API.
clusterCluster visé (sng config use-cluster). Vide : le cluster par défaut de l'API.
tenantTenant courant (sng tenant use). Un environnement correspond à un tenant.
access_token, refresh_tokenJeton d'identité. Le refresh_token est conservé mais pas utilisé : à l'expiration, relancez sng sso login.
tenant_tokenSession du tenant courant, renouvelée automatiquement.
Ne versionnez pas ce fichier

Il contient vos jetons. sng config show affiche tout sauf les jetons, pour vérifier sans risque.

Cluster et tenant​

La CLI parle à un cluster et à un tenant, rien d'autre : il n'y a plus de contexte ni de région à choisir. Les manifestes que vous appliquez, listez ou supprimez sont ceux du tenant courant.

sng config use-cluster ovh-gra-0 # choisir le cluster
sng tenant use acme-dev # choisir le tenant (donc l'environnement)

Un environnement, c'est un tenant : créez acme-dev et acme-prod, puis passez de l'un à l'autre avec sng tenant use. Chaque tenant a ses propres droits, son quota et ses domaines. Voir Environnements et restauration.

Fichier créé par une ancienne version

Un fichier qui contient encore current_context, contexts ou region est converti au premier lancement : le contexte courant (API, tenant, jetons) est conservé, region est abandonnée et l'original est gardé une fois dans config.yaml.bak. Après un changement de cluster, relancez sng sso login.

Variables d'environnement​

Elles l'emportent sur le fichier. C'est la façon de configurer la CLI en CI.

VariableRemplaceUsage typique
STNG_API_URLapi_urlViser une autre API (sans /v1)
STNG_ACCESS_TOKENaccess_tokenJeton d'identité fourni par le pipeline
STNG_TENANT_TOKENtenant_tokenSession de tenant fournie par le pipeline (ancien nom : STNG_SESSION_TOKEN)
STNG_CLUSTERclusterCluster
STNG_TENANTtenantTenant courant
STNG_OAUTH_CLIENT_IDidentifiant intégré à la CLIIdentifiant client pour sng sso login --client-credentials (ignoré par la connexion par navigateur)
STNG_OAUTH_CLIENT_SECRET—Secret client pour sng sso login --client-credentials

Les paramètres du service d'authentification (adresse, identifiant client, organisation) sont fixés à la compilation du binaire et ne se surchargent ni par le fichier, ni par l'environnement.

Pour une CI sans aucun secret stocké, préférez la fédération OIDC à un jeton dans une variable.

Garde-fous​

  • HTTPS obligatoire vers l'API, sauf pour localhost et 127.0.0.1.
  • Un api_url de boucle locale (http://127.0.0.1:…) laissé dans le fichier est ignoré quand le binaire vise une API distante : un reste de développement local ne détourne pas vos commandes.
  • Un seul jeton par requête : la CLI choisit l'identité ou la session selon la route. Vous n'avez jamais à fournir d'en-tête vous-même.

Vérifier​

sng config show
cluster: ovh-gra-0
tenant: acme-dev
api_url: https://api.dev.stackngo.fr