Référence CLI Rediacc
Aperçu
La **CLI Rediacc** (`rdc`) est une interface en ligne de commande pour gérer une infrastructure auto-hébergée — machines, dépôts, stockage, sauvegardes et plus encore.
Guide d'installation
Téléchargez le dernier binaire pour votre plateforme depuis la [page des versions Rediacc](https://www.rediacc.com) ou installez via votre gestionnaire de paquets :
# macOS / Linux
curl -fsSL https://www.rediacc.com | sh
# Or use the packaged binary directly
./rdc --help
Options Globales
Chaque commande prend en charge ces flags globaux :
| Option | Libellé |
|---|---|
--output | Format de sortie (table|json|yaml|csv). Remplacer la valeur par défaut avec REDIACC_DEFAULT_OUTPUT. |
--config | Utiliser une configuration spécifique pour cette commande |
--lang | Remplacement de langue ({{languages}}) |
--force | Ignorer les invites de confirmation |
1. Gestion de la Configuration
Gérer les fichiers de configuration : créer, changer, modifier, réconcilier l'état, et fonctionnalités transverses (champs, audit, clés SSH, synchronisation distante).
Les fichiers de configuration stockent les informations de connexion (URL API, identifiants, équipe/région/pont par défaut) pour basculer rapidement entre les environnements.
1.1 prune
Supprime le poids mort du fichier de configuration local dans ~/.config/rediacc/<config>.json. Trois catégories sont nettoyées, toutes purement locales (aucun appel SSH/renet) : (1) les entrées du cache de certificats ACME dont l'ancre GUID/repo/machine n'est plus dans la configuration active ; (2) les dépôts archivés dont la période de grâce a expiré (7 jours par défaut, voir defaults.pruneGraceDays) ; (3) les références croisées orphelines (machine→strategy, strategy→repo). Les ressources actives, identifiants, jetons de stockage et known-hosts ne sont jamais touchés. Le comportement par défaut applique les changements ; passez --dry-run pour prévisualiser uniquement.
rdc config prune [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--dry-run | Prévisualise ce qui serait supprimé sans modifier le fichier de configuration. Reflète la sémantique désactivée par défaut des autres commandes prune. | Non | - |
--certs-only | Limite au bucket du cache de certificats ACME. Ignore la purge d'archives et le nettoyage de références croisées. Mutuellement exclusif avec --archives-only et --refs-only. | Non | - |
--archives-only | Limite à la purge des archives expirées. Ignore le cache de certificats et le nettoyage de références croisées. Exclusif avec --certs-only et --refs-only. | Non | - |
--refs-only | Limite aux références croisées orphelines (machine→strategy, strategy→repo excludes/includes). Ignore le cache de certificats et les archives. Exclusif avec --certs-only et --archives-only. | Non | - |
--purge-archived | Supprimer TOUS les dépôts archivés indépendamment de leur âge, pas seulement ceux après la grâce. Équivalent à exécuter 'rdc repo admin archive purge' pour chaque dépôt archivé. À n'utiliser que si vous êtes sûr de ne plus avoir besoin des identifiants stockés pour la restauration. | Non | - |
--orphan-repos | Supprime les entrées de dépôt qui ne sont associées à aucune machine. Chaque entrée contient les identifiants et la clé SSH de ce dépôt, cette action est donc irréversible. Exécute d'abord 'rdc config reconcile' pour que l'association reflète les machines. | Non | - |
--grace-days <days> | Remplace la fenêtre de grâce d'archive (en jours) pour cette invocation. Repli sur defaults.pruneGraceDays dans la configuration, puis sur 7 si aucun n'est défini. | Non | - |
1.2 init
Créer un nouveau fichier de configuration nommé
En mode local, vous pouvez ajouter des machines directement :
rdc config init [name] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--ssh-key <path> | Chemin vers la clé privée SSH (ex. ~/.ssh/id_rsa) | Non | - |
--renet-path <path> | Chemin vers le binaire renet (par défaut : renet dans PATH) | Non | - |
--master-password <password> | Chiffrer les ressources avec un mot de passe principal | Non | - |
--server <url> | URL du serveur de compte | Non | - |
1.3 list
Lister tous les fichiers de configuration
rdc config list
1.4 show
Afficher les détails de la configuration actuelle
rdc config show [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--reveal | Afficher en clair les valeurs sensibles (mode interactif uniquement) | Non | - |
1.5 current
Afficher la configuration active : nom, fichier, serveur et canal résolus, état du jeton
rdc config current
1.6 delete
Supprimer un fichier de configuration
rdc config delete <name>
1.7 set
Définir une valeur par défaut (équipe, région, pont)
rdc config set <key> <value>
1.8 clear
Effacer les valeurs par défaut (toutes ou une clé spécifique)
rdc config clear [key]
1.9 recover
Restaurer la configuration depuis le fichier de sauvegarde (.bak)
rdc config recover [name] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-y, --yes | Ignorer l'invite de confirmation | Non | - |
1.10 ssh
Gérer la configuration de la clé SSH
set
Définir la clé SSH pour la configuration actuelle
rdc config ssh set [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--key <path> | Chemin vers le fichier de clé SSH privée | Oui | - |
--embed | Intégrer le contenu de la clé dans la configuration au lieu de stocker le chemin | Non | - |
show
Afficher la configuration actuelle de la clé SSH
rdc config ssh show
remove
Supprimer la clé SSH de la configuration actuelle
rdc config ssh remove
1.11 remote
Gérer la connexion au stockage distant de configuration
enable
Lier cette configuration au stockage distant chiffré
rdc config remote enable [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--headless | Utiliser le flux de code d'appareil (pour les serveurs sans interface) | Non | - |
--password | S'inscrire en mode headless avec un password slot préprovisionné (sans navigateur) | Non | - |
--api-url <url> | URL du serveur de compte | Non | - |
--force | Remplacer le contenu local différent par la copie du serveur sans confirmation | Non | - |
disable
Déconnecter du stockage distant et sauvegarder la configuration localement
rdc config remote disable
status
Afficher l'état de la connexion distante
rdc config remote status
refresh
Forcer la récupération de la configuration depuis le stockage distant
rdc config remote refresh
1.12 field
Opérations sur les champs de configuration adressés par pointeur (get/set/unset/rotate/list). Pointeurs JSON (RFC 6901) tels que /credentials/cfDnsApiToken.
get
Lire une valeur de configuration via un pointeur JSON. Les champs sensibles sont masqués sauf avec --reveal (humains uniquement).
rdc config field get [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--pointer <pointer> | Pointeur JSON vers le champ (ex : /credentials/cfDnsApiToken) | Oui | - |
--reveal | Afficher les valeurs sensibles en clair (TTY interactif uniquement ; audité) | Non | - |
--digest | Afficher l'empreinte SHA-256 au lieu de la valeur (sûr à partager avec des agents) | Non | - |
set
Écrire une valeur de configuration à un pointeur JSON. Les chemins sensibles exigent --current (preuve de connaissance).
rdc config field set [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--pointer <pointer> | Pointeur JSON vers le champ (ex : /credentials/cfDnsApiToken) | Oui | - |
--new <value> | Nouvelle valeur (interprétée comme JSON si elle commence par {, [, ", true, false, null ou un nombre) | Oui | - |
--current <value> | Valeur actuelle en clair — requise pour modifier les chemins sensibles (preuve de connaissance) | Non | - |
unset
Supprimer une valeur de configuration à un pointeur JSON. Les chemins sensibles exigent --current.
rdc config field unset [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--pointer <pointer> | Pointeur JSON vers le champ (ex : /credentials/cfDnsApiToken) | Oui | - |
--current <value> | Valeur actuelle en clair — requise pour supprimer les chemins sensibles | Non | - |
rotate
Rotation d'une valeur sensible sans --current. TTY interactif uniquement ; audité en évidence.
rdc config field rotate [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--pointer <pointer> | Pointeur JSON vers le champ sensible (ex : /credentials/cfDnsApiToken) | Oui | - |
--new <value> | Nouvelle valeur | Oui | - |
list
Lister chaque modèle de pointeur enregistré avec son type et sa politique de commit/chiffrement.
rdc config field list [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--sensitive | Afficher uniquement les modèles sensibles (non publics) | Non | - |
1.13 edit
Ouvre la configuration active dans $EDITOR comme projection JSONC caviardée. Humains uniquement ; les agents sont refusés.
rdc config edit [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--reveal | Afficher les valeurs sensibles en clair (TTY interactif uniquement ; audité) | Non | - |
--dump | Afficher la configuration actuelle en JSONC sur stdout au lieu d'ouvrir l'éditeur (lecture seule ; sûr pour les agents si caviardé) | Non | - |
--apply <file> | Appliquer un fichier JSONC modifié (saute le lancement de $EDITOR) | Non | - |
--current-secrets <file> | Fichier JSON mappant pointeur→ancien texte en clair pour la porte de connaissance sur --apply | Non | - |
--editor <cmd> | Commande d'éditeur (suit la priorité git : --editor > $GIT_EDITOR > git config core.editor > $VISUAL > $EDITOR) | Non | - |
1.14 audit
Inspecter le journal d'audit de configuration (JSONL chaîné par hachage dans ~/.config/rediacc/audit.log.jsonl)
log
Afficher les entrées d'audit récentes au format JSON
rdc config audit log [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--since <spec> | Afficher les entrées postérieures à (ex. : '24h', '7d', horodatage ISO) | Non | - |
--path <glob> | Filtrer par motif de pointeur JSON (ex. : /credentials/*) | Non | - |
--actor <kind> | Filtrer par type d'acteur (human|agent) | Non | - |
tail
Diffuser les nouvelles entrées en temps réel (Ctrl+C pour arrêter)
rdc config audit tail
verify
Vérifier l'intégrité de la chaîne SHA-256 de toutes les entrées d'audit
rdc config audit verify
1.15 reconcile
Reconstruit l'état d'exécution à partir de la vérité des machines. Corrige les données d'attachement et de routage obsolètes.
rdc config reconcile [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--machine <m...> | Limiter la réconciliation à ces machines | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
--accept-observed | Réécrit un placement déclaré pour qu'il corresponde à l'emplacement réel de l'image, mais uniquement lorsque cela est sans ambiguïté (observé sur exactement une machine). Les doublons restent des conflits. | Non | - |
1.16 rotate-cek
Faire tourner la clé de chiffrement de la configuration de l'organisation
rdc config rotate-cek [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--api-url <url> | URL du serveur de compte | Non | - |
2. Gestion du stockage de données
Pools de stockage nommés qui contiennent des dépôts. Un datastore est mobile (attachez-le à une machine, déplacez-le vers une autre) et à monteur unique (une seule machine le détient à la fois). Le datastore par défaut implicite de chaque machine n'est pas géré ici.
2.1 resize
Agrandir ou réduire un datastore. Il s'agit d'une opération hors ligne : les dépôts qu'il contient doivent être arrêtés.
rdc datastore resize <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--size <size> | Nouvelle taille (par exemple 200G) | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.2 fork
Forker un datastore en copy-on-write. Le fork est instantané et son coût ne croît pas avec la taille du pool. Nécessite le backend rbd : un datastore local n'a pas de clone au niveau bloc, les dépôts qu'il contient se forkent donc un par un par reflink à la place (rdc repo fork).
rdc datastore fork <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--tag <tag> | Tag pour le fork (le résultat est name:tag) | Oui | - |
--attach-to <machine> | Attacher immédiatement le fork à cette machine (nécessite --writes) | Non | - |
--writes <disposition> | Où vont les écritures du fork : local (instantané, éphémère) ou ceph (clone durable) | Non | - |
--cow-size <size> | Taille de l'overlay pour --writes local | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.3 status
Afficher un datastore : son backend, son attachement, son utilisation, ses dépôts et ses snapshots. Un datastore détaché rapporte quand même son enregistrement.
rdc datastore status <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.4 create
Créer un datastore nommé supplémentaire sur une machine. Un backend local est un pool basé sur fichier sur cette machine et y reste. Un backend rbd vit dans Ceph, il peut donc se déplacer vers toute machine atteignant le même cluster. Passez --cluster pour en faire un datastore du monde kubernetes ; cette référence arrière est fixée à la création.
rdc datastore create <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Machine sur laquelle créer le datastore | Oui | - |
--size <size> | Taille du datastore (par exemple 100G) | Oui | - |
--backend <type> | Backend de stockage : local (basé sur fichier, reste sur cette machine) ou rbd (Ceph, déplaçable) | Non | local |
--pool <name> | Pool Ceph pour le backend rbd (par défaut : rbd) | Non | - |
--image <name> | Nom de l'image RBD pour le backend rbd (par défaut : le nom du datastore) | Non | - |
--cluster <name> | Cluster Kubernetes auquel appartient ce datastore. Défini signifie dépôts kubernetes uniquement ; non défini signifie dépôts docker uniquement. Fixé à la création. | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.5 list
Lister les datastores nommés, où ils sont attachés et ce qu'ils contiennent.
rdc datastore list [place]
2.6 attach
Attacher un datastore à une machine. Une seule machine détient un datastore à la fois, donc l'attacher ailleurs le déplace : l'ancien détenteur le libère d'abord, et un transfert échoué laisse l'attachement d'origine intact. Un fork doit indiquer où vont ses écritures.
rdc datastore attach <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--to <machine> | Machine à laquelle attacher le datastore | Oui | - |
--writes <disposition> | Où vont les écritures d'un fork : local (instantané, éphémère, perdu au détachement) ou ceph (clone durable dans le pool). Requis pour un fork. | Non | - |
--cow-size <size> | Taille de l'overlay pour --writes local | Non | - |
--no-auto | Ne pas rattacher automatiquement ce datastore au démarrage | Non | - |
--force | Forcer la déconnexion d'un détenteur périmé qui n'a pas libéré le datastore proprement | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.7 detach
Détacher un datastore de sa machine. Les dépôts qu'il contient s'arrêtent d'abord. Un fork attaché avec --writes local n'a nulle part où réécrire son overlay ; le détacher jette donc l'overlay et nécessite --discard.
rdc datastore detach <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--discard | Jeter un fork à écritures locales et son overlay. Les données ne sont pas récupérables. | Non | - |
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.8 snapshot
Prendre et lister les snapshots à un instant T d'un datastore. Un snapshot au repos ne coûte rien et c'est ce dont un fork clone.
create
Prendre un snapshot à un instant T d'un datastore. Rien ne s'arrête. L'instant est cohérent au crash près, pas cohérent au niveau applicatif : si vous avez besoin qu'une écriture précise soit DANS le snapshot, synchronisez-la d'abord.
rdc datastore snapshot create <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--snapshot <label> | Libellé du snapshot (par défaut : un horodatage UTC) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
list
Lister les snapshots d'un datastore.
rdc datastore snapshot list <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
2.9 delete
Détruire un datastore et tout ce qu'il contient. Il se détache d'abord ; s'il ne peut pas se détacher proprement, la suppression échoue plutôt que de laisser un pool monté orphelin.
rdc datastore delete <datastore> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--force | Supprimer même si des dépôts pointent encore dessus. Leurs données disparaissent avec lui. | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
3. Gestion des Machines
Inspecter l'état d'une machine distante : ressources système, conteneurs en cours d'exécution, services systemd, dépôts déployés et diagnostics de santé. Requêtes en lecture seule ; pour modifier des dépôts, utilisez `repo`. Sous-commandes clés : status (état complet, filtré avec --system, --containers, --repositories, --services), health, list, add, remove, setup, prune, provision, deprovision.
3.1 list
Lister les machines
rdc machine list [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--search <text> | Rechercher dans {{field}} | Non | - |
--sort <field> | Trier par champ | Non | - |
--desc | Trier par ordre décroissant | Non | - |
3.2 health
Vérifier la santé de la machine pour les pipelines CI/CD
La commande health affiche les métriques système, l'état des conteneurs, la stabilité des services et les informations de stockage — utile pour les vérifications de pipeline CI/CD.
rdc machine health <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-t, --team <name> | Nom de l'équipe | Non | - |
3.3 provision
Provisionner une nouvelle machine chez un fournisseur cloud avec OpenTofu
rdc machine provision <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--provider <name> | Nom du fournisseur cloud (depuis machine provider add) | Oui | - |
--region <region> | Remplacer la région par défaut | Non | - |
--type <type> | Remplacer le type d'instance par défaut | Non | - |
--image <image> | Remplacer l'image OS par défaut | Non | - |
--ssh-user <user> | Nom d'utilisateur SSH pour la nouvelle VM (par défaut : root) | Non | - |
--base-domain <domain> | Domaine de base pour l'infrastructure (ex. example.com). Implique --infra | Non | - |
--no-infra | Ignorer la configuration d'infrastructure (proxy + DNS) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
3.4 deprovision
Détruire une machine provisionnée dans le cloud et la supprimer de la configuration
rdc machine deprovision <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--force | Ignorer l'invite de confirmation | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
3.5 prune
Supprimer les ressources orphelines du datastore et les instantanés périmés d'une machine
rdc machine prune <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--dry-run | Afficher ce qui serait supprimé sans effectuer de modifications | Non | - |
--orphaned-repos | Supprimer chaque image de dépôt sur la machine absente de votre configuration CLI locale. Comportement grossier : supprime aussi les forks créés par d'autres outils sans entrée de configuration locale, même quand leur miroir renet les identifie correctement comme des forks. Utilisez --prune-unknown pour le comportement plus fin qui respecte le miroir. | Non | - |
--prune-unknown | Supprime uniquement les dépôts que le miroir renet .interim/state ne peut pas classer (pas dans la configuration locale ET pas de miroir marqué fork). Strictement plus restreint que --orphaned-repos : les forks sans configuration sont préservés quand le miroir les identifie. Les orphelins hérités pré-miroir et les grands obsolètes dont l'entrée de configuration a été supprimée tombent tous dans cette catégorie. | Non | - |
--force-delete-mounted | Remplace la vérification de sécurité de montage et supprime les dépôts même s'ils sont actuellement montés ou ont des conteneurs Docker en cours. Distinct de --force (qui ne remplace que la période de grâce d'archive). S'applique à la fois à --orphaned-repos et à --prune-unknown. | Non | - |
--force | Ignorer les invites de confirmation | Non | - |
--grace-days <days> | Période de grâce en jours pour les dépôts récemment archivés (par défaut : 7) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
3.6 add
Ajouter une machine à la configuration actuelle
rdc machine add <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--ip <address> | Adresse IP ou nom d'hôte de la machine | Oui | - |
--user <username> | Nom d'utilisateur SSH | Oui | - |
--port <port> | Port SSH | Non | 22 |
3.7 infra
Gérer la configuration d'infrastructure (proxy, DNS, certificats)
cert
Gérer les certificats TLS en cache
Supprimer le cache de certificats
rdc machine infra cert clear
Télécharger et mettre en cache les certificats TLS depuis une machine
rdc machine infra cert pull <machine> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--no-prune | Ne pas nettoyer les certificats d'ID réseau obsolètes | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
Envoyer les certificats TLS en cache vers une machine
rdc machine infra cert push <machine> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
Afficher l'inventaire des certificats en cache
rdc machine infra cert status
push
Envoyer la configuration d'infrastructure à la machine (proxy Traefik, routeur, Cloudflare DNS). Exécutez d'abord 'machine infra set <machine>'
rdc machine infra push <machine> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
set
Définir la configuration d'infrastructure pour une machine (spécifique à la machine : IPs, domaine, ports ; partagé : email de certificat, token DNS Cloudflare)
rdc machine infra set <machine> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--public-ipv4 <ip> | Adresse IPv4 publique (par machine) | Non | - |
--public-ipv6 <ip> | Adresse IPv6 publique (par machine) | Non | - |
--base-domain <domain> | Domaine de base pour les applications (par machine) | Non | - |
--cert-email <email> | E-mail pour les notifications de certificats TLS (partagé entre machines) | Non | - |
--cf-dns-token <token> | Jeton Cloudflare DNS API pour le défi ACME DNS-01 (partagé entre machines) | Non | - |
--tcp-ports <ports> | Ports TCP à rediriger (séparés par des virgules, ex., 25,143,465) | Non | - |
--udp-ports <ports> | Ports UDP à rediriger (séparés par des virgules, ex., 53) | Non | - |
show
Afficher la configuration d'infrastructure pour une machine
rdc machine infra show <machine>
3.8 provider
Gérer les fournisseurs cloud pour le provisionnement automatique de machines
add
Ajouter un fournisseur cloud
rdc machine provider add <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--provider <source> | Source de fournisseur connue (ex., linode/linode, hetznercloud/hcloud) | Non | - |
--source <source> | Source personnalisée de fournisseur OpenTofu (ex., vultr/vultr) | Non | - |
--token <token> | Jeton API pour le fournisseur cloud | Oui | - |
--region <region> | Région par défaut pour les nouvelles machines | Non | - |
--type <type> | Type/taille d'instance par défaut | Non | - |
--image <image> | Image OS par défaut | Non | - |
--ssh-user <user> | Nom d'utilisateur SSH pour les nouvelles VMs (par défaut : root) | Non | - |
--resource <type> | Personnalisé : type de ressource OpenTofu pour les VMs | Non | - |
--label-attr <attr> | Personnalisé : nom d'attribut pour le libellé de la VM | Non | - |
--region-attr <attr> | Personnalisé : nom d'attribut pour la région | Non | - |
--size-attr <attr> | Personnalisé : nom d'attribut pour le type d'instance | Non | - |
--image-attr <attr> | Personnalisé : nom d'attribut pour l'image du système d'exploitation | Non | - |
--ipv4-output <attr> | Personnalisé : attribut de sortie pour l'adresse IPv4 | Non | - |
--ipv6-output <attr> | Personnalisé : attribut de sortie pour l'adresse IPv6 | Non | - |
--ssh-key-attr <attr> | Personnalisé : nom d'attribut pour les clés SSH | Non | - |
--ssh-key-format <format> | Personnalisé : format de clé SSH (inline_list ou resource_id) | Non | - |
--ssh-key-resource <type> | Personnalisé : type de ressource OpenTofu pour les clés SSH | Non | - |
list
Lister les fournisseurs cloud configurés
rdc machine provider list
remove
Supprimer la configuration d'un fournisseur cloud
rdc machine provider remove <name>
3.9 remove
Supprimer une machine de la configuration actuelle
rdc machine remove <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--force | Supprimer la machine même si des dépôts y sont encore placés, laissant ces placements orphelins. | Non | - |
3.10 scan-keys
Scanner les clés d'hôte SSH pour les machines de la configuration actuelle
rdc machine scan-keys [name]
3.11 setup
Provisionner une machine distante pour les dépôts (installe renet, configure Docker, datastore BTRFS). Idempotent. Requis après config machine add et avant repo create
rdc machine setup <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--datastore-path <path> | Chemin du datastore sur la machine distante | Non | /mnt/rediacc |
--datastore-size <size> | Taille du datastore (ex. : 95%, 100G) | Non | 95% |
--debug | Activer la sortie de débogage (mode local) | Non | - |
3.12 status
Afficher l'état complet de la machine (système, dépôts, conteneurs, services)
rdc machine status [name] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
--system | Inclure uniquement les informations système | Non | - |
--repositories | Inclure uniquement les dépôts | Non | - |
--containers | Inclure uniquement les conteneurs | Non | - |
--services | Inclure uniquement les services | Non | - |
--network | Inclure uniquement les interfaces réseau | Non | - |
--block-devices | Inclure uniquement les périphériques de bloc | Non | - |
--licenses | Inclure les statuts de licences des dépôts | Non | - |
--storage-health | Afficher la fragmentation BTRFS et les économies reflink par dépôt | Non | - |
--datastores | Afficher les datastores attachés (montage, attachement, utilisation) | Non | - |
--health-check | Mode de vérification de santé - sort avec le code 2 si des conteneurs ne sont pas sains | Non | - |
--stability-check | Mode de vérification de stabilité - sort avec le code 2 si des services échouent/redémarrent | Non | - |
--search <text> | Filtrer les dépôts par nom | Non | - |
--sync-certs | Récupère aussi le cache de certificats ACME de la machine après la requête | Non | - |
--strict | Sortir avec un code non nul (code 2) si un conteneur a dépassé le seuil de dérive de santé | Non | - |
4. Gestion des clusters
Provisionner et gérer des clusters : des ensembles nommés de pools de nœuds (ceph, k8s-server, k8s-agent, hyperconverged) sur un réseau privé. Les membres d'un pool deviennent des machines à part entière, si bien que toutes les commandes -m fonctionnent sur eux.
4.1 create
Déclarer et provisionner un cluster : machines, pools Ceph et Kubernetes. Passez --provider et --pool pour déclarer en une étape ; un create seul provisionne un cluster déjà déclaré.
rdc cluster create <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--provider <provider> | Fournisseur : une clé cloudProviders, ou 'kvm' | Non | - |
--pool <spec...> | Spécification de pool name:role:count[:size] (role : ceph|k8s-server|k8s-agent|hyperconverged) | Non | - |
--declare-only | Enregistrer le cluster dans la configuration sans le provisionner | Non | - |
--network-cidr <cidr> | CIDR du réseau privé (ex. 10.0.0.0/24) | Non | - |
--network-primitive <primitive> | Primitive réseau (ex. vlan, vpc, network) | Non | - |
--control-node <machine> | Machine explicite pour le nœud de contrôle (par défaut : premier membre k8s-server) | Non | - |
--net-name <name> | KVM : réseau libvirt pour ce cluster (ex. renet12) | Non | - |
--net-base <prefix> | KVM : préfixe réseau, les trois premiers octets (ex. 192.168.112) | Non | - |
--net-offset <n> | KVM : décalage ajouté à l'id de chaque VM lors du calcul de son adresse | Non | - |
--control-id <n> | KVM : id de VM du nœud de contrôle et de registre (par défaut : 1) | Non | - |
--docker-registry <endpoint> | KVM : point de terminaison du registre Docker dans la VM pour ce cluster | Non | - |
--ssh-user <user> | Utilisateur SSH pour les membres provisionnés | Non | - |
--base-domain <domain> | Domaine de base pour le DNS public du cluster (hérité d'une machine voisine à défaut) | Non | - |
--control-ds-size <size> | Taille du datastore de contrôle d'ancrage (par défaut : 10G) | Non | - |
--control-ds-backend <backend> | Backend du datastore de contrôle d'ancrage : local | ceph (par défaut : ceph si le cluster a Ceph, sinon local) | Non | - |
--control-ds-pool <pool> | Pool RBD Ceph pour le datastore de contrôle d'ancrage (backend ceph) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.2 status
Liste tous les clusters, ou affiche la configuration complète d'un cluster avec --name.
rdc cluster status [cluster]
4.3 scale
Modifie le nombre de membres d'un pool (ajoute/retire des machines et fait rejoindre/évacuer des nœuds). Les pools k8s-agent sont redimensionnés sur place ; la croissance du pool ceph se fait directement via cephadm.
rdc cluster scale <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--pool <pool> | Nom du pool | Oui | - |
--count <n> | Nombre de membres souhaité | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.4 destroy
Détruit les membres provisionnés et retire le cluster ainsi que ses machines de la configuration.
rdc cluster destroy <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--force | Ignorer la confirmation et poursuivre malgré les erreurs de destruction | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.5 kubeconfig
Récupère le kubeconfig depuis le nœud de contrôle du cluster via SSH et le met en cache localement (0600) pour kubectl.
rdc cluster kubeconfig <cluster>
4.6 fork
Clone un cluster entier, données de ses dépôts incluses, dans un nouveau cluster : copy-on-write coordonné des images du cluster et des PV, puis réécriture de l'identité des nœuds pour que le fork démarre avec de nouvelles adresses. Le cluster parent continue de tourner.
rdc cluster fork <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--tag <tag> | Tag du fork | Oui | - |
--to <dest-cluster> | Cluster de destination dont les nœuds hébergent le fork (son nœud de contrôle et ses agents ; un cluster ne peut pas forker sur ses propres machines, car deux k3s ne peuvent pas partager un namespace réseau hôte) | Oui | - |
--writes <disposition> | Mode d'écriture du fork : local (overlay dm-COW éphémère, aucune empreinte Ceph) | ceph (clone durable). Défaut : local | Non | - |
--up | Démarrer les dépôts forkés et bloquer sur l'état de santé du cluster une fois le fork démarré | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.7 migrate
Déplace un cluster entier, données de ses dépôts incluses, vers une autre machine ou un autre datacenter avec une bascule courte (pré-copie à chaud, puis arrêt-redémarrage sur la destination).
rdc cluster migrate <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--to <dest-cluster> | Cible | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.8 join
Adopter une machine déjà enregistrée comme nœud agent Kubernetes d'un cluster, en utilisant le même jeton de connexion dérivé de la CA que lors de l'ancrage initial et d'un nouveau rattachement.
rdc cluster join <machine> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--cluster <name> | Cluster à rejoindre | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.9 evict
Drainer le nœud, supprimer son objet Node et effacer son appartenance au cluster. Le cluster est déduit de la machine ; une machine qui monte encore un datastore est refusée.
rdc cluster evict <machine> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--force | Ignorer le drainage lorsque le nœud est déjà hors service | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.10 rehearse
Répéter une release ou une mise à niveau : forker le cluster vers une destination comme fork éphémère et jetable (writes=local, role=rehearsal, sans secrets), le démarrer, bloquer sur son état de santé, puis le jeter. Le cluster parent n'est jamais touché.
rdc cluster rehearse <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--on <dest-cluster> | Cluster de destination sur lequel démarrer la répétition jetable | Oui | - |
--tag <tag> | Tag optionnel pour le fork de répétition (par défaut : horodaté) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
4.11 snapshot
Snapshots à un instant T de tout le cluster. Un instant cohérent au crash près sur chaque datastore adossé à rbd que possède le cluster, pris via le group snapshot de Ceph : rien ne s'arrête et le cluster ne le remarque jamais. Les datastores à backend local n'ont pas de primitive de groupe au niveau bloc, ils tombent donc hors de cet instant et sont signalés comme tels. L'instant est cohérent au crash près, pas cohérent au niveau applicatif : si vous avez besoin qu'une écriture précise soit DANS le snapshot, synchronisez-la d'abord.
create
Prend un snapshot de chaque datastore adossé à rbd dans le cluster à UN seul instant. Rien n'est arrêté. Tout datastore à backend local dans le cluster est signalé comme hors de cet instant : il ne fait pas partie du snapshot. L'instant est cohérent au crash près, pas cohérent au niveau applicatif : si vous avez besoin qu'une écriture précise soit DANS le snapshot, synchronisez-la d'abord.
rdc cluster snapshot create <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--snapshot <label> | Libellé du snapshot (par défaut : un horodatage UTC) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
list
Lister les group snapshots du cluster.
rdc cluster snapshot list <cluster> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
5. Serveur MCP
Serveur Model Context Protocol pour les agents IA
5.1 serve
Démarrer le serveur MCP (transport stdio)
rdc mcp serve [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--config <name> | Nom de la configuration à utiliser pour toutes les commandes | Non | - |
--timeout <ms> | Délai d'expiration par défaut des commandes en millisecondes | Non | 120000 |
6. Cycle de vie des dépôts
Déployer et gérer des dépôts chiffrés sur les machines. Sous-commandes clés : create, up (déployer), down (arrêter), fork (clone CoW instantané), delete, push/pull (sauvegarde), sync (transfert de fichiers). Cycle de vie : repo create → repo up → repo down. Consultez Concepts clés dans rdc --help pour l'architecture, le routage et le détail des variables d'environnement.
6.1 up
Déployer ou mettre à jour un dépôt (montage, exécution de Rediaccfile up qui appelle renet compose). La machine est dérivée du placement de la réf. Les routes du proxy prennent ~3s pour devenir actives après le déploiement. Affiche le motif d'URL pour les services exposés en HTTP (label rediacc.service_port) à la fin. Le premier déploiement et les forks sont montés automatiquement. La restauration du checkpoint CRIU est détectée automatiquement ; utilisez --skip-checkpoint pour forcer un démarrage propre. Utilisez --all --machine <m> pour déployer tous les dépôts d'une machine.
rdc repo up [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--no-start | Monter et préparer le dépôt sans exécuter ses étapes up() (fusionne l'ancien 'repo mount' ; ouverture LUKS et, pour les dépôts de cluster, génération des PV). | Non | - |
--skip-checkpoint | Ignorer la restauration du checkpoint CRIU même si des données de checkpoint existent (forcer un démarrage propre) | Non | - |
--tls | Demander un certificat TLS dédié pour ce dépôt (les forks utilisent le certificat partagé de la machine par défaut) | Non | - |
--no-wait | Rendre la main dès que les conteneurs sont démarrés ; les healthchecks continuent en arrière-plan | Non | - |
--all | Déployer tous les dépôts dont la machine d'origine est --machine (forme par lots) | Non | - |
-m, --machine <name> | Avec --all : la machine dont les dépôts sont concernés par l'opération par lots | Non | - |
--include-forks | Également monter/démarrer les dépôts forkés | Non | - |
--parallel | Démarrer les dépôts simultanément | Non | - |
--concurrency <n> | Nombre maximum de dépôts simultanés (par défaut : 3) | Non | 3 |
-y, --yes | Passer la confirmation pour les opérations par lots | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
6.2 down
Arrêter les conteneurs Docker du dépôt (exécute Rediaccfile down via renet compose). La machine est dérivée du placement de la réf. Ne démonte PAS le volume chiffré : le dépôt reste monté et peut être redémarré avec 'repo up'. Utilisez --unmount pour aussi fermer le conteneur LUKS après l'arrêt (fusionne l'ancien 'repo unmount'). Utilisez --checkpoint pour sauvegarder l'état du processus CRIU avant l'arrêt (le prochain 'repo up' le restaure automatiquement). Utilisez --all --machine <m> pour arrêter tous les dépôts d'une machine.
rdc repo down [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--unmount | Aussi démonter (fermer le conteneur LUKS) après l'arrêt. Requis avant 'repo resize' ou pour sécuriser complètement le volume | Non | - |
--checkpoint | Créer un checkpoint CRIU avant l'arrêt (sauvegarder l'état mémoire des processus pour restauration ultérieure via 'repo up') | Non | - |
--all | Arrêter tous les dépôts dont la machine d'origine est --machine (forme par lots) | Non | - |
-m, --machine <name> | Avec --all : la machine dont les dépôts sont concernés par l'opération par lots | Non | - |
--parallel | Démarrer les dépôts simultanément | Non | - |
--concurrency <n> | Nombre maximum de dépôts simultanés (par défaut : 3) | Non | 3 |
-y, --yes | Passer la confirmation pour les opérations par lots | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
6.3 status
Obtenir le statut du dépôt
rdc repo status <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.4 cat
Lire une fenêtre bornée d'un fichier dans un dépôt et l'écrire sur stdout (borné côté serveur ; les diagnostics vont sur stderr)
rdc repo cat <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--remote-file <path> | Chemin du fichier à lire, relatif à la racine de montage du dépôt | Oui | - |
--max-bytes <n> | Nombre maximum d'octets à lire et afficher (défaut 1 MiB, plafond absolu 50 MiB) | Non | - |
--offset <n> | Décalage en octets à partir duquel commencer la lecture | Non | - |
--head <lines> | N'afficher que les N premières lignes (incompatible avec une plage d'octets) | Non | - |
--tail <lines> | N'afficher que les N dernières lignes (incompatible avec une plage d'octets) | Non | - |
--stat | N'afficher que la taille, le type et la date de modification ; ne pas lire le contenu | Non | - |
--force-binary | Autoriser la lecture de contenu binaire (contenant NUL) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.5 diff
Diff fichier-par-fichier façon git entre deux dépôts forkés en copy-on-write. Signale les fichiers ajoutés, modifiés, supprimés et renommés. Compare le dépôt donné par --name (côté cible/nouveau) à son parent, résolu depuis la configuration locale, ou à un dépôt --base explicite (côté base/ancien). Métadonnées uniquement et indépendant de la taille : compare les images LUKS chiffrées au niveau bloc sans les déchiffrer, donc un dépôt de 1 Go et un de 100 Go sont comparés en les mêmes millisecondes.
rdc repo diff <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--base <ref> | Dépôt avec lequel comparer (côté base/ancien) ; par défaut le parent de --name | Non | - |
--name-only | Afficher uniquement les chemins de fichiers modifiés, un par ligne (sans lettres de statut) | Non | - |
--stat | Afficher la magnitude de changement par fichier (deltas en octets et blocs) et les totaux | Non | - |
--content [path] | Afficher un diff textuel unifié pour un seul fichier (nécessite un chemin de fichier) | Non | - |
--fast | Faire confiance au filtre de blocs ; sauter la confirmation par hash de contenu (peut sur-signaler Modifié) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.6 list
Lister les dépôts sur une machine
rdc repo list [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Non | - |
--datastore <name> | Lister les dépôts de ce datastore (résolu vers la machine qui le détient actuellement) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.7 create
Créer un nouveau dépôt. Indiquez sa machine d'origine une fois : une machine ou un datastore.
rdc repo create <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Non | - |
--datastore <name> | Datastore nommé qui héberge le dépôt (répartition docker, ou la forme cluster) | Non | - |
--size <size> | Taille du dépôt (ex. 10G, 100G, 1T) | Non | - |
--no-docker | Ne pas démarrer le démon Docker après la création | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.8 delete
Supprimer un dépôt et ses données. L'entrée de configuration est conservée ; utilisez --archive-config pour déplacer les identifiants vers deletedRepositories en vue d'une récupération via 'repo admin archive restore'. Prend une <ref> positionnelle ; un nom seul se résout vers la ligne grand et est refusé quand plusieurs dépôts partagent le même nom de base — passez name:tag pour cibler un fork.
rdc repo delete <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--archive-config | Déplacer l'entrée de configuration vers deletedRepositories pour récupération ultérieure | Non | - |
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
6.9 commit
Fige l'état actuel d'un fork de travail monté dans un nouveau commit immuable (à la manière de git). Le commit enregistre son message, son auteur, son horodatage et son parent dans le volume (afin qu'il voyage lors du push) et il est marqué en lecture seule — il refuse d'être monté. Le fork de travail reste inchangé, comme git qui laisse l'arbre de travail intact. Récupérez une copie modifiable d'un commit avec 'rdc repo checkout'.
rdc repo commit <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--message <msg> | Message du commit | Oui | - |
--author <author> | Auteur du commit | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.10 branch
Crée une réf de branch nommée pointant sur le commit actuel du fork de travail (son sommet). Les réfs de branch sont stockées dans la configuration CLI (machine = magasin d'objets, config = magasin de réfs).
rdc repo branch <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--branch <branch> | Nom de la nouvelle branche | Oui | - |
6.11 checkout
Clone par reflink un commit immuable (ou le sommet d'une branch) dans un nouveau fork de travail modifiable et fait pointer HEAD dessus. Quasi instantané et en temps constant (reflink BTRFS).
rdc repo checkout <commit-or-branch-ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--tag <name> | Nom du nouveau fork de travail modifiable | Oui | - |
--from <workingFork> | Résoudre le paramètre positionnel <commit-or-branch-ref> comme nom de branche sur ce working fork | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.12 log
Affiche l'historique des commits accessibles depuis le commit actuel d'un fork de travail (ou une référence de commit), en parcourant la chaîne de parents enregistrée par 'rdc repo commit'. Lit le miroir hors volume, donc aucun commit n'est déverrouillé.
rdc repo log <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.13 merge
Fusionne (merge) un commit source ou un fork dans un fork de travail cible. La cible active n'est jamais modifiée sur place : le résultat est construit dans un clone reflink puis permuté de manière atomique. Une cible montée ou en cours d'exécution est refusée, sauf avec --force, qui la met d'abord proprement au repos. Sans --resolve, il s'agit d'un take-theirs sur l'image entière (la cible devient la source) ; avec --resolve ours|theirs, il s'agit d'une fusion à trois sources (three-way) par fichier face à l'ancêtre commun, prenant les modifications uniques de chaque côté et résolvant les conflits bilatéraux selon le drapeau.
rdc repo merge <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--from <source> | Commit ou fork source à partir duquel fusionner (merge) | Oui | - |
--force | Mettre d'abord au repos une cible montée/en cours d'exécution, puis fusionner (merge) (ne modifie jamais un montage actif) | Non | - |
| `—resolve <ours | theirs>` | Résolution de conflit par fichier pour une fusion à trois sources : 'ours' conserve la version de la cible, 'theirs' prend celle de la source. Omettez pour un fast-forward sur l'image entière (take-theirs). | Non |
--base <guid> | GUID du commit ancêtre commun pour une fusion à trois sources (utilisé avec --resolve). Par défaut, le parent du commit source ou le commit actuel de la cible. | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.14 gc
Supprime les objets de commit immuables d'une machine qu'aucune branche ni HEAD n'atteint (GC par accessibilité). La machine est le magasin d'objets ; la configuration CLI est le magasin de références. À blanc par défaut : passez --apply pour supprimer. Ne touche jamais à un objet monté ni à un fork de travail.
rdc repo gc [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
--apply | Supprimer réellement les commits inaccessibles (aperçu à blanc par défaut) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.15 fork
Créer un fork CoW (Copy-on-Write) d'un dépôt. LE FORK EST QUASI INSTANTANÉ ET EN TEMPS CONSTANT quelle que soit la taille du dépôt, le reflink BTRFS clone l'image sous-jacente, si bien qu'un dépôt de 100 Go et un dépôt de 1 Go forkent dans les mêmes ~secondes. Le fork obtient un NOUVEAU GUID, networkId, une nouvelle plage IP et un domaine auto-route ({service}-fork-{tag}.{repo}.{machine}.{baseDomain}), et constitue une copie totalement indépendante. Le fork en ligne est pris en charge, le parent peut continuer de tourner. Le fork hérite automatiquement des identifiants de chiffrement du parent. Utilisez --checkpoint pour capturer l'état du processus CRIU avant le fork ; le fork se restaure automatiquement au premier 'repo up' (l'état en mémoire est préservé). FORK INTER-MACHINES : forkez d'abord localement, puis transférez : (1) rdc repo fork <parent-ref> --tag <name>, (2) rdc repo push <fork-ref> --to <target-machine>, (3) rdc backup restore <fork-ref> --as <fork-name> -m <target-machine> --up. ATTENTION : n'utilisez PAS "repo push" seul pour forker, cela crée une copie brute avec le MÊME GUID (pas un fork indépendant). Forkez toujours d'abord pour obtenir une nouvelle identité. Les auto-routes utilisent le nom du dépôt, chaque fork obtient donc automatiquement un domaine unique.
rdc repo fork <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--tag <name> | Tag pour le fork (crée nom:tag) | Oui | - |
--checkpoint | Créer un checkpoint CRIU sur la source avant le fork (capturer l'état mémoire des processus pour restauration sur le fork) | Non | - |
--immutable | Marque le fork en lecture seule : il refuse le montage et conserve son image stable au niveau des octets pour toujours (un commit/une base figé pour le push delta entre machines) | Non | - |
--up | Monter et démarrer les services après le fork (fork + mount + up en une seule commande) | Non | - |
--no-wait | Avec --up : rend la main dès que les conteneurs sont démarrés ; les healthchecks continuent en arrière-plan (idéal pour les forks jetables) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.16 replicate
Crée N répliques de lecture d'un dépôt en quelques secondes, quelle que soit la taille de la base de données. Prend UN snapshot de datastore, puis effectue N fork-attaches en temps constant (copy-on-write, écritures locales jetables) répartis sur les nœuds du cluster, et applique un overlay généré : un PersistentVolume épinglé par réplique, un StatefulSet, et deux Services ({repo}-rw vers le primaire, {repo}-ro sur l'ensemble des répliques). Les répliques sont des copies à un instant T : aucun flux de réplication, aucune lecture de ses propres écritures ; chaque réplique effectue une passe de récupération après incident avant de servir. Actualisez-les avec 'repo replicate refresh'. Les ensembles de répliques sont un état géré : voir 'repo replicate status' et supprimez avec 'repo replicate remove'.
status
Afficher les ensembles de répliques gérés : répliques, nœuds d'hébergement, datastores de fork, snapshot et horodatages de rafraîchissement.
rdc repo replicate status <ref>
remove
Supprimer un ensemble de répliques : supprimer ses objets k8s générés (limité par labels), abandonner ses datastores de fork, supprimer son snapshot et oublier l'état. Les étapes d'infra sont best-effort, de sorte que la suppression converge même sur un cluster partiellement disparu.
rdc repo replicate remove <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
refresh
Faire basculer chaque réplique, UNE à la fois, vers un nouveau snapshot à un instant T : redémarrer le pod de la réplique, abandonner puis reforker son datastore sous le même chemin, et laisser la vérification de disponibilité (readiness) la réadmettre. N-1 répliques continuent de servir pendant ce temps.
rdc repo replicate refresh <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.17 canary
Faire tourner une NOUVELLE image à côté de la stable et répartir le trafic en direct entre les deux selon un pourcentage (échelon 2 de l'échelle de release). Crée un Deployment + Service canary sur les MÊMES données en production (pas de fork : les utilisateurs du canary sur des données forkées liraient des données obsolètes et écriraient dans une copie vouée à l'échec) et indique au proxy Rediacc de router le pourcentage donné du trafic du nom d'hôte stable vers lui. Un poids de 0 laisse le canary invisible ; un poids de 100 correspond au basculement blue/green. Avant chaque changement de canary, un snapshot de groupe automatique des datastores du cluster est pris (échelon 0 de l'échelle de release) comme annulation universelle. La compatibilité de schéma entre les deux versions (expand-contract) relève de la responsabilité de l'application. Pour les releases qui CASSENT le schéma, utilisez plutôt le blue/green : forkez le dépôt (instantané, données incluses), pointez le Service du fork ici avec un poids de 100, puis effectuez un rollback en redémarrant le parent intact ; les écritures effectuées après le basculement n'existent que dans la nouvelle copie, la fenêtre de rollback est donc une décision de politique.
status
Afficher les ensembles canary gérés : poids, images, Service stable et le dernier snapshot d'annulation de release.
rdc repo canary status <ref>
weight
Modifier le pourcentage de trafic routé vers un canary. Prend d'abord un nouveau snapshot de groupe d'annulation de release, puis réapplique l'overlay ; le proxy prend en compte la nouvelle répartition à son prochain cycle de rafraîchissement. Un poids de 100 envoie tout le trafic vers la nouvelle version (le basculement blue/green).
rdc repo canary weight <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--weight <percent> | Pourcentage de trafic routé vers le canary (entier 0-100 ; 0 = invisible, 100 = bascule complète) | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
remove
Supprimer le Deployment et le Service d'un canary (limité par labels) ; le Service stable sert à nouveau 100 %. Les snapshots d'annulation de release sont conservés ; nettoyez-les avec les commandes de snapshot du datastore.
rdc repo canary remove <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
create
Faire tourner une NOUVELLE image à côté de la stable et lui envoyer un pourcentage du trafic en direct. Le canary partage les données en production du dépôt (pas de fork), la compatibilité de schéma entre les deux versions relève donc de la responsabilité de l'application. Un snapshot de groupe des datastores du cluster est pris d'abord, comme annulation.
rdc repo canary create <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--image <image> | Nouvelle image exécutée par le Deployment du canary (sur les données de production partagées) | Oui | - |
--port <port> | Port sur lequel l'application écoute (doit correspondre au Service stable) | Oui | - |
--weight <percent> | Pourcentage de trafic routé vers le canary (entier 0-100 ; 0 = invisible, 100 = bascule complète) | Oui | - |
--service <name> | Service stable avec lequel répartir le trafic (par défaut : le nom du dépôt) | Non | - |
--replicas <n> | Nombre de répliques du Deployment canary (par défaut : 1) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.18 resize
Redimensionner un dépôt hors ligne (supporte l'expansion et la réduction)
rdc repo resize <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--size <size> | Nouvelle taille du dépôt (ex. 10G, 100G, 1T) | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.19 expand
Étendre un dépôt monté en ligne (sans interruption)
rdc repo expand <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--size <size> | Nouvelle taille du dépôt (ex. 10G, 100G, 1T) | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.20 trim
Récupère l'espace du pool de datastore depuis les dépôts montés (en ligne, sans interruption). Les blocs supprimés dans les dépôts sont rendus au pool via fstrim. Sans réf, traite tous les dépôts montés sur -m ainsi que le datastore lui-même. fstrim est ignoré pour les dépôts en cours de sauvegarde ; la récupération --docker s'exécute quand même
rdc repo trim [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--docker | Libérer l'espace Docker (conteneurs arrêtés, images orphelines, cache de build) ; s'exécute même pendant un instantané de sauvegarde actif | Non | - |
--docker-volumes | Supprimer également les volumes Docker inutilisés | Non | - |
--report-only | Afficher l'état des discards et l'estimation récupérable sans rien modifier | Non | - |
-m, --machine <name> | Nom de la machine cible | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.21 policy
Gère la politique de taille automatique appliquée par le mainteneur de stockage de la machine : agrandit le quota d'un dépôt en ligne quand il se remplit (jamais au-delà de max-quota, jamais quand le pool est bas) et lance des trims planifiés. Il n'y a pas de réduction automatique ; utilisez 'repo resize' pour cela. Sans réf, la politique par défaut à l'échelle de la machine sur -m est visée
set
Définit des champs de la politique de taille. Seuls les drapeaux passés sont modifiés ; les autres champs conservent leurs valeurs. Activer l'auto-agrandissement exige --max-quota : le plafond est votre consentement explicite au surprovisionnement du pool
rdc repo policy set [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--auto-grow <bool> | Activer l'agrandissement automatique du quota en ligne (true/false) | Non | - |
--max-quota <size> | Plafond de l'auto-agrandissement (ex. 200G) ; requis pour l'auto-agrandissement | Non | - |
--grow-threshold <percent> | % d'occupation du système de fichiers déclenchant un agrandissement (défaut 85) | Non | - |
--grow-step <step> | Croissance par étape : absolue (10G) ou pourcentage du quota (20%) | Non | - |
--auto-trim <bool> | Activer le trim planifié (true/false) | Non | - |
--trim-interval <hours> | Heures minimales entre trims automatiques (défaut 24) | Non | - |
-m, --machine <name> | Nom de la machine cible | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
get
Affiche le défaut machine enregistré, la surcharge du dépôt (avec une réf), et la politique effective fusionnée appliquée par le mainteneur
rdc repo policy get [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.22 push
Pousser un dépôt vers un distant (machine ou stockage). Le type de cible est détecté automatiquement depuis la configuration. Pour un transfert machine-à-machine, l'image chiffrée du dépôt est copiée avec le MÊME GUID — c'est une sauvegarde/migration, pas un fork. Pour créer un fork indépendant, utilisez d'abord 'repo fork', puis push. Une copie poussée atterrit comme un ARTEFACT de sauvegarde : démarrez-le sur la cible avec 'backup restore <ref> --as <name> -m <target> --up'
rdc repo push <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--to <remote> | Nom de la machine ou du stockage de destination (détecté automatiquement depuis la configuration) | Non | - |
--to-machine <machine> | — | Non | - |
--provision <provider> | Provisionner automatiquement la machine cible via le fournisseur cloud si elle n'existe pas | Non | - |
--checkpoint | Créer un checkpoint CRIU avant la sauvegarde (capture l'état de la mémoire des processus pour la migration à chaud) | Non | - |
--force | Forcer l'écrasement de la sauvegarde existante | Non | - |
-w, --watch | Surveiller les modifications | Non | - |
--bwlimit <limit> | Limite de bande passante pour le transfert rsync (ex : "6M", "10M") | Non | - |
--delta-base <guid> | GUID de base immuable présent à l'identique sur les deux machines ; ne transférer que les blocs modifiés (cible machine). Omettre pour une base automatique sans intervention | Non | - |
--strategy <strategy> | Stratégie de delta par blocs lors de l'utilisation d'une base de delta : auto, physical ou shared | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.23 pull
Tirer un dépôt depuis un distant (machine ou stockage). Omettre le nom pour tirer tous les dépôts. Le type de source est détecté automatiquement depuis la configuration. Utilisez --up pour déployer après le pull
rdc repo pull <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--from <remote> | Nom de la machine ou du stockage source (détecté automatiquement depuis la configuration) | Non | - |
--from-machine <machine> | — | Non | - |
--force | Forcer l'écrasement du dépôt existant | Non | - |
--up | Après le pull, monter et déployer le dépôt sur cette machine | Non | - |
-w, --watch | Surveiller les modifications | Non | - |
--bwlimit <limit> | Limite de bande passante pour le transfert rsync (ex : "6M", "10M") | Non | - |
--delta-base <guid> | GUID de base immuable présent à l'identique sur les deux machines ; ne recevoir que les blocs modifiés (source machine) | Non | - |
--strategy <strategy> | Stratégie de delta par blocs lors de l'utilisation d'une base de delta : auto, physical ou shared | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.24 migrate
Migrer à chaud un dépôt d'une machine à une autre avec un temps d'arrêt minimal. rsync en deux phases : transfert en masse pendant le fonctionnement, puis brève pause pour la synchronisation delta. Déplace tout le dépôt (le routage est repointé vers le nouvel emplacement) et, une fois le déplacement réussi, supprime les images source (utilisez --keep-source pour les conserver). Prend en charge le checkpoint CRIU pour la migration de l'état mémoire des processus et l'auto-provisionnement des machines cibles
rdc repo migrate <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--to <place> | Machine ou cluster de destination | Oui | - |
--provision <provider> | Provisionnement automatique de la cible via un fournisseur cloud (ex : hetzner, linode) | Non | - |
--bwlimit <limit> | Limite de bande passante pour le transfert rsync (ex : 10M) | Non | - |
--checkpoint | Migration en direct CRIU : capturer et restaurer l'état de la mémoire des processus | Non | - |
--delta-base <guid> | GUID de base immuable pour le delta de bascule (avancé ; par défaut, la base de la phase 1) | Non | - |
--strategy <strategy> | Stratégie de delta par blocs pour la bascule : auto, physical ou shared | Non | - |
--skip-dns | Ignorer le changement des enregistrements DNS après la migration | Non | - |
--keep-source | Conserver les images source après un déplacement réussi (elles sont supprimées par défaut ; les copies restantes ne sont adressables par aucun enregistrement de configuration et reconcile les signale comme égarées) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.25 sync
Synchroniser les dépôts et fichiers (push/pull en masse, transfert de fichiers)
upload
Envoyer des fichiers vers un dépôt
rdc repo sync upload <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--local <paths...> | Un ou plusieurs chemins locaux de fichier ou de répertoire (par défaut : répertoire actuel) | Non | - |
--remote <path> | Chemin du sous-répertoire distant dans le dépôt | Non | - |
--remote-file <path> | Chemin unique d'un fichier distant (relatif à la racine du dépôt) comme cible du téléversement. Mutuellement exclusif avec --remote. | Non | - |
--mirror | Mode miroir - supprimer les fichiers distants non présents localement | Non | - |
--verify | Vérifier les fichiers à l'aide de sommes de contrôle après synchronisation | Non | - |
--confirm | Aperçu des modifications et demande de confirmation avant synchronisation | Non | - |
--exclude <patterns...> | Motifs à exclure de la synchronisation | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
download
Télécharger des fichiers depuis un dépôt
rdc repo sync download <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--local <path> | Chemin du répertoire local (par défaut : répertoire actuel) | Non | - |
--remote <path> | Chemin du sous-répertoire distant dans le dépôt | Non | - |
--remote-file <path> | Chemin d'un fichier distant dans le dépôt (alternative à --remote pour les transferts de fichier unique) | Non | - |
--mirror | Mode miroir - supprimer les fichiers locaux non présents à distance | Non | - |
--verify | Vérifier les fichiers à l'aide de sommes de contrôle après synchronisation | Non | - |
--confirm | Aperçu des modifications et demande de confirmation avant synchronisation | Non | - |
--exclude <patterns...> | Motifs à exclure de la synchronisation | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
status
Vérifier l'état de synchronisation et comparer les fichiers locaux/distants
rdc repo sync status <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--local <path> | Chemin du répertoire local (par défaut : répertoire actuel) | Non | - |
--remote <path> | Chemin du sous-répertoire distant dans le dépôt | Non | - |
--remote-file <path> | Chemin d'un fichier distant dans le dépôt (alternative à --remote pour les transferts de fichier unique) | Non | - |
6.26 tunnel
Créer un tunnel SSH de redirection de port vers le port d'un conteneur sur une machine distante. Détecte automatiquement le conteneur et le port lorsqu'il n'y a pas d'ambiguïté. Le tunnel reste ouvert jusqu'à ce que vous appuyiez sur Ctrl+C
rdc repo tunnel <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-c, --container <name> | Nom du conteneur (détecté automatiquement s'il n'y en a qu'un en cours d'exécution) | Non | - |
--port <port> | Port du conteneur distant à rediriger | Non | - |
--local <port> | Port local (par défaut identique au port distant) | Non | - |
--url-only | Afficher uniquement l'URL locale lorsque le tunnel est prêt (lisible par les scripts) | Non | - |
6.27 secret
Gérer les secrets par dépôt injectés au déploiement. Écriture seule : get ne renvoie que le digest (jamais la valeur en clair), set/unset exigent une correspondance de digest --current ou --rotate-secret. Deux modes de livraison : env (REDIACC_SECRET_<KEY>) et file (tmpfs à /var/run/rediacc/secrets/<networkId>/<KEY> via `secrets:` du compose). Les secrets n'entrent jamais dans l'image LUKS chiffrée ; les forks n'en héritent aucun.
get
Afficher le digest SHA-256 d'un secret. La valeur en clair n'est jamais renvoyée, par conception (écriture seule). Utilisez --current lors d'un set/unset ultérieur pour vérifier une valeur que vous connaissez déjà, ou effectuez une rotation via `set --rotate-secret`.
rdc repo secret get <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--key <KEY> | Clé secrète en UPPER_SNAKE_CASE (max 64 caractères). Sera exposée comme REDIACC_SECRET_<KEY> pour le mode env ou /run/secrets/<key> dans les conteneurs pour le mode file. | Oui | - |
list
Liste les clés et modes de secret (jamais les valeurs, jamais les digests).
rdc repo secret list <ref>
set
Définir ou écraser un secret. Les forks n'héritent pas ; définissez explicitement sur le fork. Dans un contexte d'agent, nécessite une correspondance de digest --current (style passwd).
rdc repo secret set <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--key <KEY> | Clé secrète en UPPER_SNAKE_CASE (max 64 caractères). Sera exposée comme REDIACC_SECRET_<KEY> pour le mode env ou /run/secrets/<key> dans les conteneurs pour le mode file. | Oui | - |
--value <value> | Valeur du secret. Passez `-` pour lire depuis stdin (évite l'exposition dans l'historique du shell). | Oui | - |
--mode <mode> | Mode de livraison : 'env' (visible dans l'environnement du conteneur, docker inspect) ou 'file' (fichier tmpfs, jamais dans env). Défaut : file. | Non | file |
--current <value> | Valeur en clair précédente (précondition de type passwd). Requise pour l'écrasement/la suppression ; mutuellement exclusive avec --rotate-secret. | Non | - |
--rotate-secret | Reconnaître la rotation ; ignorer la précondition --current (audité comme rotation). À utiliser lors d'une rotation intentionnelle sans vérifier la valeur précédente. | Non | - |
unset
Supprime un secret. Dans un contexte d'agent, nécessite une correspondance de digest --current.
rdc repo secret unset <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--key <KEY> | Clé secrète en UPPER_SNAKE_CASE (max 64 caractères). Sera exposée comme REDIACC_SECRET_<KEY> pour le mode env ou /run/secrets/<key> dans les conteneurs pour le mode file. | Oui | - |
--current <value> | Valeur en clair précédente (précondition de type passwd). Requise pour l'écrasement/la suppression ; mutuellement exclusive avec --rotate-secret. | Non | - |
--rotate-secret | Reconnaître la rotation ; ignorer la précondition --current (audité comme rotation). À utiliser lors d'une rotation intentionnelle sans vérifier la valeur précédente. | Non | - |
6.28 admin
Commandes d'administration et de maintenance des dépôts.
archive
Gestion comptable des enregistrements de dépôts archivés.
Lister les identifiants de dépôts archivés
rdc repo admin archive list
Supprimer définitivement tous les identifiants archivés
rdc repo admin archive purge [name] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-y, --yes | Ignorer l'invite de confirmation | Non | - |
Restaurer un identifiant de dépôt archivé
rdc repo admin archive restore <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--new-name <name> | Nouveau nom de la ressource | Non | - |
validate
Valider l'intégrité du dépôt
rdc repo admin validate <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
fsck
Valide les références (branches, HEAD) de la configuration CLI par rapport aux objets réellement présents sur une machine. Signale les références cassées (une référence pointant vers un objet manquant) et les commits orphelins (un commit immuable qu'aucune référence n'atteint). Lecture seule.
rdc repo admin fsck [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
ownership
Changer la propriété du répertoire du dépôt
rdc repo admin ownership <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--uid <uid> | UID du propriétaire (par défaut : 7111) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
autostart
Gérer le démarrage automatique des dépôts au démarrage
Activer le démarrage automatique pour un dépôt
rdc repo admin autostart enable [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
Désactiver le démarrage automatique pour un dépôt
rdc repo admin autostart disable [ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
Lister les dépôts avec le démarrage automatique activé
rdc repo admin autostart list [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
template
Appliquer un modèle à un dépôt
Lister tous les modèles de déploiement intégrés à la CLI
rdc repo admin template list
Applique un modèle à un dépôt. Utilisez un nom de modèle intégré (par ex. app-postgres) ou --file pour un modèle JSON personnalisé. Cycle de vie du Rediaccfile : up() démarre les conteneurs (pull des images, génération des configurations ici), down() les arrête. Rediaccfile minimal : up() { renet compose -- pull; renet compose -- up -d; } down() { renet compose -- down; }. IMPORTANT : le Rediaccfile DOIT utiliser 'renet compose' : 'docker compose' est rejeté. VARIABLES D'ENVIRONNEMENT : deux niveaux : (a) shell du Rediaccfile : ${SVCNAME_IP} (par ex. APP_IP), ${REDIACC_WORKING_DIR}, ${REDIACC_NETWORK_ID}. (b) à l'intérieur des conteneurs : renet injecte automatiquement les variables d'environnement SERVICE_IP et REDIACC_NETWORK_ID. La réécriture bind eBPF gère l'isolation IP de façon transparente, les applications peuvent donc se lier à 0.0.0.0 et le noyau la réécrit vers la bonne IP loopback. Les health checks peuvent utiliser localhost. network_mode:host est injecté et ports: est ignoré. STOCKAGE : les bind-mounts ${REDIACC_WORKING_DIR}/... et les volumes Docker nommés sont tous deux sûrs : la racine des données Docker se trouve dans le montage LUKS chiffré. POLITIQUE DE REDÉMARRAGE : les politiques de redémarrage sont sûres : renet les retire automatiquement pour la compatibilité CRIU et le watchdog gère la récupération. Compose : n'ajoutez PAS de network_mode ni de labels rediacc.* (renet les injecte). Multi-projet : placez chaque sous-projet dans son propre sous-répertoire avec son propre Rediaccfile : renet les découvre et les exécute automatiquement dans l'ordre. Routage HTTPS : (A) Auto-route (compatible fork, recommandé) : n'ajoutez PAS traefik.enable. Renet génère automatiquement https://{serviceName}.{repoName}.{machineName}.{baseDomain}. Ajoutez le label rediacc.service_port=<port> pour les ports différents de 80. Chaque fork obtient un domaine unique. (B) Labels Traefik (domaine personnalisé, PAS compatible fork) : traefik.enable=true, traefik.http.routers.<n>.rule=Host(`domain`), traefik.http.routers.<n>.entrypoints=websecure,websecure-v6, traefik.http.routers.<n>.tls.certresolver=letsencrypt, traefik.http.services.<n>.loadbalancer.server.port=<port>. Pour TCP/UDP : rediacc.tcp_ports=3306 / rediacc.udp_ports=53
rdc repo admin template apply <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--template <name> | Modèle à appliquer | Oui | - |
--file <path> | Chemin vers un fichier JSON de modèle personnalisé ({"version":"2","files":{"Rediaccfile":"...","docker-compose.yml":"..."}}) : remplace le nom du modèle intégré | Non | - |
--grand <name> | Nom du grand dépôt (résolution automatique vers le GUID) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.29 promote
Remplacer les données du dépôt principal par les données d'un fork. Le principal conserve son identité (GUID, networkId, domaines, démarrage automatique, chaîne de sauvegardes) mais obtient les données mises à jour du fork. Les anciennes données de production sont conservées comme fork de sauvegarde. Utilisation : tester la mise à niveau sur le fork → vérifier → prise de contrôle en production.
rdc repo promote <fork-ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
6.30 logs
Afficher les journaux applicatifs des conteneurs d'un dépôt. Les dépôts docker lisent depuis le démon Docker propre au dépôt ; les dépôts kubernetes lisent les journaux des pods dans le namespace du dépôt. Si le dépôt fait tourner plusieurs conteneurs, nommez celui voulu avec --container.
rdc repo logs <ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-c, --container <name> | Conteneur à lire (nécessaire seulement si le dépôt en fait tourner plusieurs) | Non | - |
-f, --follow | Continuer à diffuser les nouvelles lignes jusqu'à interruption | Non | - |
--lines <n> | Nombre de lignes d'historique à afficher (par défaut : 100) | Non | 100 |
--timestamps | Préfixer chaque ligne de son horodatage | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
6.31 exec
Exécuter une commande à l'intérieur d'un conteneur de dépôt. Le code de sortie propre de la commande est transmis tel quel, ce qui fonctionne donc dans les scripts et les conditions. Les dépôts docker l'exécutent via le démon Docker du dépôt ; les dépôts kubernetes l'exécutent dans le namespace du dépôt.
rdc repo exec <ref> <cmd...> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-c, --container <name> | Conteneur dans lequel exécuter (nécessaire seulement si le dépôt en fait tourner plusieurs) | Non | - |
-i, --interactive | Allouer un terminal (pour une commande qui en attend un) | Non | - |
-u, --user <user> | Utilisateur sous lequel exécuter la commande | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
7. Jobs détachés
Gérer les jobs détachés sur une machine : les lister, vérifier leur statut, rejouer ou suivre leurs journaux d'événements, en annuler un, ou nettoyer ceux qui sont terminés. Un job détaché s'exécute sous systemd sur la machine : il survit donc à une perte de connexion et peut être réattaché plus tard.
7.1 list
Lister les jobs détachés sur une machine, du plus récent au plus ancien
rdc job list [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
7.2 status
Afficher le statut d'un job détaché
rdc job status <job-id> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
7.3 logs
Rejouer ou suivre le journal d'événements d'un job détaché
rdc job logs <job-id> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
-f, --follow | Suivre le flux jusqu'à la fin du job | Non | - |
--since-line <n> | Reprendre après ce nombre de lignes (le nombre déjà reçu) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
7.4 cancel
Annuler un job détaché en cours d'exécution
rdc job cancel <job-id> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
-y, --yes | Ignorer l'invite de confirmation | Non | - |
7.5 gc
Supprimer les jobs terminés et leurs journaux
rdc job gc [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
--older-than <duration> | Nettoyer les jobs terminés il y a plus longtemps que cette valeur, en heures (par défaut : 168) | Non | - |
-y, --yes | Ignorer l'invite de confirmation | Non | - |
8. Sauvegarde et restauration
Gérer les stratégies de sauvegarde, leurs exécutions planifiées et les artefacts qu'elles produisent : déclarez une stratégie pour un dépôt, exécutez-la ou restaurez-la à la demande, et inspectez les archives qu'elle a écrites sur un point de terminaison de stockage.
8.1 schedule
Déployer la planification de sauvegarde sur une machine distante (minuteries systemd)
rdc backup schedule [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Oui | - |
--dry-run | Prévisualiser les unités générées sans déployer | Non | - |
--force | Continuer même si une sauvegarde est en cours (la nouvelle unité s'applique au prochain tick du minuteur ; l'invocation en cours conserve son ancienne unité) | Non | - |
--reset-failed | Effacer l'état d'échec des services modifiés après un déploiement réussi (désactivé par défaut, préserve le signal d'échec) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
8.2 cancel
Annuler une sauvegarde en cours sur une machine distante
rdc backup cancel [strategy] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
8.3 list
Lister les artefacts de sauvegarde sur une machine ou un stockage.
rdc backup list [artifact-ref] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Non | - |
--storage <name> | Lister les artefacts sur ce point de terminaison de stockage | Non | - |
--path <subdir> | Sous-répertoire dans la racine du stockage. Si omis, hot/ et cold/ sont listés et fusionnés. | Non | - |
-w, --watch | Surveiller les modifications | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
8.4 restore
Transformer un artefact de sauvegarde en dépôt actif. Le placement est indiqué ici.
rdc backup restore <artifact-ref> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--as <name> | Nom du dépôt restauré (par défaut : le nom de l'artefact) | Non | - |
-m, --machine <name> | Nom de la machine | Non | - |
--datastore <name> | Restaurer dans ce datastore nommé (sa machine attachée l'héberge) | Non | - |
--up | Déployer le dépôt restauré après le transfert | Non | - |
--health-window <seconds> | Fenêtre totale du health-gate en secondes (par défaut 300) | Non | - |
--health-timeout <seconds> | Délai d'expiration par tentative de healthcheck en secondes (par défaut 30) | Non | - |
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
8.5 run
Déclencher une sauvegarde immédiatement sur une machine distante
rdc backup run [strategy] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Oui | - |
-w, --watch | Surveiller les modifications | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
8.6 status
Afficher l'état de sauvegarde et l'état du minuteur sur une machine distante
rdc backup status [strategy] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Oui | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
8.7 strategy
Gérer les stratégies de sauvegarde nommées (modes chaud/froid, destinations, planification)
set
Créer ou mettre à jour une stratégie de sauvegarde
rdc backup strategy set <strategy> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--destination <name> | Nom de la destination au sein de la stratégie | Non | - |
--storage <name> | Nom de la configuration de stockage (identifiants rclone) | Non | - |
--cron <expression> | Planification cron (ex. "0 * * * *" pour toutes les heures) | Non | - |
--mode <mode> | Mode de sauvegarde : "hot" (sans interruption) ou "cold" (arrêt, instantané, redémarrage) | Non | - |
--bwlimit <limit> | Limite de bande passante rclone (ex. "6M", "10M:off", "08:00,3M;22:00,10M") | Non | - |
--include <repos> | Sauvegarder uniquement ces repos (noms séparés par des virgules) | Non | - |
--exclude <repos> | Exclure ces repos de la sauvegarde (noms séparés par des virgules) | Non | - |
--folder <path> | Sous-dossier dans le bucket de stockage pour cette destination (ex. hot, cold) | Non | - |
--enable | Activer la stratégie ou la destination | Non | - |
--disable | Désactiver la stratégie ou la destination | Non | - |
bind
Associer une stratégie de sauvegarde à une machine pour y déployer sa planification
rdc backup strategy bind <strategy> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
unbind
Dissocier une stratégie de sauvegarde d'une machine
rdc backup strategy unbind <strategy> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine cible | Oui | - |
remove
Supprimer une stratégie de sauvegarde ou une destination
rdc backup strategy remove <strategy> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--destination <name> | Supprimer uniquement cette destination (conserve les autres destinations) | Non | - |
list
Lister toutes les stratégies de sauvegarde
rdc backup strategy list
show
Afficher les détails de la stratégie de sauvegarde
rdc backup strategy show [strategy]
9. Gestion du Stockage
Gérer les points de terminaison de stockage de sauvegarde externes (S3 et autres cibles compatibles rclone) : les enregistrer et les supprimer, lister ce qui est enregistré, parcourir les artefacts qu'ils contiennent, et nettoyer les sauvegardes orphelines.
9.1 list
Lister les points de terminaison de stockage. Indiquez un nom pour le détail complet.
rdc storage list [name] [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--reveal | Afficher la configuration du stockage en clair (TTY interactif uniquement ; audité) | Non | - |
9.2 browse
Parcourir les fichiers dans un système de stockage
rdc storage browse <storage> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--path <subpath> | Chemin du sous-répertoire à lister | Non | “ |
9.3 prune
Supprimer les sauvegardes orphelines du stockage qui ne sont plus dans aucune configuration. Sécurisé multi-configuration avec protection par période de grâce.
rdc storage prune <storage> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Machine exécutrice : exécute les appels list/delete de rclone vers le stockage. Requise car les clients ne sont pas censés avoir rclone installé localement ; les identifiants de stockage proviennent toujours de votre configuration locale. | Oui | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
--force | Ignorer les invites de confirmation | Non | - |
--force-delete-mounted | Remplace la vérification de sécurité de montage et supprime les sauvegardes cloud même si le GUID source est actuellement monté ou a un conteneur en cours sur la machine exécutrice. Distinct de --force (qui ne remplace que la période de grâce pour les dépôts archivés). | Non | - |
--grace-days <days> | Période de grâce en jours pour les dépôts récemment archivés (par défaut : 7) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
--skip-router-restart | Ne pas redémarrer le serveur de routes après la mise à jour du binaire | Non | - |
9.4 add
Enregistrer un point de terminaison de stockage.
rdc storage add <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--vault <json> | Contenu du coffre en tant que chaîne JSON | Oui | - |
9.5 import
Importer des stockages depuis un fichier de configuration rclone
rdc storage import <file> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--name <name> | Importer uniquement cette section nommée | Non | - |
9.6 remove
Supprimer un point de terminaison de stockage de la configuration.
rdc storage remove <name> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-y, --yes | Ignorer l'invite de confirmation | Non | - |
--dry-run | Afficher les actions prévues sans effectuer de modifications | Non | - |
10. Intégration VS Code
Ouvrir VS Code Remote SSH vers une machine ou un dépôt
10.1 connect
Ouvrir VS Code sur une machine ou à l'intérieur d'un dépôt.
rdc vscode connect <target> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-f, --folder <path> | Chemin du dossier distant à ouvrir | Non | - |
--url-only | Afficher l'URI VS Code au lieu de le lancer | Non | - |
-n, --new-window | Ouvrir dans une nouvelle fenêtre VS Code | Non | - |
--skip-env-setup | Ignorer la configuration de l'environnement distant | Non | - |
--insiders | Utiliser les paramètres VS Code Insiders | Non | - |
--browser | Servir VS Code navigateur depuis le sandbox du dépôt (aucun VS Code local nécessaire) | Non | - |
--no-open | Afficher l'URL sans ouvrir le navigateur local | Non | - |
--local <port> | Port local (par défaut identique au port distant) | Non | - |
--server-provider <id> | Implémentation du serveur VS Code navigateur (openvscode, code-server) | Non | - |
--server-archive <file> | Chemin de l'archive du serveur pré-installée sur la machine (installations hors ligne) | Non | - |
10.2 list
Lister les connexions SSH VS Code configurées
rdc vscode list
10.3 cleanup
Supprimer les configurations SSH VS Code
rdc vscode cleanup [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--all | Supprimer toutes les configurations SSH rediacc | Non | - |
-c, --connection <name> | Supprimer une connexion spécifique | Non | - |
10.4 check
Vérifier l'installation et la configuration de VS Code
rdc vscode check [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--insiders | Utiliser les paramètres VS Code Insiders | Non | - |
10.5 serve
Gérer le serveur VS Code navigateur dans le sandbox
status
Afficher si le serveur VS Code navigateur est en cours d'exécution
rdc vscode serve status <target> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--server-provider <id> | Implémentation du serveur VS Code navigateur (openvscode, code-server) | Non | - |
stop
Arrêter le serveur VS Code navigateur
rdc vscode serve stop <target> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--server-provider <id> | Implémentation du serveur VS Code navigateur (openvscode, code-server) | Non | - |
11. Accès Terminal SSH
Ouvrir un terminal SSH vers une machine ou un dépôt. La cible est un nom de machine ou une réf de dépôt, et le contexte du dépôt (DOCKER_HOST, répertoire de travail, environnement) est configuré automatiquement. Utilisez `-c` pour exécuter une commande unique de façon non interactive. Pour les journaux de conteneur ou une commande ponctuelle dans un conteneur, utilisez `repo logs` et `repo exec`. Pour VS Code, utilisez `vscode`.
11.1 connect
Ouvrir un shell sur une machine, ou à l'intérieur d'un dépôt avec son Docker configuré.
rdc term connect <target> [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-c, --command <cmd> | Exécuter une commande au lieu d'un shell interactif | Non | - |
--external | Forcer le lancement dans une fenêtre de terminal externe | Non | - |
--reset-home | Réinitialiser la couche de répertoire personnel par dépôt pour un nouveau départ | Non | - |
12. Commandes Rapides (Raccourcis)
12.1 run
Exécuter une fonction (raccourci pour : queue create)
rdc run
12.2 trace
Tracer une tâche (raccourci pour : queue trace)
rdc trace
12.3 cancel
Annuler une tâche (raccourci pour : queue cancel)
rdc cancel
12.4 retry
Réessayer une tâche échouée (raccourci pour : queue retry)
rdc retry
13. Gestion des Abonnements
Gérer les licences et les jetons d'abonnement. Connectez-vous avec login, inspectez avec status, réémettez les licences avec refresh.
13.1 login
S’authentifier avec un jeton API du portail web
rdc subscription login [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-t, --token <token> | Jeton API (rdt_...) | Non | - |
--server <url> | URL du serveur de compte | Non | - |
13.2 logout
Supprimer le jeton d'abonnement stocké
rdc subscription logout
13.3 status
Afficher l'abonnement et l'état des licences pour une machine.
rdc subscription status [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Non | - |
13.4 refresh
Actualiser les licences depuis le serveur de compte.
rdc subscription refresh [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-m, --machine <name> | Nom de la machine | Non | - |
--repo <ref> | Réf de dépôt : nom, ou nom:tag, éventuellement avec @machine (par exemple shop ou shop:test) | Non | - |
14. Mises à jour CLI
Vérifier et appliquer les mises à jour du CLI
rdc update [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--force | Forcer la mise à jour même si déjà à jour | Non | - |
--check-only | Vérifier les mises à jour sans télécharger | Non | - |
--rollback | Revenir à la version précédente | Non | - |
--status | Afficher l'état et les diagnostics de la mise à jour automatique | Non | - |
--channel <channel> | Définir le canal de publication (stable ou edge) | Non | - |
15. Crédits tiers
Affiche les composants tiers embarqués avec rdc : les binaires que renet intègre et redistribue (CRIU, rsync, rclone), le runtime Node.js embarqué, et les dépendances npm embarquées. Indique les versions, les identifiants de licence SPDX, et les URLs d'archives sources à version exacte requises pour la conformité GPL. Utilisez --licenses pour afficher le texte complet THIRD_PARTY_LICENSES fourni avec les builds de release.
rdc credits [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--licenses | Afficher le texte complet THIRD_PARTY_LICENSES fourni avec les builds de release | Non | - |
16. Diagnostics système
Diagnostiquer l'environnement CLI et l'intégration renet
rdc doctor
17. Opérations VM Locales
Provisionnement et gestion de VM locales via KVM/QEMU/Hyper-V (plateforme détectée automatiquement). Pas pour les machines distantes — utilisez `machine` pour celles-ci. Sous-commandes clés : up (démarrer les VM), down (arrêter), status (lister les VM en cours), ssh (se connecter à une VM), setup (installer les prérequis), check (vérifier que l'hôte est prêt).
17.1 up
Provisionner un cluster VM localement
rdc ops up [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--force | Forcer le redémarrage de toutes les VM | Non | - |
--parallel | Créer les VM en parallèle | Non | - |
--basic | Cluster minimal (pont + 1 worker) | Non | - |
--lite | Ignorer le provisionnement des VM (statut uniquement) | Non | - |
--skip-orchestration | Ignorer l'orchestration du cluster | Non | - |
--backend <backend> | Backend de virtualisation (kvm|qemu, détection automatique) | Non | - |
--os <name> | Système d'exploitation de la VM (ex. ubuntu-24.04, debian-12) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
17.2 down
Détruire le cluster VM
rdc ops down [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--backend <backend> | Backend de virtualisation (kvm|qemu, détection automatique) | Non | - |
--debug | Activer la sortie de débogage (mode local) | Non | - |
17.3 status
Afficher l'état du cluster VM
rdc ops status [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--backend <backend> | Backend de virtualisation (kvm|qemu, détection automatique) | Non | - |
17.4 ssh
Se connecter en SSH à une VM
rdc ops ssh [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--vm-id <id> | ID de la machine virtuelle | Oui | - |
-c, --command <cmd> | Exécuter une commande au lieu d'un shell interactif | Non | - |
--backend <backend> | Backend de virtualisation (kvm|qemu, détection automatique) | Non | - |
--user <user> | Nom d'utilisateur SSH pour la connexion à la VM | Non | - |
17.5 setup
Installer les prérequis de virtualisation
rdc ops setup [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
--debug | Activer la sortie de débogage (mode local) | Non | - |
17.6 check
Vérifier les prérequis de virtualisation
rdc ops check
18. Service exécuteur
Exécute ce processus en tant qu'exécuteur afin que les clients puissent lancer des commandes via lui au lieu de se connecter eux-mêmes en SSH
rdc serve [options]
| Option | Libellé | Requis | Défaut |
|---|---|---|---|
-p, --port <port> | Port sur lequel écouter | Non | 8080 |
--host <host> | Adresse à laquelle se lier | Non | 0.0.0.0 |
--mode <mode> | Emplacement : daemon (hôte du client) ou container | Non | daemon |
Messages d'Erreur Courants
Lorsque quelque chose ne va pas, la CLI fournit des messages d'erreur clairs :
| Erreur | Signification |
|---|---|
| L'authentification est requise. Exécutez : rdc subscription login | Vous devez d'abord vous connecter |
| Aucune configuration active. Créez-en une avec : rdc config init <name> | Aucune configuration active — créez-en une avec `rdc config init` |
| Permission refusée | Votre compte ne dispose pas des permissions requises |
| Le nom de la machine est requis. Utilisez --machine <name> | Spécifiez une machine avec `--machine` ou définissez un défaut de contexte |
| Le nom de l'équipe est requis. Utilisez --team ou définissez une valeur par défaut avec : rdc config set team <name> | Spécifiez une équipe avec `--team` ou définissez un défaut de contexte |
| Le nom de la région est requis. Utilisez --region ou définissez une valeur par défaut avec : rdc config set region <name> | Spécifiez une région avec `--region` ou définissez un défaut de contexte |
Formats de Sortie
Toutes les commandes list/get prennent en charge plusieurs formats de sortie via `--output` :
rdc machine list --output json
rdc machine list --output yaml
rdc machine list --output csv
rdc machine list --output table # default
Cela facilite l'intégration de la CLI Rediacc dans les scripts, les pipelines CI/CD et les workflows d'automatisation.