https://github.com/secustor/pulumi-exoscale-native
https://github.com/secustor/pulumi-exoscale-native
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/secustor/pulumi-exoscale-native
- Owner: secustor
- License: apache-2.0
- Created: 2022-02-10T13:00:23.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-02-10T13:00:24.000Z (over 4 years ago)
- Last Synced: 2025-02-14T14:42:19.573Z (over 1 year ago)
- Language: Go
- Size: 65.4 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# xyz Pulumi Provider
This repo is a boilerplate showing how to create a native Pulumi provider. You can search-replace `xyz` with the name of your desired provider as a starting point for creating a provider that manages resources in the target cloud.
Most of the code for the provider implementation is in `pkg/provider/provider.go`.
An example of using the single resource defined in this example is in `examples/simple`.
A code generator is available which generates SDKs in TypeScript, Python, Go and .NET which are also checked in to the `sdk` folder. The SDKs are generated from a schema in `provider/cmd/pulumi-resource-xyz/schema.json`. This file should be kept aligned with the resources, functions and types supported by the provider implementation.
Note that the generated provider plugin (`pulumi-resource-xyz`) must be on your `PATH` to be used by Pulumi deployments. If creating a provider for distribution to other users, you should ensure they install this plugin to their `PATH`.
## Pre-requisites
Install the `pulumictl` cli from the [releases](https://github.com/pulumi/pulumictl/releases) page or follow the [install instructions](https://github.com/pulumi/pulumictl#installation)
> NB: Usage of `pulumictl` is optional. If not using it, hard code the version in the [Makefile](Makefile) of when building explicitly pass version as `VERSION=0.0.1 make build`
## Build and Test
```bash
# build and install the resource provider plugin
$ make build install
# test
$ cd examples/simple
$ yarn link @pulumi/xyz
$ yarn install
$ pulumi stack init test
$ pulumi up
```
## References
Other resources for learning about the Pulumi resource model:
* [Pulumi Kubernetes provider](https://github.com/pulumi/pulumi-kubernetes/blob/master/provider/pkg/provider/provider.go)
* [Pulumi Terraform Remote State provider](https://github.com/pulumi/pulumi-terraform/blob/master/provider/cmd/pulumi-resource-terraform/provider.go)
* [Dynamic Providers](https://www.pulumi.com/docs/intro/concepts/programming-model/#dynamicproviders)