# Helm Chart Reference

[](/en/operations/kubernetes/reference/helm-chart.html.md "View as Markdown") 

The `vespa-operator` Helm chart deploys the Vespa Kubernetes Operator and the permissions required to manage [VespaSet](/en/operations/kubernetes/reference/vespaset-crd.html) and Vespa application resources. It is distributed as an OCI artifact:

```
$ helm registry login images.ves.pa -u $USER -p $TOKEN
$ helm install vespa-operator oci://images.ves.pa/helm/vespa-operator \
    --namespace $NAMESPACE --create-namespace \
    --set image.repository=$VESPA_OPERATOR_IMAGE \
    --set image.tag=$VESPA_VERSION
```

For a full walkthrough of the installation procedure, see [Installation](/en/operations/kubernetes/deployment/installation.html).

## Installed Resources

Installing the chart creates the following resources in the release namespace:

| Resource | Kind | Description |
| --- | --- | --- |
| `vespa-operator` | Deployment | Runs a single replica of the Vespa Operator, using the container image specified by the [`image`](#values) values. |
| `vespa-operator-sa` | ServiceAccount | The ServiceAccount the operator Deployment runs as. |
| `vespa-operator-role` | Role | Grants the permissions the operator needs to manage `VespaSet` resources and the Kubernetes resources it derives from them (Pods, Services, ConfigMaps, PersistentVolumeClaims, PodDisruptionBudgets, ServiceAccounts, Roles, RoleBindings, and Events). The full set of permissions is listed on the [Permissions](/en/operations/kubernetes/deployment/permissions.html) page. |
| `vespa-operator-rolebinding` | RoleBinding | Binds `vespa-operator-role` to `vespa-operator-sa`. |
| `vespasets.k8s.ai.vespa` | CustomResourceDefinition | The [VespaSet CRD](/en/operations/kubernetes/reference/vespaset-crd.html). CRD installation is cluster-scoped; if your permission model requires CRDs to be applied separately, install the chart with `--skip-crds` and apply the CRD manually — see [Installation](/en/operations/kubernetes/deployment/installation.html). |

## Values

| Value | Type | Default | Description |
| --- | --- | --- | --- |
| `image.repository` | string | | The container image repository for the Vespa Operator. |
| `image.tag` | string | | The image tag to deploy, i.e. the Vespa version, e.g. `8.752.24`. |
| `image.pullPolicy` | string | `Always` | The Kubernetes [image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) for the operator container. One of `Always`, `IfNotPresent`, or `Never`. |
| `operator.env` | list | | Optional list of additional [environment variables](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) injected into the operator container. |

### Example values file

```
image:
  repository: "images.example.com/vespa/operator"
  pullPolicy: "Always"
  tag: "8.752.24"

operator:
  env:
    - name: MY_VARIABLE
      value: "my-value"
```

```
$ helm install vespa-operator oci://images.ves.pa/helm/vespa-operator \
    --namespace $NAMESPACE --create-namespace --values values.yaml
```

## Samples

The chart ships with a `samples` directory containing example `VespaSet` resources, including samples for Minikube and TLS with cert-manager — see [Configure TLS Encryption with CertManager](/en/operations/kubernetes/configuration/tls.html).

 Copyright © 2026 - [Cookie Preferences](#)

