sng kind
Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.
Le groupe sng kind manipule les manifestes de l'état désiré par kind et par nom, quel que
soit le kind. TYPE est le kind du manifeste (App, SSMSecret, RegistryRepository…),
insensible à la casse. Elles exigent une session de tenant.
Ces commandes ne sont plus disponibles à la racine (sng get, sng list, sng edit, sng delete et sng update
ont été retirées, sans alias) : utilisez sng kind …. Pour modifier un manifeste, sng kind edit ou
réappliquez votre fichier avec sng apply ; pour supprimer ce que décrit un fichier,
sng destroy.
Les kinds qui ont une commande dédiée (sng app, sng secret, sng cdn, …) offrent en plus
des opérations et une lecture formatée du statut ; ces commandes génériques restent valables
pour eux.
sng kind list
sng kind list TYPE
sng kind get TYPE # alias
Liste les manifestes d'un kind dans le tenant courant.
sng kind list App
NAME UPDATED
api 2026-10-06T14:02:11Z
web 2026-10-07T08:41:57Z
Sans résultat : no App.
--json : {"kind":"App","items":[{"name":"web","updated_at":"…",…}]}.
sng kind get
sng kind get TYPE NAME
Affiche le manifeste tel qu'il est enregistré dans l'état désiré, c'est-à-dire ce que vous avez appliqué, suivi de l'état observé de la ressource en commentaires YAML. La sortie reste un manifeste valide : vous pouvez la rediriger dans un fichier et la réappliquer.
sng kind get RegistryAccessKey ci
apiVersion: registry.stackngo.io/v1alpha1
kind: RegistryAccessKey
metadata:
name: ci
spec:
repositories: [web]
actions: [pull, push]
# status:
# TYPE STATUS REASON MESSAGE
# Ready True Reconciled …
# Synced True Reconciled …
L'état se lit ainsi :
| Ce que vous voyez | Signification |
|---|---|
# status: suivi d'un tableau TYPE, STATUS, REASON, MESSAGE | Les conditions de la ressource : voir Conditions et raisons |
# status: suivi de champs (phase: Active, version: 3…) | Le kind n'a pas de conditions : son état est affiché tel quel |
# status: not observed yet (the resource is not deployed yet) | La ressource n'est pas encore déployée, ou son état est momentanément indisponible : relancez dans un instant. Pour les kinds dont l'état n'est pas encore lisible ainsi (voir ci-dessous), cette ligne apparaît toujours |
L'état est affiché pour App, SSMSecret, CDNSite, RegistryRepository, RegistryAccessKey,
IAMApplication, IAMRole et IAMGroup. Pour les autres kinds (Monitor,
NotificationChannel, StatusPage, DNSZone, DNSRecord, IAMPolicy…), il n'est pas
encore lisible par sng kind get : utilisez la commande du kind (tableau ci-dessous) ou, pour la
supervision, votre page de statut.
--json : {"kind":"RegistryAccessKey","name":"ci","content":"<yaml>","status":{"conditions":[…], …}, …} ;
status est absent tant que la ressource n'est pas déployée, et pour les kinds sans état
lisible. Même réponse pour l'API : GET /v1/resources/{kind}/{name}.
Pour un résumé plus lisible de certains kinds, utilisez leur commande :
| Kind | Commande |
|---|---|
App | sng app describe NAME |
SSMSecret | sng secret describe NAME |
DNSZone, DNSRecord | sng dns zone describe DOMAIN, sng dns record describe ID |
CDNSite | sng cdn list |
IAMPolicy, IAMOIDCTrust | sng tenant policy get NAME, sng tenant oidc get NAME |
Monitor | sng monitor list |
Pour les autres kinds (RegistryRepository, RegistryAccessKey, IAMApplication, StatusPage…), le
status n'est pas encore lisible par la CLI ni par l'API. Une lecture générique de l'état est
prévue.
sng kind edit
sng kind edit TYPE NAME
Télécharge le manifeste, l'ouvre dans votre éditeur ($EDITOR, sinon $VISUAL, sinon
nano), puis réapplique le fichier modifié.
edit applied: App/web (usually applied within a minute)
Règles :
- Si le fichier n'a pas changé :
no changes, rien n'est envoyé. - Le fichier doit contenir un seul document, du même
kindet du mêmemetadata.name. Pour renommer, créez le nouveau et supprimez l'ancien. - La validation est celle de
apply: une erreur de schéma annule l'édition et rien n'est écrit. Relancezsng editpour corriger.
sng kind delete
sng kind delete TYPE NAME [-y]
Supprime un manifeste de l'état désiré. La plateforme supprime ensuite ce qu'il avait produit,
selon la politique de suppression
du kind (les volumes d'une App sont conservés, un RegistryRepository en Block refuse tant
qu'il contient des images, un SSMSecret supprime le secret, sans restauration possible).
⚠ Suppression définitive du App "web".
Tapez « oui » pour confirmer : oui
deleted: App/web
| Flag | Effet |
|---|---|
-y, --yes | Pas de confirmation interactive. Obligatoire hors terminal (script, CI) |
Hors terminal sans -y : confirmation requise : relancez avec --yes ou depuis un terminal interactif.
Erreurs typiques
| Message | Cause |
|---|---|
not found | Pas de manifeste de ce kind et de ce nom dans le tenant courant : vérifiez sng config show et sng kind list TYPE |
forbidden (no policy of this tenant allows it: see sng tenant policy list) | Il manque deploy:list (list), deploy:read (get), deploy:write (edit) ou deploy:delete (delete) |
kind/name must not change … | Le fichier édité a changé de kind ou de metadata.name |
edit expects exactly 1 YAML document, found N | Le fichier édité contient plusieurs documents |
N enregistrement(s) utilisent encore la zone "…", les supprimer d'abord (409) | sng kind delete DNSZone sur une zone qui a encore des DNSRecord : supprimez-les d'abord (DNSZone) |