Github repo: grid_client
grid_client is a client used for deploying workloads (VMs, ZDBs, k8s, etc.) on grid3.
apt-get install libtool
Warning: For Qanet, Please use @2.0.0 version
Warning: For Testnet, Please use @2.0.0 version
Warning: For Mainnet, Please use @2.0.0 version
yarn add @threefold/grid_client
git clone https://github.com/threefoldtech/tfgrid-sdk-ts.git
yarn install
Network environment: should select dev environment, qa, test or main.
Wallet connector: mnemonics (12 random words in a unique order) for your account to interact with the chain. create one
Store secret: it's any word that will be used for encrypting/decrypting the keys on threefold key-value store.
project name: it's a name to isolate the deployments into a namespace.
Note: only network can't be isolated, all project can see the same network.
Here's a simple example of creating a client instance with the default configurations.
or you can check more advanced configuration here.
async function getClient(): Promise<GridClient> {
const gridClient = new GridClient({
network: config.network,
mnemonic: config.mnemonic,
});
await gridClient.connect();
return gridClient;
}
You can set your configurations through environment variables or JSON config file as seen here.
With clientOptions being added, all urls are now configured. So, you can easily get the proxy URL for the used network simply by:
const proxyURL = gridClient.clientOptions.proxyURL;
for more details, check client options
Important Note: grid client should be disconnected after finishing its usage.
gridClient.disconnect();
This section assumes that you are using the client configuration from client_loader.ts
After creating a client instance you can call it in any of your scripts using getClient()
.
const grid3 = getClient();
And then you can use this client instance with any of the client modules.
For example to deploy a VM you will need to use the machines module with the client and it can be used as follows. you can find the full example script here.
To deploy a VM
await grid3.machines.deploy(vms);
To delete a VM
await grid3.machines.delete({ name: vms.name });
More example scripts can be found here
Before Running the scripts make sure you have a tsconfig.json
file. here is an example file.
{
"compilerOptions": {
"noImplicitAny": false,
"module": "commonjs",
"target": "esnext",
"lib": ["ESNext", "DOM"],
"types": ["node", "jest"],
"declaration": true,
"declarationMap": true,
"outDir": "./dist/node",
"esModuleInterop": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowJs": true,
"baseUrl": "."
},
"include": ["src/**/*"]
}
After following the previous examples to create a client instance and using it in a script, you can then execute this script using ts-node.
yarn run ts-node --project tsconfig-node.json filename.ts
https://threefoldtech.github.io/tfgrid-sdk-ts/packages/grid_client/docs/api/index.html
Generated using TypeDoc