Home
Softono
provider-proxmox-bpg

provider-proxmox-bpg

Open source Apache-2.0 Go
21
Stars
2
Forks
8
Issues
1
Watchers
1 week
Last Commit

About provider-proxmox-bpg

A Crossplane provider to interact with ProxmoxVE

Platforms

Web Self-hosted Kubernetes

Languages

Go

Links

Proxmox BPG Provider

provider-proxmox-bpg is a Crossplane provider built using Upjet. It exposes XRM-conformant managed resources for the Proxmox Virtual Environment API. This provider it is already compatible with crossplane v2.

🚀 Release Automation

This repository automatically publishes a new release every time the upstream Terraform provider releases a new version: 👉 Original Terraform Provider: bpg/terraform-provider-proxmox

The automation works through a fully-integrated release pipeline:

  1. Version Detection – Handled by our configured Renovate Bot, which tracks new upstream releases.
  2. Version Preparation – When Renovate opens a PR, the custom Prepare New Version GitHub Action adjusts the module and prepares the next tag.
  3. Automated Publishing – Once the PR is merged, Release Please generates changelogs and publishes the release automaticaly

Thanks to this pipeline, this repository always stays up-to-date with the latest upstream provider version — no manual intervention required, JUST when a new CRD (resource) is added (that will be future automated).


đź”§ For Upjet / Crossplane Developers

If you’re building a Crossplane provider using Upjet, feel free to reuse or adapt this release configuration to automate your own provider’s lifecycle. Having an auto-syncing provider dramatically simplifies maintenance and ensures your Crossplane collection stays aligned with upstream changes.

Installation (make sure you have Crossplane before installed in your cluster)

  • Using up: Install the provider by using the following command after changing the image tag to the latest release:

    up ctp provider install xpkg.upbound.io/valkiriaaquaticamendi/provider-proxmox-bpg:v1.0.0
  • Declarative installation

    cat <<EOF | kubectl apply -f -
    apiVersion: pkg.crossplane.io/v1
    kind: Provider
    metadata:
      name: valkiriaaquaticamendi-provider-proxmox-bpg
    spec:
      package: xpkg.upbound.io/valkiriaaquaticamendi/provider-proxmox-bpg:v1.0.0
    EOF

    or

    kubectl apply -f examples/install.yaml

    Now create the seecret with your Proxmox credentials, filling the secret and apply it

    vi examples/providerconfig/secret.yaml.tmpl
    kubectl apply -f examples/providerconfig/secret.yaml.tmpl

    Then create the Provider configuration using that secret

    kubectl apply -f examples/providerconfig/providerconfig.yaml

    In the folder examples/ and examples-generated/ you can have multiple examples to quick create. If you have any interesting example to add, feel free to contribute. examples/ folder is based on more testes examples while the examples-generated/ wrap the examples from Terraform docs into Yamls.

Developing

  1. Run the generator

    make generate
  2. Run the image against an existant Kubernetes cluster that has Crossplane already installed Install the CRDs in the cluster:

     kubectl apply -f package/crds/
  3. Run the image against an existant Kubernetes cluster that has Crossplane already installed and test it works well

    make run
  4. Run the tests and test it works well

    make test
  5. Run the local docker build image and test it works well

    make build

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

TODO

A action that can be maanually and launched once every day that checks if a new resource is created, as example of that is this: https://github.com/bpg/terraform-provider-proxmox/pull/2502. Note with that example and others that changes to trigger are: docs/resources (if it is documented :)