Skip to main content

PVE Provider

Project description

Pulumi Proxmox VE Provider

This repository contains a Pulumi Provider for managing Proxmox VE resources. It allows you to define and manage Proxmox VE resources using Pulumi's infrastructure-as-code approach.

Getting Started

Prerequisites

To work with this repository, you need to use the provided development container (devcontainer). The devcontainer includes all the necessary tools and dependencies pre-installed.

Setting Up the Devcontainer

  1. Open this repository in Visual Studio Code.
  2. Install the Remote - Containers extension.
  3. Reopen the repository in the devcontainer by selecting Reopen in Container from the Command Palette (Ctrl+Shift+P).

Once the devcontainer is up and running, you can start developing and testing the provider.

A brief repository overview

You now have:

  1. A provider/ folder containing the building and implementation logic
    • cmd/pulumi-resource-pve/main.go - holds the provider's sample implementation logic.
  2. sdk - holds the generated code libraries created by pulumi-gen-pve/main.go
  3. examples a folder of Pulumi programs to try locally and/or use in CI.
  4. A Makefile and this README.
Additional Details

This repository depends on the pulumi-go-provider library. For more details on building providers, please check the Pulumi Go Provider docs.

NPM repository: https://www.npmjs.com/settings/hctamu/packages Nuget repository: https://www.nuget.org/packages/Hctamu.Pve PyPi repository: https://pypi.org/project/pulumi-pve/

Release new version

To release new version create a new release on Github, with the following tag syntax: v*.*.*

A pipeline will automatically release the provider with the given version.

Build the provider and install the plugin

make build install

This will:

  1. Create the SDK codegen binary and place it in a ./bin folder (gitignored)
  2. Create the provider binary and place it in the ./bin folder (gitignored)
  3. Generate the dotnet, Go, Node, and Python SDKs and place them in the ./sdk folder
  4. Install the provider on your machine.

Configuration

The Pulumi Proxmox VE provider requires the following configuration settings:

Required Settings

  • pve:pveUrl - The URL of the Proxmox VE API server (e.g., https://pve.example.com:8006)
  • pve:pveUser - The Proxmox VE user for authentication (e.g., root@pam or user@pve)
  • pve:pveToken - An API token generated in the Proxmox VE UI (marked as secret)
  • pve:sshUser - The SSH user for connecting to Proxmox VE nodes (e.g., root)
  • pve:sshPass - The SSH password for authenticating to Proxmox VE nodes (marked as secret)

Optional Settings

  • pve:insecureSkipVerify - Disable TLS certificate verification for HTTPS connections. Defaults to false. ⚠️ Only use for testing with self-signed certificates.
  • pve:insecureIgnoreHostKey - Disable SSH host key verification when connecting to nodes. Defaults to false. ⚠️ Only use for testing environments. In production, ensure ~/.ssh/known_hosts is properly configured.
  • pve:sshKnownHostsPath - Path to the SSH known_hosts file used for host key verification. Defaults to ~/.ssh/known_hosts when unset.

Configuration Example

Set these in your Pulumi stack configuration (e.g., Pulumi.dev.yaml):

config:
  pve:pveUrl: https://pve.local:8006
  pve:pveUser: root@pam
  pve:pveToken:
    secure: AQAAAA...  # Use `pulumi config set --secret` for token
  pve:sshUser: root
  pve:sshPass:
    secure: AQAAAA...  # Use `pulumi config set --secret` for password
  pve:insecureSkipVerify: false
  pve:insecureIgnoreHostKey: false
  pve:sshKnownHostsPath: /home/your-user/.ssh/known_hosts

Or set via environment variables:

export PULUMI_CONFIG_PVE_PVEURL=https://pve.local:8006
export PULUMI_CONFIG_PVE_PVEUSER=root@pam
export PULUMI_CONFIG_PVE_PVETOKEN=your-token-here
export PULUMI_CONFIG_PVE_SSHUSER=root
export PULUMI_CONFIG_PVE_SSHPASS=your-password-here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pulumi_pve-0.2.0b1.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pulumi_pve-0.2.0b1-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file pulumi_pve-0.2.0b1.tar.gz.

File metadata

  • Download URL: pulumi_pve-0.2.0b1.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for pulumi_pve-0.2.0b1.tar.gz
Algorithm Hash digest
SHA256 ac257cc0c71999c704254d982e2e36f7c819295322c870c0d9fc01156da4bada
MD5 a52eb5133e5259eec6c3ce9da96d3d69
BLAKE2b-256 57ee82f79548f527c2b2219f5c14f00d8be94352f7f7d49ae334e1f4ee70c9e0

See more details on using hashes here.

File details

Details for the file pulumi_pve-0.2.0b1-py3-none-any.whl.

File metadata

  • Download URL: pulumi_pve-0.2.0b1-py3-none-any.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for pulumi_pve-0.2.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 4758b8fa3aeb1807a30fbc93f5bd90424b0b79cfda105a4d430a30d6afaad56d
MD5 fab41be2d44438b19f3978a444a8f45b
BLAKE2b-256 525c8412ef7f9b8b2e94b63d13d31d8eece5d3ed5fe397252a74fc2b67c87575

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page