Référence des commandes
Chaque groupe de commandes, ce qu'il fait, et la page où il est expliqué en détail.
Toutes les commandes acceptent --help. Cette page est l'index ; les pages
vers lesquelles elle renvoie donnent le détail, et le terminal est toujours à
jour.
Pour installer la CLI, voir Installer la CLI.
Options globales
Elles se placent avant le nom de la commande :
isogrid --api https://api.isogrid.skyvault.pro apps list
| Option | |
|---|---|
--api URL |
Le point d'accès à utiliser, au lieu de celui auquel vous vous êtes connecté en dernier. |
--organization SLUG |
Agir dans cette organisation. Ce doit être celle à laquelle l'identifiant est rattaché. |
Et les variables d'environnement, pour les scripts et les pipelines :
| Variable | |
|---|---|
ISOGRID_API_URL |
Point d'accès à utiliser. |
ISOGRID_TOKEN |
Identifiant à utiliser, au lieu de celui qui est enregistré. Jamais écrit sur le disque. |
ISOGRID_ORGANIZATION |
Organisation dans laquelle agir. |
ISOGRID_CONFIG_HOME |
Où conserver config.json. Par défaut ~/.isogrid. |
ISOGRID_INSTALL_DIR |
Où les installateurs placent le binaire. |
NO_COLOR |
Désactive les couleurs. Elles sont aussi désactivées dès que la sortie n'est pas un terminal. |
Les éléments se désignent par leur slug, leur nom ou leur identifiant, et les
options peuvent venir avant ou après les noms : isogrid apps deploy shop --wait
et isogrid apps deploy --wait shop sont la même commande.
Se connecter
isogrid login # opens a browser, approves this machine
isogrid logout [--revoke] # forgets the credential here; --revoke withdraws it on the server too
isogrid whoami # who you are, where, and what this credential may do
isogrid orgs list # the organizations you belong to, and which one is pinned
isogrid auth credentials # every credential issued for your account
isogrid auth revoke <id> # revoke one (from a browser session only)
login accepte --scope a,b pour ne demander que certaines permissions,
--name pour nommer l'identifiant, --no-browser pour afficher l'adresse au
lieu de l'ouvrir, et --force pour remplacer un identifiant que vous avez déjà.
Un identifiant est rattaché à une seule organisation : celle que vous
consultiez dans le navigateur au moment de l'approuver. Il n'existe
volontairement pas de orgs use : une commande qui semblerait changer
d'organisation puis agirait ailleurs serait pire que pas de commande du tout.
Pour travailler ailleurs, changez d'organisation dans la console web et lancez
isogrid login --force.
Un identifiant ne détient jamais plus que vous. Ce que vous approuvez est un plafond, vérifié à chaque fois par rapport à votre rôle. Certaines choses lui sont toujours interdites : la facturation, la nomination d'administrateurs, et la création ou la révocation d'identifiants. Voir Rôles, groupes de permissions et accès.
Révoquez tout ce que vous ne reconnaissez pas, ainsi que l'identifiant de toute machine que vous ne contrôlez plus. La révocation prend effet immédiatement.
Applications : isogrid apps
isogrid apps list
isogrid apps get <app> [--exact]
isogrid apps create --name NAME --url REPO_URL|IMAGE_REF [flags]
isogrid apps create --name NAME --external-image REF [--registry NAME] [flags]
isogrid apps update <app> [flags] [--deploy [--ref REF]]
isogrid apps build <app> [--ref REF]
isogrid apps deploy <app>
isogrid apps stop <app> | start <app>
isogrid apps status <app>
isogrid apps scale <app> [--replicas N] [--tier SIZE]
isogrid apps tiers <app>
isogrid apps logs <app> [--follow]
isogrid apps logs <app> --search QUERY [--since 1h] [--limit N]
isogrid apps env <app>
isogrid apps secrets <app>
isogrid apps delete <app> [--yes]
La création depuis GitHub, GitLab ou une image, l'environnement et les secrets,
la fusion ou le remplacement, et ce que --wait considère comme un échec :
Automatiser les applications.
Fichiers de stack : isogrid stack
isogrid stack preview (-f FILE|DIR... | --repo REPO [--provider github|gitlab] [--ref REF] --path PATH...)
[--stack NAME] [--region REGION] [--var KEY=VALUE]... [--var-file PATH] [--json]
isogrid stack apply (-f FILE|DIR... | --repo REPO [--provider github|gitlab] [--ref REF] --path PATH...)
[--stack NAME] [--var KEY=VALUE]... [--size [FILE:]SERVICE=TIER]...
[--registry [FILE:]SERVICE=NAME]... [--network [FILE:]SERVICE=NAME]... [--placement [FILE:]SERVICE=CONSTRAINT]...
[--port [FILE:]SERVICE=N]... [--skip [FILE:]SERVICE]... [--no-deploy] [--wait] [--timeout 20m]
Déploie un fichier docker-compose ou docker stack, une application par
service, nommée <stack>-<service> ; appliquer à nouveau les met à jour.
env_file n'est pas lu et les volumes ne sont pas montés. Ce qui est appliqué,
et comment le placement et les registres sont choisis :
Déployer un fichier de stack.
-f accepte un dossier et se répète ; --repo/--path lisent plutôt un dépôt connecté. Avec plusieurs fichiers, --stack est un préfixe (<préfixe>-<nom du fichier>) et FILE:SERVICE=... vise un seul fichier.
Registres de conteneurs : isogrid registries
isogrid registries list
isogrid registries add --name NAME --kind KIND [--host HOST] --username USER --password-stdin [--no-verify]
isogrid registries update <registry> [--name NAME] [--username USER] [--password-stdin]
isogrid registries test <registry>
isogrid registries remove <registry> [--yes]
registries répond aussi à registry. Le mot de passe ou le jeton est lu sur
l'entrée standard ou dans ISOGRID_REGISTRY_PASSWORD, jamais dans une option.
Voir Autres registres de conteneurs.
Déployer depuis la CI/CD : isogrid ci
isogrid ci init github|gitlab [--app NAME] [--cluster REGION] [--output PATH]
Génère un pipeline prêt à être commité, qui déploie à chaque push. La création d'un identifiant pour ce pipeline, les modèles complets, et quoi faire quand un job échoue : Déployer depuis la CI/CD.
Dépôts : isogrid repos
isogrid repos list
isogrid repos access <repo> --visibility private|administrators|organization|inherit
isogrid repos grant <repo> (--member EMAIL | --group SLUG) --preset NAME
isogrid repos grants <repo>
isogrid repos revoke <repo> <grant>
Membres et groupes : isogrid iam
isogrid iam members
isogrid iam groups list | get | create | update | delete
isogrid iam groups add-member <group> <email>
isogrid iam groups remove-member <group> <email>
isogrid iam permissions
Les deux sont expliqués avec des exemples dans Dépôts, groupes et accès.
Bases de données : isogrid database
isogrid database list
isogrid database instances
isogrid database create <name> [--instance ID]
database répond aussi au nom db.
Les identifiants de connexion ne sont affichés qu'une fois, à la création de la base de données, et ne peuvent plus être récupérés ensuite. Si vous l'automatisez dans un script, capturez la sortie ; si vous les perdez, créez-en de nouveaux. Voir Bases de données.
Régions : isogrid regions
isogrid regions list [--all]
Par défaut, seules les régions qui acceptent du travail sont listées. Une région
en cours de vidage continue de servir ce qui s'y trouve déjà, mais n'accepte
rien de nouveau. --all affiche tout ce à quoi vous avez accès.
Documentation : isogrid docs
isogrid docs search <term> [--language en|fr|ar]
isogrid docs show <section>/<slug> [--language en|fr|ar]
isogrid docs list [--section guide]
Ces commandes fonctionnent sans connexion. docs show affiche le Markdown
tel qu'il est écrit : une commande copiée depuis une page est donc bien la
commande. Les messages d'information vont sur la sortie d'erreur standard, si
bien que isogrid docs show guide/databases > databases.md produit un fichier
propre.
La CLI elle-même
isogrid update [--check] # replace this executable with the platform's current build
isogrid version
Voir Installer la CLI.
Sortie pour les scripts
La plupart des commandes acceptent --json et affichent la réponse de l'API
sans la modifier. Tout ce qu'une personne lit et qu'un script ne lit pas —
progression, invites, conseils — va sur la sortie d'erreur standard, si bien que
isogrid apps list --json | jq fonctionne sans avoir à filtrer de bruit.
Codes de sortie : 0 succès, 1 échec (y compris un déploiement échoué ou
annulé sous --wait), 2 une erreur d'utilisation, ou une commande destructrice
lancée sans --yes et sans terminal pour la confirmer.
Cas particuliers à connaître avant d'y être confronté
« not signed in » sur une machine où vous vous êtes connecté. Les
identifiants sont propres à chaque point d'accès. Si vous avez passé --api une
fois, vous vous êtes connecté à ce point d'accès, et celui par défaut reste
anonyme.
Une erreur de permission que la console web ne vous donne pas. Un
identifiant de la CLI peut être approuvé avec une portée plus restreinte que
celle de votre compte. isogrid whoami montre ce que celui-ci porte ;
isogrid login --force en autorise un plus large.
Votre identifiant a expiré. Reconnectez-vous ; rien d'autre n'est affecté.
Une commande reste bloquée. --follow est fait pour rester attaché, et
--wait attend jusqu'à --timeout. Une interruption annule la requête en cours
plutôt que de tuer le processus au milieu d'une écriture : Ctrl-C est donc sans
danger.
Un script fonctionne en interactif et échoue en CI. C'est presque toujours
l'identifiant : ISOGRID_TOKEN n'est pas défini, ou il est rattaché à une autre
organisation. Faites de isogrid whoami la première étape du pipeline. Voir
Déployer depuis la CI/CD.