Référence

CLI · sihactl

La CLI d'exploitation. Tout ce que vous faites sur un nœud SiHA passe par elle, en mTLS.

sihactl est la seule voie d’accès. L’appliance n’a pas de shell ; la CLI dialogue avec apid sur :6443 et s’authentifie avec un certificat client. Votre identité provient d’un sihaconfig (~/.siha/config par défaut ; voir la PKI ci-dessous) :

sihactl --sihaconfig ~/.siha/config --addr <node-ip>:6443 <command>

Avec un contexte actif, --sihaconfig/--addr sont optionnels (le contexte fournit les deux). Un raccourci courant consiste à créer un alias du préfixe de connexion :

S="sihactl --sihaconfig ~/.siha/config --addr 192.168.5.10:6443"
$S health

Groupes de commandes et mode maintenance

sihactl --help organise les commandes en sept groupes : RESOURCES, CONFIG, OBSERVE, LIFECYCLE, NODE, ADOPTION & IDENTITY et OTHER. Les commandes marquées fonctionnent avant l’adoption (mode maintenance — avant que le mTLS soit actif). Toutes les autres nécessitent un nœud préalablement adopté :

✎ = works before adoption (maintenance mode). Everything else needs mTLS — run 'sihactl adopt' first.

Vérifier l’état du nœud

sihactl status --addr <node-ip>:6443    # vue d'ensemble : adopté / maintenance / injoignable

status sonde d’abord avec votre identité mTLS, puis retombe sur le canal de maintenance ouvert — elle répond donc à n’importe quel stade du cycle d’adoption. Utilisez-la pour confirmer qu’un nœud est adopté avant de lancer health ou config apply.

Ressources (verbes génériques)

Le CRUD est agnostique au type : les mêmes quatre verbes fonctionnent sur chaque type de ressource, résolus via le runtime. Les alias courts (if, acl, natlb, …) et -o yaml sont pris en charge.

$S get interfaces              # list interfaces (table)
$S get acl edge-in -o yaml     # one resource as YAML
$S edit interface ext          # open in $EDITOR, apply on save
$S watch interfaces            # stream changes
$S delete acl edge-in          # remove a resource
$S get rd                      # list every resource type served

Les types de statut appartenant à un contrôleur sont en lecture seule — le serveur rejette toute écriture les concernant.

Bundles de configuration

Appliquez et gérez des répertoires entiers de manifestes, avec validation inter-ressources et historique complet.

$S config validate -f siha-config/   # dry-run + cross-resource checks
$S config apply -f siha-config/       # apply the bundle
$S config history                     # list checkpoints
$S config diff <a> <b>                # diff two checkpoints
$S config save "before-bgp"           # named checkpoint
$S config rollback <checkpoint>       # revert to a checkpoint

Inspection du dataplane

$S vpp cli "show interface"           # run a raw vppctl command
$S vpp routes                         # the VPP FIB
$S vpp neighbors                      # ARP / ND table
$S vpp capture -i ext -f "tcp port 80"  # COSI-bound packet capture

vpp capture ne span que les interfaces déclarées comme ressources Interface — il résout chaque -i <id> contre l’état du runtime. Le span est un miroir de port physique : il ne décapsule jamais, alors utilisez un filtre -f pour affiner.

Santé, métriques & cycle de vie

$S health                    # node health summary
$S version                   # build + image version
$S perf show                 # a snapshot of live metrics
$S perf watch --id=ext       # stream metrics for a selector
$S upgrade <svc> --binary bin/<svc>   # hot-swap a daemon (debug image)
$S web                       # serve the embedded read-only UI

Identité & PKI (côté hôte)

Votre identité de flotte tient en deux fichiers (voir Prise en main) : un secret (la racine de CA, pour l’adoption) et un sihaconfig (votre certificat admin, pour le jour 2). Ceux-ci s’exécutent localement — aucun gRPC n’est impliqué :

sihactl gen secret prod -o siha-secret.yaml          # mint the fleet CA → secret
sihactl gen context prod --secret siha-secret.yaml \ # derive an admin sihaconfig context
  --endpoint <node-ip>:6443
sihactl context use prod                             # switch the active context

Pas sûr qu’un type existe ? sihactl get rd est la source de vérité — il liste chaque type de ressource, ses alias et ses colonnes, directement depuis le nœud.