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.3.0.tar.gz (18.8 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: pulumi_svmkit-0.3.0.tar.gz
  • Upload date:
  • Size: 18.8 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.3.0.tar.gz
Algorithm Hash digest
SHA256 2af279e8617d7e30ad84385b076f405d9d2fdc4172db25f1cff6cc91a7682631
MD5 908f1e2e8c94c439c70706875db75d23
BLAKE2b-256 09eec71aac0fbd3fc4d473b4eefd86f18bb14e2c10ea5bbe358c801904b72ccf

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