open-index/open-npm huggingface dataset:
npm package: @spigell/hcloud-kube-hetzner
Description: This is a [Pulumi component](https://www.pulumi.com/docs/concepts/resources/components) (only GO and Typescript/JS are supported now) for creating Kubernetes clusters in Hetzner Cloud. It is inspired by [terraform-hcloud-kube-hetzner](https://github.com/k
Latest version: 0.1.0

## Pulumi Hcloud Kube Hetzner
This is a [Pulumi component](https://www.pulumi.com/docs/concepts/resources/components) (only GO and Typescript/JS are supported now) for creating Kubernetes clusters in Hetzner Cloud. It is inspired by [terraform-hcloud-kube-hetzner](https://github.com/kube-hetzner/terraform-hcloud-kube-hetzner).

*Note: This project is in active development, and not everything is completed. However, it DOES work and is usable right now. I definitely appreciate feedback and will help with any issues*

### Goal
The goal of this project is to enable anybody, regardless of their "DevOps tools" expertise, to efficiently deploy and manage Kubernetes clusters on Hetzner's cost-effective cloud infrastructure. Leveraging existing features such as autotests and YAML out-of-box configuration (thanks to Pulumi), along with Hetzner's cheapest cloud offerings, the project aims to minimize operational costs and automate complex deployments. To prioritize security, additional efforts will be made to enhance security measures, ensuring the deployment and running are highly secured.

### Killer Features
- Ability to manage labels and taints directly!
- Adding and removing nodepools/nodes without changing internal IP addresses is possible.
- Most of the examples are tested via Github Actions and maintained.

## Getting Started
### Prerequisites
Please install following tools:
- Pulumi CLI and required runtime for your language
- GNU Make
- packer (only for microos image creation. If you have existing image, you can skip this step)
- curl

You need to have a Hetzner Cloud account. You can sign up for free [here](https://hetzner.com/cloud/).

### Usage
#### TL;DR (Typescript)
```
$ export HCLOUD_TOKEN=<your token>
$ mkdir pulumi-hcloud-kube-hetzner
$ cd pulumi-hcloud-kube-hetzner
$ pulumi new -g https://github.com/spigell/pulumi-hcloud-kube-hetzner/tree/main/pulumi-templates/typescript
$ make microos (optionanl)
$ make pulumi-init-stack [PULUMI_EXAMPLE_NAME]
$ yarn install
$ pulumi up -yf
```

## Development
### GO
*Note: It is recommended to use Pulumi local storage for development, as using the Pulumi service or self-hosted S3 storage can impact the speed of deployments.*
```
$ make test-go-project [TEMPLATE=go/library|go/component]
$ cd test-component
$ make pulumi-generate-config [PULUMI_CONFIG_SOURCE=../examples/<EXAMPLE>.yaml]
```

For component building:
```
$ cd ./pulumi-component
$ make build && make install_provider # It generates all SDKs and build providers
$ export PATH=$PATH:~/go/bin
```

That's it. Now you can use all pulumi commands like `up` or `pre` with your own version of the project.

After making changes, create a PR to the `preview` branch.

## Roadmap
The roadmap is located in [roadmap.md](./docs/roadmap.md)
npm package: @spigell/pulumi-file
Description: This is a very simple pulumi native provider.
Latest version: 0.0.6

# A file Pulumi Provider

This is a very simple pulumi native provider.

Hugely based on [pulumi-go-provider](https://github.com/pulumi/pulumi-go-provider) and [pulumi-command-provider](https://github.com/pulumi/pulumi-command). Several pieces of code were from there.

Resources:
* Remote.File: It manages the content of files on Linux machines. It supports only remote files for now.

There are typescript and golang examples of using the single resource defined in `examples directory`.

``Read`` call is implemented so commands like `pulumi refresh` works now.
But `pulumi import` is not implemented now.

There are golang and typescript sdk. Another are generated but not uploaded to packages repositories.

## Installing

Grab the plugin if pulumi didn't make it automatically:

```
pulumi plugin install resource file v0.0.3 --server https://github.com/spigell/pulumi-file/releases/download/v0.0.3
```

### Node.js (JavaScript/TypeScript)

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

    $ npm install @spigell/pulumi-file

or `yarn`:

    $ yarn add @spigell/pulumi-file

### Go

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

    $ go get github.com/spigell/pulumi-file/sdk

## Building

### Dependencies

- Go 1.21
- NodeJS 16.X.X or later

### Local Build and Test

Most of the code for the provider implementation is in `provider/pkg` directory.  

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 `schema.json`.

Note that the generated provider plugin (`pulumi-resource-file`) must be on your `PATH` to be used by Pulumi deployments.

```bash
# build the plugin and provider
$ VERSION=<VERSION> make build

# test
$ cd examples/simple-go
$ go mod tidy
$ pulumi stack init test
$ PATH=$PATH:../../bin pulumi up
```