Aller au contenu principal

sng kind

Disponible

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 voyezSignification
# status: suivi d'un tableau TYPE, STATUS, REASON, MESSAGELes 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 :

KindCommande
Appsng app describe NAME
SSMSecretsng secret describe NAME
DNSZone, DNSRecordsng dns zone describe DOMAIN, sng dns record describe ID
CDNSitesng cdn list
IAMPolicy, IAMOIDCTrustsng tenant policy get NAME, sng tenant oidc get NAME
Monitorsng monitor list
Limite connue

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 kind et du même metadata.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. Relancez sng edit pour 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
FlagEffet
-y, --yesPas de confirmation interactive. Obligatoire hors terminal (script, CI)

Hors terminal sans -y : confirmation requise : relancez avec --yes ou depuis un terminal interactif.

Erreurs typiques​

MessageCause
not foundPas 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 NLe 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)