Upbound Official
provider-helm
By upbound
Last changed 12 days ago
Compatibility
Crossplane (2.0+)
Upbound Crossplane (UXP) (2.0+)
Availability
Community
Standard
Enterprise
Business Critical
Languages
Support
Upbound Supported
12 months window ends 2026/12/03
Security & Maintenance
CVE Remediation
Backporting
Upbound signed
Source Code

Notice something off about this package? Help us keep the marketplace safe and trustworthy by reporting inappropriate content or behavior.

Report this package
Overview
The Helm Crossplane provider enables resource management of Helm Releases on Kubernetes Clusters, typically provisioned by Crossplane.

provider-helm

provider-helm is a Crossplane Provider that enables deployment and management of Helm Releases on Kubernetes clusters typically provisioned by Crossplane, and has the following functionality:

  • A Release resource type to manage Helm Releases.
  • A managed resource controller that reconciles Release objects and manages Helm releases.

Install

If you would like to install provider-helm without modifications, you may do so using the Crossplane CLI in a Kubernetes cluster where Crossplane is installed:

crossplane xpkg install provider xpkg.upbound.io/upbound/provider-helm:v0.20.0

Then you will need to create a ProviderConfig that specifies the credentials to connect to the Kubernetes API. This is commonly done within a Composition by storing a kubeconfig into a secret that the ProviderConfig references. An example of this approach can be found in configuration-aws-eks.

Quick start

An alternative, that will get you started quickly, is to reuse existing credentials from within the control plane.

First install provider-helm with additional configuration to bind its service account to an existing role in the cluster:

kubectl apply -f ./examples/provider-config/provider-incluster.yaml

Then simply create a ProviderConfig that uses an InjectedIdentity source:

kubectl apply -f ./examples/provider-config/provider-config-incluster.yaml

provider-helm will then be installed and ready to use within the cluster. You can now create Release resources, such as sample release.yaml.

kubectl create -f examples/sample/release.yaml

Design

See the design document.

Developing locally

Pre-requisite: A Kubernetes cluster with Crossplane installed

To run the provider-helm controller against your existing local cluster, simply run:

make run

Since the controller is running outside of the local cluster, you need to make the API server accessible (on a separate terminal):

sudo kubectl proxy --port=8081

Then we must prepare a ProviderConfig for the local cluster (assuming you are using kind for local development):

KUBECONFIG=$(kind get kubeconfig | sed -e 's|server:\s*.*$|server: http://localhost:8081|g')
kubectl -n crossplane-system create secret generic cluster-config --from-literal=kubeconfig="${KUBECONFIG}" 
kubectl apply -f examples/provider-config/provider-config-with-secret.yaml

Now you can create Release resources with this ProviderConfig, for example sample release.yaml.

kubectl create -f examples/sample/release.yaml
Discover the building blocks for your internal cloud platform.
© 2025 Upbound, Inc.
Solutions
Learn
Company
Community
More