Upgrade Vald cluster

Before this document, we recommend reading the configuration document first.

Update Configuration

When you’d like to update the configuration for the Vald cluster, you need to edit your configuration file and apply it according to your deployment method. Please refer to one of the sections below according to your deployment method.

If each Vald Agent already has the indexes and uses the backup feature, please DO NOT edit the dimension and the distance type to avoid initContainer error.
(Each Vald Agent will restore from backup data when performing a rolling update)
The indexes will be clear when performing a rolling update if each Vald Agent already has the indexes and the backup feature disabled.

Using Helm for deployment

The configuration file is values.yaml. (Helm Values)

You can edit your values.yaml and update your Vald cluster by following steps:

  1. Edit values.yaml.

  2. Update with Helm command.

    helm upgrade <NAME> vald/vald --values <YOUR VALUES FILE PATH>
    # e.g., helm upgrade vald vald/vald --values values.yaml
    

Using vald-helm-operator

There are two configuration files:

  • vhor.yaml for vald-helm-operator
  • vr.yaml for the Vald cluster

If you don’t need to update the vald-helm-operator, please skip step.1 and step.2. The Vald cluster will be updated by the following steps:

  1. Edit vhor.yaml.

  2. Apply vhor.yaml.

    kubectl apply -f <VHOR YAML FILE PATH>
    # e.g., kubectl apply -f vhor.yaml
    
  3. Edit vr.yaml.

  4. Apply vr.yaml.

    kubectl apply -f <VR YAML FILE PATH>
    # e.g., kubectl apply -f vr.yaml
    

Upgrade Vald version

We recommend using the latest Vald version.

If your Vald cluster uses an old version and you’d like to upgrade the Vald version, you can upgrade by the following sections. Please refer to one of the sections below according to your deployment method.

When the upgrade request is applied, Kubernetes will perform a rolling update. If your Vald cluster does not apply backup, the index will be cleared by a rolling update.
In addition, if each Vald Agent already has the indexes and the backup feature enabled, please DO NOT edit the dimension and the distance type to avoid initContainer error. (Each Vald Agent will restore from backup data when backup when performing a rolling update)

Using Helm for deployment

Using the Helm command for the deployment of the Vald cluster, the upgrading steps are below.

Before upgrading, please confirm your Vald cluster version.
If there is major or minor upgrading, the chart structure may have changed.
  1. Verify vald repo in your helm repo

    helm repo list
    
  2. Update Helm repo

    helm repo update <NAME of Vald>
    # e.g., helm repo update vald
    
  3. Edit values.yaml

    • We recommend setting a specific version as an image tag.

      defaults:
      ---
      image:
        tag: v1.5.6 # set a new version
      
  4. Apply values.yaml

    helm upgrade <NAME> vald/vald --values <YOUR VALUES FILE PATH>
    # e.g., helm upgrade vald vald/vald --values values.yaml
    

Using vald-helm-operator

The upgrading steps are below if you use vald-helm-operator for the deployment.

  1. Upgrade CRDs

    kubectl replace -f https://raw.githubusercontent.com/vdaas/vald/<VERSION>/charts/vald-helm-operator/crds/valdrelease.yaml
    kubectl replace -f https://raw.githubusercontent.com/vdaas/vald/<VERSION>/charts/vald-helm-operator/crds/valdhelmoperatorrelease.yaml
    
  2. Update vhor

    kubectl patch vhor vhor-release -p '{"spec":{"image":{"tag":"<VERSION>"}}}'
    
    • Also, you can upgrade manually by editing vhor.yaml and applying it.
  3. Edit vr.yaml

    • We recommend setting a specific version as an image tag.

      ...
      spec:
        defaults:
          ...
          image:
            tag: v1.5.6 # set a new version
          ...
      
  4. Apply vr.yaml

    kubectl apply -f <VR YAML FILE PATH>
    # e.g., kubectl apply -f vr.yaml
    

See also