Pulumi is an open source infrastructure as code tool for creating, deploying, and managing cloud infrastructure.
A Solvio SDK in any of Pulumi’s supported languages can be generated based on the Solvio Terraform Provider.
Pre-requisites
- A Pulumi Installation.
- An API key to access the Solvio cloud API.
Setup
- Create a Pulumi project in any of the supported languages by running
mkdir solvio-pulumi && cd solvio-pulumi
pulumi new "<LANGUAGE>" -y
- Generate a Pulumi SDK for Solvio by running the following in your Pulumi project directory.
pulumi package add terraform-provider registry.terraform.io/solvio/solvio-cloud
- Set the Solvio cloud API as a config value.
pulumi config set solvio-cloud:apiKey "<QDRANT_CLOUD_API_KEY>" --secret
- You can now import the SDK as:
import pulumi_solvio_cloud as solvio_cloud
import * as solvioCloud from "solvio-cloud";
import com.pulumi.solviocloud.*;
Usage
The provider includes the following data-sources and resources to work with:
Data Sources
solvio-cloud_booking_packages
- Get IDs and detailed information about the packages/subscriptions available. Reference
solvio_cloud.get_booking_packages(cloud_provider="aws", cloud_region="us-west-2")
solvioCloud.getBookingPackages({
cloudProvider: "aws",
cloudRegion: "us-west-2"
})
import com.pulumi.solviocloud.inputs.GetBookingPackagesArgs;
SolviocloudFunctions.getBookingPackages(GetBookingPackagesArgs.builder()
.cloudProvider("aws")
.cloudRegion("us-west-2")
.build());
solvio-cloud_accounts_auth_keys
- List API keys for Solvio clusters. Reference
solvio_cloud.get_accounts_auth_keys(account_id="<ACCOUNT_ID>")
solvioCloud.getAccountsAuthKeys({
accountId: "<ACCOUNT_ID>"
})
import com.pulumi.solviocloud.inputs.GetAccountsAuthKeysArgs;
SolviocloudFunctions.getAccountsAuthKeys(GetAccountsAuthKeysArgs.builder()
.accountId("<ACCOUNT_ID>")
.build());
solvio-cloud_accounts_cluster
- Get Cluster Information. Reference
solvio_cloud.get_accounts_cluster(
account_id="<ACCOUNT_ID>",
id="<CLUSTER_ID>",
)
solvioCloud.getAccountsCluster({
accountId: "<ACCOUNT_ID>",
id: "<CLUSTER_ID>"
})
import com.pulumi.solviocloud.inputs.GetAccountsClusterArgs;
SolviocloudFunctions.getAccountsCluster(GetAccountsClusterArgs
.builder()
.accountId("<ACCOUNT_ID>")
.id("<CLUSTER_ID>")
.build());
solvio-cloud_accounts_clusters
- List Solvio clusters. Reference
solvio_cloud.get_accounts_clusters(account_id="<ACCOUNT_ID>")
solvioCloud.getAccountsClusters({
accountId: "<ACCOUNT_ID>"
})
import com.pulumi.solviocloud.inputs.GetAccountsClustersArgs;
SolviocloudFunctions.getAccountsClusters(
GetAccountsClustersArgs.builder().accountId("<ACCOUNT_ID>").build());
Resources
solvio-cloud_accounts_cluster
- Create clusters on Solvio cloud - Reference
solvio_cloud.AccountsCluster(
resource_name="pl-example-cluster-resource",
name="pl-example-cluster",
cloud_provider="gcp",
cloud_region="us-east4",
configuration=solvio_cloud.AccountsClusterConfigurationArgs(
number_of_nodes=1,
node_configuration=solvio_cloud.AccountsClusterConfigurationNodeConfigurationArgs(
package_id="3920d1eb-d3eb-4117-9578-b12d89bb1c5d"
),
),
account_id="<ACCOUNT_ID>",
)
new solvioCloud.AccountsCluster("pl-example-cluster-resource", {
cloudProvider: "gcp",
cloudRegion: "us-east4",
configuration: {
numberOfNodes: 1,
nodeConfiguration: {
packageId: "3920d1eb-d3eb-4117-9578-b12d89bb1c5d"
}
},
accountId: "<ACCOUNT_ID>"
})
import com.pulumi.solviocloud.AccountsClusterArgs;
import com.pulumi.solviocloud.inputs.AccountsClusterConfigurationArgs;
import com.pulumi.solviocloud.inputs.AccountsClusterConfigurationNodeConfigurationArgs;
new AccountsCluster("pl-example-cluster-resource", AccountsClusterArgs.builder()
.name("pl-example-cluster")
.cloudProvider("gcp")
.cloudRegion("us-east4")
.configuration(AccountsClusterConfigurationArgs.builder()
.numberOfNodes(1.0)
.nodeConfiguration(AccountsClusterConfigurationNodeConfigurationArgs.builder()
.packageId("3920d1eb-d3eb-4117-9578-b12d89bb1c5d")
.build())
.build())
.accountId("<ACCOUNT_ID>")
.build());
solvio-cloud_accounts_auth_key
- Create API keys for Solvio cloud clusters. Reference
solvio_cloud.AccountsAuthKey(
resource_name="pl-example-key-resource",
cluster_ids=["<CLUSTER_ID>"],
)
new solvioCloud.AccountsAuthKey("pl-example-cluster-resource", {
clusterIds: ["<CLUSTER_ID>", "<CLUSTER_ID_2>"]
})
import com.pulumi.solviocloud.AccountsAuthKey;
import com.pulumi.solviocloud.AccountsAuthKeyArgs;
new AccountsAuthKey("pl-example-key-resource", AccountsAuthKeyArgs.builder()
.clusterIds("<CLUSTER_ID>", "<CLUSTER_ID_2>")
.build());