https://github.com/threefoldtech/grid_pulumi
https://github.com/threefoldtech/grid_pulumi
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/threefoldtech/grid_pulumi
- Owner: threefoldtech
- License: apache-2.0
- Created: 2023-08-07T08:46:30.000Z (almost 3 years ago)
- Default Branch: development
- Last Pushed: 2026-05-27T14:09:21.000Z (6 days ago)
- Last Synced: 2026-05-27T15:25:46.395Z (6 days ago)
- Language: Go
- Size: 1.68 MB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Grid Pulumi
[](https://github.com/threefoldtech/pulumi-threefold/actions/workflows/integration.yaml) [](https://github.com/threefoldtech/pulumi-threefold/actions/workflows/lint.yaml) [](https://dependabot.com/) 
A Pulumi provider that enables infrastructure-as-code deployment of compute, network, and storage resources. It allows developers to provision virtual machines, networks, Kubernetes clusters, and storage using familiar Pulumi workflows in TypeScript, Python, Go, and .NET. The provider is available at the [Pulumi Registry](https://www.pulumi.com/registry/packages/threefold/).
## What this is
This provider maps grid resources into native Pulumi constructs, enabling declarative management of infrastructure through Pulumi's standard tooling. It supports resource lifecycle operations including create, update, and destroy, and integrates with the grid's identity and networking model.
## What this repository contains
- **Go-based Pulumi provider** implementing the resource bridge to grid APIs
- **Multi-language SDK generation** for TypeScript, Python, Go, and .NET
- **Example projects** demonstrating VM, network, Kubernetes, and storage deployments
- **Integration tests** validating provider functionality against live grid environments
## Role in the stack
The provider acts as the infrastructure-as-code entry point for the broader stack. It sits above the grid's deployment layer and allows users to define workloads declaratively rather than imperatively. It integrates with the grid's identity system (mnemonic-based keys) and network abstractions.
## Relation to ThreeFold
This technology is used within the ThreeFold ecosystem and was first deployed on the ThreeFold Grid. The component itself is designed as reusable infrastructure technology and should be understood by its technical function first, independent of any specific deployment.
## Ownership
This repository is owned and maintained by TF-Tech NV, a Belgian company responsible for the development and maintenance of this technology.
## Requirements
- [`Pulumi`](https://www.pulumi.com/docs/install/) >= 3.128.0
- [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
- [`Go`](https://golang.org/doc/install) >= 1.22
## Using the provider
- Install the provider
```bash
make install_latest
```
### Running the examples
To run examples, make sure you have a mnemonic and a network set.
```bash
export MNEMONIC="mnemonic words"
export NETWORK="network" # dev, qa, test, main -> default is dev
```
- Go to the examples directory `cd examples/go/virtual_machine`
- Run the example `make run`
- To cleanup the resources that you created `make destroy`
## Building The Provider (for development only)
```bash
make build
```
## Run tests
```bash
export MNEMONIC="mnemonic words"
export NETWORK="network" # dev, qa, test, main -> default is dev
```
### Integration tests
```bash
make integration
```
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
Copyright (c) TFTech NV.