Add-on Development Guide
Harvester add-ons allow you to enable and disable specific Harvester and third-party components based on your requirements. Add-ons function as a wrapper for the RKE2 HelmChart resource definition (CRD).
Prerequisites
- An existing Harvester cluster
Add-on Specifications
The Addon
CRD supports the following fields:
apiVersion: harvesterhci.io/v1beta1
kind: Addon
metadata:
name: example-add-on # Name of add-on
namespace: example-namespace # Namespace where the add-on CRD is deployed and where the associated Kubernetes components will be deployed
labels: # Optional add-on labels
Add-on.harvesterhci.io/experimental: "true" # Predefined label used on the Harvester UI to identify add-ons with the "experimental" maturity level
spec:
enabled: false # Boolean indicating if an add-on should be enabled or disabled on definition
repo: https://chartsrepo.com # Helm chart repository containing the Helm chart managed by the add-on
version: "v0.19.0" # Version of the Helm chart to be installed
chart: mychart # Name of the Helm chart in the Helm chart repository
valuesContent: |- # File (values.yaml) that must be passed to the Helm chart
contents of values.yaml
that need to be passed
to the chart
note
Experimental add-ons are not directly packaged in Harvester. An example is the rancher-vcluster add-on.
Installation
kubectl apply -f /path/to/add-on.yaml
Usage
After creating an Addon
CRD, you can can toggle the enabled
field to enable and disable the associated Helm chart.
Upgrade
Changes to the repo
, version
, chart
or valueContent
fields will trigger a helm upgrade
, which forces an upgrade of the existing Helm chart.
Uninstallation
kubectl delete -f /path/to/Add-on.yaml