Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/raelix/pulumi-kind


https://github.com/raelix/pulumi-kind

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# kind Resource Provider

The kind Resource Provider lets you manage [kind](https://kind.sigs.k8s.io/) resources.

It is based on the Kind Terraform Provider.

## Installing
Install the plugin with ```pulumi``` cli
```shell
pulumi plugin install resource kind v0.0.1 --server "github://api.github.com/raelix"
```
> Remember to replace the 'v0.0.1' with the right version

This package is available for several languages/platforms:

### Node.js (JavaScript/TypeScript)

To use from JavaScript or TypeScript in Node.js, install using either `npm`:

```bash
npm install @pulumi/kind
```

or `yarn`:

```bash
yarn add @pulumi/kind
```

### Python

To use from Python, install using `pip`:

```bash
pip install pulumi_kind
```

### Go

To use from Go, use `go get` to grab the latest version of the library:

```bash
go get github.com/raelix/pulumi-kind/sdk/
```

### .NET

To use from .NET, install using `dotnet add package`:

```bash
dotnet add package Pulumi.kind
```

## Configuration
WIP
The following configuration points are available for the `kind` provider:

- `kind:apiKey` (environment: `kind_API_KEY`) - the API key for `kind`
- `kind:region` (environment: `kind_REGION`) - the region in which to deploy resources

## Reference

For detailed reference documentation, please visit [the Pulumi registry](https://www.pulumi.com/registry/packages/kind/api-docs/).

## Developer

### Prerequisites

Ensure the following tools are installed and present in your `$PATH`:

- [`pulumictl`](https://github.com/pulumi/pulumictl#installation)
- [Go 1.17](https://golang.org/dl/) or 1.latest
- [NodeJS](https://nodejs.org/en/) 14.x. We recommend using [nvm](https://github.com/nvm-sh/nvm) to manage NodeJS installations.
- [Yarn](https://yarnpkg.com/)
- [TypeScript](https://www.typescriptlang.org/)
- [Python](https://www.python.org/downloads/) (called as `python3`). For recent versions of MacOS, the system-installed version is fine.
- [.NET](https://dotnet.microsoft.com/download)

### Create the schema by running the following command:
Create the schema necessary to build the plugin
```bash
make tfgen
```

### Build the provider
Build the binary and ensure there are no warnings about unmapped resources and no warnings about unmapped data sources:
```bash
make provider
```

### Build the SDKs
Build the SDKs in the various languages Pulumi supports:
```bash
make build_sdks
```

### Ensure the build
Run this command to ensure the Golang SDK is a proper go module:
```bash
cd sdk && go mod tidy && cd -
```

### Expose the provider
Copy the `pulumi-resource-kind` binary generated by `make provider` and place it in your `$PATH` (`$GOPATH/bin` is a convenient choice), e.g.:
```bash
cp bin/pulumi-resource-kind $GOPATH/bin
```

## Build and push

### Pre-requisite
- goreleaser

### Check if locally itworks
```shell
goreleaser release --snapshot --clean
```
### Export github token
```shell
export GITHUB_TOKEN="YOUR_GH_TOKEN"
```
### Create a tag
```shell
git tag -a v0.1.0 -m "First release"
git push origin v0.1.0
```
### Release
```shell
goreleaser release
```