rivet-create-cluster

Par rivet-dev · skills

Dimensionnez et créez un cluster Rivet Cloud pour une application via le serveur Rivet MCP, à partir d'une recommandation approuvée par l'utilisateur. À utiliser lorsqu'on vous demande de créer, provisionner ou configurer un cluster Rivet, ou de choisir son plan, sa région ou la taille de son runner.

npx skills add https://github.com/rivet-dev/skills --skill rivet-create-cluster

Créer un cluster Rivet

Lisez l'app, recommandez un setup, attendez l'approbation de l'utilisateur, puis créez le cluster. Chaque appel ci-dessous s'exécute comme du JavaScript en Code Mode via l'outil execute.

1. Estimer la charge de travail

Lisez la base de code : quels Rivet Actors elle définit ou dont elle a besoin, combien s'exécutent simultanément, combien d'état et de SQLite chacun conserve, à quel point c'est gourmand en écritures, et si c'est un prototype ou destiné à la production. Quand il n'y a pas encore d'app, dimensionnez pour un prototype. La documentation est à https://rivet.dev/docs.

2. Lire les options

const [pricing, regions] = await Promise.all([
    rivet.cloud.v2.plans.get(),
    rivet.cloud.v2.regions.available(),
]);
return { pricing, regions: regions.items };

Prenez chaque prix et limite de cette réponse. Ne citez jamais l'un de mémoire. Consultez references/plans.md pour comprendre ce que chaque champ signifie et comment les peser.

  • regions liste chaque cloud et region où un cluster peut être créé, avec sa ville.
  • pricing.plans est trié du moins cher au plus cher. Chaque plan est vendu dans les control_planes qu'il liste, du moins cher au plus cher, et limite les runners avec runners.
  • pricing.machine_types donne le vCPU, la mémoire, le disque et le débit d'écriture de chaque type de machine.
  • pricing.node_prices donne le prix mensuel d'un nœud runner par cloud et machine_type.
  • pricing.allowances donne l'egress et le stockage que chaque cluster inclut, et le prix pour dépasser ces limites.

3. Recommander un setup

Recommandez une valeur pour chaque paramètre, chacune avec une raison d'une ligne, et le coût mensuel total. Préférez le setup le moins cher qui convient.

  • Name (cluster) : lettres minuscules, chiffres et tirets, au maximum 63 caractères, ne commençant ni finissant par un tiret. Basez-le sur le nom de l'app.
  • cloud et region : la région la plus proche des utilisateurs de l'app, ou de l'utilisateur si c'est inconnu.
  • plan et control_plane.
  • machine_type des runners et node_count, dans les limites runners du plan.
  • IPs autorisées (cidr_allowlist, CIDRs séparés par des virgules) : 0.0.0.0/0 sauf si l'app n'est accessible que depuis des réseaux connus.

Nommez chaque choix comme le tableau de bord l'affiche, par son label, suivi de son ID, comme « Hobby (pro) » ou « R-10 (e2-small) ». L'utilisateur peut comparer la recommandation avec le formulaire de création du tableau de bord.

Le plan, le control plane et les runners peuvent tous être modifiés ultérieurement sans recréer le cluster. Le cloud et la région ne peuvent pas l'être.

4. Le créer après approbation

Affichez la recommandation et attendez l'approbation de l'utilisateur avant de rien créer. Un plan payant débite le moyen de paiement par défaut de l'organisation.

return await rivet.cloud.v2.clusters.upsert({
    cluster: "my-app",
    query: {
        cloud: "gcp",
        region: "us-east4",
        plan: "free",
        control_plane: "1x-e2-micro",
        cidr_allowlist: "0.0.0.0/0",
    },
});

Un 402 signifie que l'organisation n'a pas de moyen de paiement. Demandez à l'utilisateur d'ajouter une carte dans le tableau de bord, puis réessayez.

Le provisionnement prend plusieurs minutes. Appelez rivet.cloud.v2.clusters.get({ cluster }) jusqu'à ce que status.state soit ready, et rapportez status.message quand status.action_needed est true.

5. Déployer et dimensionner les runners

Déployez l'app avec la skill rivet-deploy-image. Le premier rollout crée le pool de runners default avec un nœud e2-small.

Quand la recommandation avait d'autres runners, définissez-les sur le pool default après ce premier rollout. Lisez d'abord le pool et renvoyez sa cidr_allowlist, car un upsert remplace intégralement les paramètres du pool.

const pool = await rivet.cloud.v2.runnerPools.get({ cluster: "my-app", region: "us-east4", pool: "default" });
return await rivet.cloud.v2.runnerPools.upsert({
    cluster: "my-app",
    region: "us-east4",
    pool: "default",
    body: {
        build_id: pool.build_id,
        cidr_allowlist: pool.cidr_allowlist,
        machine_type: "e2-medium",
        node_count: 2,
    },
});

Règles

  • Ne créez jamais un cluster ou modifiez un plan sans l'approbation de l'utilisateur pour ce setup exact.
  • Ne devinez pas un nom de cluster, region ou pool. Listez-les d'abord.
  • Le code qui appelle les actors de l'app se connecte avec le RIVET_ENDPOINT du cluster et un token admin. Cette skill ne peut pas lire le token. Demandez à l'utilisateur de copier le prompt de l'agent depuis la page du cluster dans le tableau de bord, qui contient les deux.

Skills similaires