Home

Awesome

Library at the core of Gantree

Gantree Library

About

Substrate is built on the core belief that the future will be multi-chain.

In the past, setting up and managing blockchain networks required an understanding of a multitude of concepts which may have inhibited end users from experimenting with them.

With the assistance of funding from the Web3 Foundation, Flex Dapps is building a suite of technologies which will enable both power users and those less versed to create and manage substrate-powered parachain networks via rapid spin-up and tear-down of self-managed or cloud-hosted machines.

Docker Image

If you would rather install dependencies automatically in a container, a Docker image is available here:

Requirements

1 - Application Requirements

When installed locally, Gantree-lib requires the following application dependencies:

REQUIREMENTVERSIONNOTES
NodeJS>=10.15.2Recommended install method: nvm
Ansible>=2.9.4Recommended install method: pip
Git>=2.0Required by ansible-galaxy for installing roles

2 - Ansible Requirements

Install required ansible roles

curl https://raw.githubusercontent.com/gantree-io/gantree-requirements/master/ansible-galaxy/requirements.yml > ansible_requirements.yml
ansible-galaxy install -r ansible_requirements.yml

3 - Python Requirements

Please note: It is highly recommended to use a virtual environment such as pipenv or venv

Install required python packages

pip install ansible boto boto3 botocore requests google-auth

4 - Package Installation

Install gantree-lib

npm install gantree-lib -g

5 - Environment Requirements

Provider Credentials

For security reasons, credentials for infrastructure providers must be exported as environment variables.

PROVIDEREXPORTS REQUIREDNOTES
AWSAWS_ACCESS_KEY_ID</br>AWS_SECRET_ACCESS_KEYIAM account with EC2 and VPC write access.
GCPGCP_SERVICE_ACCOUNT_FILEpath to json file with credentials of the service account you want to use; this service account needs to have write access to compute and network resources
DigitalOceanDO_API_TOKENA DigitalOcean access token with read + write access
<p><img src="https://raw.githubusercontent.com/flex-dapps/gantree-misc/master/docs/img/Github_related_note_tag.png" alt="Related note tag" width="100"> You only need credentials for providers you wish to use </p>

SSH Credentials

SSH private key path can be defined using environment variable references in your Gantree configuration.

<p><img src="https://raw.githubusercontent.com/flex-dapps/gantree-misc/master/docs/img/Github_related_note_tag.png" alt="Related note tag" width="100"> Important: Key pairs must be PEM. </p>

Gantree Configuration

Gantree requires a configuration file (Gantree configuration) in order to guide creation, provisioning, modification and deletion of instances.

In essence, your Gantree configuration represents your desired infrastructure.

When creating your own Gantree configuration, it's recommended to create it based on one of the samples provided.

If your configuration is invalid, Gantree will try it's best to help you identify where misconfiguration has occurred.

Once you're ready to create your own Gantree configuration, please consult the links below.

Library Usage

CLI Usage

A CLI is available for gantree-lib as a separate package.

Please see gantree-cli for information