Aller au contenu principal

Environnements et restauration

Disponible

Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.

La plateforme garde l'historique de tout ce que vous appliquez. Vous pouvez donc figer ce qui tourne pendant que vous préparez la suite, revenir à une version précédente, ou cloner un tenant. Pour tenir plusieurs environnements côte à côte (dev, prod…), créez un tenant par environnement.

Quel outil pour quel besoin​

BesoinCommande
Tenir plusieurs environnements côte à côteun tenant par environnement : sng tenant create acme-dev, puis sng tenant use acme-dev
Geler ce qui tourne pendant qu'on continue à préparersng env checkout <nom>
Libérer ce qui a été préparésng env refresh ou sng env checkout main
Revenir à une version figéesng env restore env/<tenant>/<nom>
Un nouvel environnement qui part d'une copie de l'existantsng env create-tenant <nouveau-tenant>

Un tenant par environnement​

Un environnement, c'est un tenant : chacun a ses propres manifestes, ses droits, son quota et ses domaines. Nommez-les acme-dev, acme-prod, acme-staging… (les noms dev, prod et staging seuls sont réservés, voir Noms de tenant).

sng tenant use acme-dev
sng apply ./manifests # appliqué dans acme-dev
sng tenant use acme-prod # passer à l'autre environnement
sng apply ./manifests # appliqué dans acme-prod

Ce que vous obtenez : App web dans acme-dev et App web dans acme-prod sont deux ressources distinctes, avec leurs propres droits et leur propre quota.

Pour partir d'une copie de l'existant, voir « Créer un tenant à partir d'un autre » plus bas.

Figer ce qui tourne​

Par défaut, chaque sng apply est mis en œuvre immédiatement. Pendant une période sensible (un lancement, une démonstration), vous pouvez figer le tenant : ce qui tourne ne change plus, mais vous continuez d'appliquer vos manifestes, qui sont enregistrés pour plus tard.

sng env checkout v2

La commande ne répond rien quand elle réussit ; le tenant est figé en moins d'une minute. Vérifiez :

sng env list
branch v2
follow-main false
  • branch vaut main quand le tenant n'est pas figé, ou <nom> quand il est figé sur la version <nom>.
  • follow-main vaut true quand la version figée rattrape automatiquement vos nouveaux apply (voir ci-dessous).

Libérer ce qui a été préparé​

Trois façons de reprendre :

sng env refresh # applique tout de suite ce qui a été préparé, puis continue de suivre
sng env checkout v2 --follow # reste sur v2, mais rattrape automatiquement chaque nouvel apply
sng env checkout main # revient au fonctionnement normal
CommandeEffet
checkout NAMEFige le tenant sur la version NAME, créée à partir de ce qui tourne si elle n'existe pas
checkout NAME --followIdem, mais la version avance d'elle-même à chaque nouvel apply
refreshRattrape immédiatement les apply en attente et active le suivi
checkout mainRevient au fonctionnement normal : chaque apply est mis en œuvre immédiatement

Ce que vous pouvez en attendre : chaque commande est effective en moins d'une minute.

Revenir à une version précédente​

Avant un changement risqué, figez la version qui fonctionne (sng env checkout stable). Si le changement se passe mal, revenez-y :

sng pull ./avant-restauration # garder une trace de ce que vous allez remplacer
sng env restore env/acme/stable

Ce que vous obtenez :

  • l'état désiré de votre tenant redevient exactement celui de la version indiquée ;
  • les manifestes ajoutés depuis sont supprimés, ceux modifiés reviennent en arrière ;
  • vos secrets ne sont pas touchés : ils ne font pas partie des manifestes.

REF est main (la dernière version appliquée) ou une version figée, sous la forme env/<tenant>/<nom> (<nom> est la branche affichée par sng env list).

Pas de confirmation

sng env restore agit immédiatement, sans demander de confirmation. Faites toujours un sng pull avant. L'action exige env:admin (policy admin).

Créer un tenant à partir d'un autre​

sng env create-tenant acme-staging # copie ce qui tourne
sng env create-tenant acme-demo env/acme/v2 # copie une version figée

Ce que vous obtenez : un nouveau tenant acme-staging (mêmes règles de nom que sng tenant create) qui contient les mêmes manifestes. Il démarre en tier 3XS, avec ses propres policies, et vous en êtes administrateur. Comme pour tout nouveau tenant, ouvrir une session peut demander une ou deux minutes.

Les secrets ne sont pas copiés : déclarez-les ou posez-les dans le nouveau tenant (Secrets).

Si ça ne marche pas​

MessageCauseCorrection
forbidden (no policy of this tenant allows it: see sng tenant policy list)Il manque env:write (checkout, refresh) ou env:admin (restore, create-tenant)Demander la policy à un administrateur du tenant
already on mainrefresh alors que le tenant n'est pas figéRien à faire : vos apply sont déjà mis en œuvre
invalid organization: …Nom du nouveau tenant invalide ou réservéVoir Noms de tenant
conflictLe nom du nouveau tenant est déjà prisEn choisir un autre
policies_pending juste après create-tenantLe nouveau tenant n'est pas encore prêtRéessayer dans une minute

Voir aussi​