Skip to main content

SVMKit allows you to manage Solana SVM software components using infrastructure as code.

Project description

Pulumi SVMKit

The SVMKit Pulumi provider, located in the provider directory, facilitates infrastructure as code (IaC) for managing Solana nodes and related resources. With this provider, users can easily define, deploy, and manage their Solana infrastructure using Pulumi.

Development

This section provides all the necessary information to start contributing to or building SVMKit. It is divided into several subsections for clarity.

Requirement

Ensure the following tools are installed and available in your $PATH:

Build

$ make build install

This will build the pulumi provider, generate language sdks, and prepare host to execute the plugin locally.

Demo

You can find a catalog of example Pulumi projects to help you get started with SVMkit here.

$ cd examples/aws-agave-validator
$ yarn link @svmkit/pulumi-svmkit
$ yarn install
$ pulumi stack init demo
$ pulumi up

In this example, an Agave validator is installed on a machine via SSH, joining the Solana testnet.

Teams can add more validator clients to SVMkit, which will be accessible through the validator namespace in @svmkit/pulumi-svmkit.

new svmkit.validator.Agave(
  "validator",
  {
    connection,
    keyPairs: {
      identity: validatorKey.json,
      voteAccount: voteAccountKey.json,
    },
    flags: {
      entryPoint: [
        "entrypoint.testnet.solana.com:8001",
        "entrypoint2.testnet.solana.com:8001",
        "entrypoint3.testnet.solana.com:8001",
      ],
      knownValidator: [
        "5D1fNXzvv5NjV1ysLjirC4WY92RNsVH18vjmcszZd8on",
        "7XSY3MrYnK8vq693Rju17bbPkCN3Z7KvvfvJx4kdrsSY",
        "Ft5fbkqNa76vnsjYNwjDZUXoTWpP7VYm3mtsaQckQADN",
        "9QxCLckBiJc783jnMvXZubK4wH86Eqqvashtrwvcsgkv",
      ],
      expectedGenesisHash: "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY",
      useSnapshotArchivesAtStartup: "when-newest",
      rpcPort: 8899,
      privateRPC: true,
      onlyKnownRPC: true,
      dynamicPortRange: "8002-8020",
      gossipPort: 8001,
      rpcBindAddress: "0.0.0.0",
      walRecoveryMode: "skip_any_corrupted_record",
      limitLedgerSize: 50000000,
      blockProductionMethod: "central-scheduler",
      fullSnapshotIntervalSlots: 1000,
      noWaitForVoteToStartLeader: true,
    },
  },
  {
    dependsOn: [instance],
  }
);

Repository Structure

The repository is organized as follows:

Directory/File Description
provider/ Contains the build and implementation logic for the SVMkit Pulumi provider.
sdk/ Houses the generated code libraries.
examples/ Includes Pulumi programs for local testing and CI usage.
Makefile and README Standard project files for building and documentation.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulumi_svmkit-0.0.4.tar.gz (17.9 kB view details)

Uploaded Source

File details

Details for the file pulumi_svmkit-0.0.4.tar.gz.

File metadata

  • Download URL: pulumi_svmkit-0.0.4.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pulumi_svmkit-0.0.4.tar.gz
Algorithm Hash digest
SHA256 da394a604af82ad8467860b65a12ea5e3771a055793855abe26cd5556553a307
MD5 dff247220da2c20e73ff60bfd5f2d777
BLAKE2b-256 7696d50c288880af90a82d0a578e1f5c36bd8093ff121a09cbbc8c50876a4524

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page