provider-ovh is a Crossplane provider that
is built using Upjet code
generation tools and exposes XRM-conformant managed resources for the
OVHcloud API.
- Install Crossplane in your cluster
Install the provider by using the following command:
cat <<EOF | kubectl apply -f -
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-ovh
spec:
package: xpkg.upbound.io/edixos/provider-ovh:latest
EOFOr using the CLI:
up ctp provider install edixos/provider-ovhIf you want to specify a version of the provider, add an image tag
to the latest release.
Example:
xpkg.upbound.io/edixos/provider-ovh:v2.10.1
Notice that in this example Provider resource is referencing ControllerConfig with debug enabled.
You can see the API reference here.
Run code-generation pipeline:
go run cmd/generator/main.go "$PWD"Run against a Kubernetes cluster:
make runBuild, push, and install:
make allBuild binary:
make buildThis provider is built on top of the OVHcloud Terraform provider. To upgrade to a new version (e.g. from 2.11.0 to 2.13.1):
-
Update the Makefile – change the two version references:
export TERRAFORM_PROVIDER_VERSION ?= <new_version> export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-ovh_v<new_version>
-
Update
go.mod– bump the dependency:github.com/ovh/terraform-provider-ovh/v2 v<new_version> -
Run
go mod tidy– this updatesgo.sumwith the new checksums. -
Regenerate code – run the full generation pipeline to refresh the provider schema, API types, deepcopy functions, and CRD manifests:
make generateThis requires the build toolchain (Terraform CLI, crossplane tools, etc.). It will update:
config/schema.jsonapis/**/zz_*.go(generated types and deepcopy)package/crds/*.yaml
-
Verify the build – ensure everything compiles:
make build -
Commit all changes together (Makefile, go.mod, go.sum, and all generated files).
For filing bugs, suggesting improvements, or requesting new features, please open an issue.
This repository includes optional Marketplace extension assets under the extensions/ directory:
extensions/
icons/icon.svg # Provider icon
readme/readme.md # Marketplace readme (concise overview)
release-notes/release_notes.md # Human-authored release notes per version
sboms/sbom.json # CycloneDX SBOM (regenerated in CI)
During CI publish, we run:
up alpha xpkg append --extensions-root=./extensions xpkg.upbound.io/edixos/provider-ovh:<version>
Where <version> is read from _output/version produced by the build. You can test locally after logging into the Upbound registry:
curl -sL https://cli.upbound.io | sh
VERSION=$(cat _output/version)
up alpha xpkg append --extensions-root=./extensions xpkg.upbound.io/edixos/provider-ovh:${VERSION}To update for a new release:
- Edit
extensions/release-notes/release_notes.mdadding a section for the newvX.Y.Z. - Optionally refine
extensions/readme/readme.mdor update the icon. - Commit changes before tagging the release so CI appends correct assets.
SBOM generation currently uses Syft in CI to regenerate extensions/sboms/sbom.json. You can reproduce locally:
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
syft dir:. -o cyclonedx-json > extensions/sboms/sbom.jsonThis is an alpha feature (requires up CLI v0.39.0+).