# Pulumi Provider for Matchbox
`pulumi-matchbox` allows defining [Matchbox](https://github.com/poseidon/matchbox) Profiles and Groups in Pulumi. Matchbox matches machines, by label (e.g. MAC address), to Profiles with iPXE configs, Ignition configs, or generic free-form configs to provision clusters. Resources are created via the client certificate authenticated Matchbox API.
## Usage
[Setup](https://matchbox.psdn.io/network-setup/) a PXE network boot environment and [deploy](https://matchbox.psdn.io/deployment/) a Matchbox instance. Be sure to enable the gRPC API and follow the instructions to generate TLS credentials.
* [Configure the Matchbox provider](https://www.pulumi.com/registry/packages/matchbox/installation-configuration/) with the Matchbox API endpoint and client certificate.
* Define a Matchbox [Profile](https://www.pulumi.com/registry/packages/matchbox/api-docs/profile/) or [Group](https://www.pulumi.com/registry/packages/matchbox/api-docs/group/) resource in Pulumi.
* Run `pulumi up` to ensure plugin version requirements are met.
```
$ pulumi up
```
See [examples](./examples) for Pulumi configs which PXE boot, install CoreOS, and provision entire clusters.
## Requirements
* Pulumi v3 [installed](https://www.pulumi.com/docs/get-started/)
* Matchbox v0.8+ [installed](https://matchbox.psdn.io/deployment/)
* Matchbox credentials `client.crt`, `client.key`, `ca.crt`
### Node.js (JavaScript/TypeScript)
To use from JavaScript or TypeScript in Node.js, install using either `npm`:
```bash
npm install @pulumiverse/matchbox
```
or `yarn`:
```bash
yarn add @pulumiverse/matchbox
```
### Python
To use from Python, install using `pip`:
```bash
pip install pulumiverse_matchbox
```
### Go
To use from Go, use `go get` to grab the latest version of the library:
```bash
go get github.com/pulumiverse/pulumi-matchbox/sdk/go/...
```
### .NET
To use from .NET, install using `dotnet add package`:
```bash
dotnet add package Pulumiverse.Matchbox
```
## Reference
For detailed reference documentation, please visit [the Pulumi registry](https://www.pulumi.com/registry/packages/matchbox/api-docs/).
Raw data
{
"_id": null,
"home_page": null,
"name": "pulumiverse-matchbox",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "pulumi, matchbox, category/network",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a3/9b/45dd3b2995da83a5b250dd3ed88466ab793027671ca9dbe39fa6009f84d4/pulumiverse_matchbox-0.2.0.tar.gz",
"platform": null,
"description": "# Pulumi Provider for Matchbox\n\n`pulumi-matchbox` allows defining [Matchbox](https://github.com/poseidon/matchbox) Profiles and Groups in Pulumi. Matchbox matches machines, by label (e.g. MAC address), to Profiles with iPXE configs, Ignition configs, or generic free-form configs to provision clusters. Resources are created via the client certificate authenticated Matchbox API.\n\n## Usage\n\n[Setup](https://matchbox.psdn.io/network-setup/) a PXE network boot environment and [deploy](https://matchbox.psdn.io/deployment/) a Matchbox instance. Be sure to enable the gRPC API and follow the instructions to generate TLS credentials.\n\n* [Configure the Matchbox provider](https://www.pulumi.com/registry/packages/matchbox/installation-configuration/) with the Matchbox API endpoint and client certificate.\n* Define a Matchbox [Profile](https://www.pulumi.com/registry/packages/matchbox/api-docs/profile/) or [Group](https://www.pulumi.com/registry/packages/matchbox/api-docs/group/) resource in Pulumi.\n* Run `pulumi up` to ensure plugin version requirements are met.\n\n```\n$ pulumi up\n```\n\nSee [examples](./examples) for Pulumi configs which PXE boot, install CoreOS, and provision entire clusters.\n\n## Requirements\n\n* Pulumi v3 [installed](https://www.pulumi.com/docs/get-started/)\n* Matchbox v0.8+ [installed](https://matchbox.psdn.io/deployment/)\n* Matchbox credentials `client.crt`, `client.key`, `ca.crt`\n\n### Node.js (JavaScript/TypeScript)\n\nTo use from JavaScript or TypeScript in Node.js, install using either `npm`:\n\n```bash\nnpm install @pulumiverse/matchbox\n```\n\nor `yarn`:\n\n```bash\nyarn add @pulumiverse/matchbox\n```\n\n### Python\n\nTo use from Python, install using `pip`:\n\n```bash\npip install pulumiverse_matchbox\n```\n\n### Go\n\nTo use from Go, use `go get` to grab the latest version of the library:\n\n```bash\ngo get github.com/pulumiverse/pulumi-matchbox/sdk/go/...\n```\n\n### .NET\n\nTo use from .NET, install using `dotnet add package`:\n\n```bash\ndotnet add package Pulumiverse.Matchbox\n```\n\n## Reference\n\nFor detailed reference documentation, please visit [the Pulumi registry](https://www.pulumi.com/registry/packages/matchbox/api-docs/).\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A Pulumi package for creating and managing the Matchbox iPXE server.",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://www.pulumi.com",
"Repository": "https://github.com/pulumiverse/pulumi-matchbox"
},
"split_keywords": [
"pulumi",
" matchbox",
" category/network"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "221eeabaab3925f64e8c216fc4b28810edb37db67847afe1dfb70e253f116eb8",
"md5": "1c0960f9c3b425e25f6cf23a621cb6e8",
"sha256": "3342cd89e9a2ba157f5531325322d4c44a5035b0abcce861d05f9444511f349a"
},
"downloads": -1,
"filename": "pulumiverse_matchbox-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1c0960f9c3b425e25f6cf23a621cb6e8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 14876,
"upload_time": "2024-10-11T10:01:58",
"upload_time_iso_8601": "2024-10-11T10:01:58.369379Z",
"url": "https://files.pythonhosted.org/packages/22/1e/eabaab3925f64e8c216fc4b28810edb37db67847afe1dfb70e253f116eb8/pulumiverse_matchbox-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a39b45dd3b2995da83a5b250dd3ed88466ab793027671ca9dbe39fa6009f84d4",
"md5": "3b6e30917047d810c98995ce1ccd6a87",
"sha256": "e667e8f30dbdbcc797f2d5b011c0517d1da7c61bdbad97d3a4887beceed4c1bd"
},
"downloads": -1,
"filename": "pulumiverse_matchbox-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "3b6e30917047d810c98995ce1ccd6a87",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11114,
"upload_time": "2024-10-11T10:01:59",
"upload_time_iso_8601": "2024-10-11T10:01:59.766036Z",
"url": "https://files.pythonhosted.org/packages/a3/9b/45dd3b2995da83a5b250dd3ed88466ab793027671ca9dbe39fa6009f84d4/pulumiverse_matchbox-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-11 10:01:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pulumiverse",
"github_project": "pulumi-matchbox",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pulumiverse-matchbox"
}