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.0.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.0-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pulumi_pve-0.2.0.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.0.tar.gz
Algorithm Hash digest
SHA256 605c35d869e68b0179e4316f034ab27dc7a88f9a7bde3e9b141d6b0919d14db8
MD5 9dd24b921259ffea644f440bcd2627f0
BLAKE2b-256 27dd8b90f25fa1a5b509d0b223be28a9d5e7fb4431d7823a76cae09d01fdfcfe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pulumi_pve-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b32e11b9409d21496fba1568d52d274b89579a0032fe9e763a2fa000f91bc7bf
MD5 fe570083a9150fb650628afd8cadbc23
BLAKE2b-256 93b302657f39878bdcce64661a57dcc14bd4fa2a322a0deb6f44a9d436654a6f

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