> For the complete documentation index, see [llms.txt](https://docs.trilio.io/openstack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.trilio.io/openstack/deployment/installing-on-openstack-helm/installt4o-dynamic-bt.md).

# Install Dynamic Backup Target

Starting T4O-6.x, a new feature has been introduced to add new backup target without the need of redeploying complete t4o. Please follow mentioned steps to add a backup target

## 1. Update backup target specific yaml file

### 1.1] Navigate to the backup targets chart

```
cd triliovault-cfg-scripts/openstack-helm/trilio-backup-targets/values_overrides
```

### 1.2] Update the `<backup-target-type>.yaml` file (`nfs.yaml, other_s3.yaml or amazon_s3.yaml`).

Example for NFS backup target:

```
trilio_backup_target:
  backup_target_name: 'NFS_BackupTarget'
  backup_target_type: 'nfs'
  is_default: true
  nfs_server: '10.10.0.1'
  nfs_shares: /home/openstack-helm
  nfs_options: "nolock,soft,timeo=600,intr,lookupcache=none,nfsvers=3,retrans=10"
  storage_size: 20Gi
  storage_class_name: nfs

images:
  trilio_backup_targets: docker.io/trilio/trilio-wlm-helm:<image-tag>
```

Example For backup target type s3:

```
trilio_backup_target:
  backup_target_name: 'S3_BackupTarget'
  backup_target_type: 's3'
  is_default: true

  # S3 Configuration
  s3_type: 'amazon_s3'           # if not Amazon S3, use 'other_s3'
  s3_access_key: 'ACCESSKEY1'
  s3_secret_key: 'SECRETKEY1'
  s3_region_name: 'REGION1'
  s3_bucket: 'BUCKET1'
  s3_endpoint_url: ''             # required only for 'other_s3'
  s3_signature_version: 'default'
  s3_auth_version: 'DEFAULT'
  s3_ssl_enabled: true
  s3_ssl_verify: true
  s3_ssl_ca_cert: ''              # add CA cert for 'other_s3'

images:
  trilio_backup_targets: docker.io/trilio/trilio-wlm-helm:<image-tag>
```

{% hint style="info" %}
a. If using Amazon S3, s3\_endpoint\_url and s3\_ssl\_ca\_cert can be left empty.

b. If using Other S3 (like MinIO, CEPH S3, etc.), s3\_endpoint\_url and s3\_ssl\_ca\_cert (*if required*) must be set.
{% endhint %}

## 2. Install/Upgrade Backup Target

### 2.1] Helm Install/Upgrade Command

Please ensure that `values_overrides/<backup-target-type>.yaml` file is updated with correct NFS/S3 backup target configuration.

```
cd ../../
helm upgrade --install <release-name> ./trilio-backup-targets \
  -n trilio-openstack \
  -f ./trilio-backup-targets/values_overrides/nfs.yaml \
  --wait \
  --timeout 5m
```

{% hint style="info" %}
a. Replace `release-name` with a name for respective backup target (e.g., nfs-bt, s3-bt).

b. Replace `values_overrides/nfs.yaml` with the actual path to respective values overrides file.
{% endhint %}

## 3. Verification

### 3.1] Verify Backup Target Pods

Check if the backup target pods are running

```
kubectl get pods -n trilio-openstack -l component=nfs-mount
```

### 3.2] Check Mounts (for NFS targets)

Exec into the nfs-mount pod and check if the mount is successful.

```
kubectl exec -n trilio-openstack -it <nfs-mount-pod-name> -- mount | grep trilio

Mount path like the one below should be visible
/var/lib/trilio/triliovault-mounts/<base64-nfs-path>
```

### 3.3] Verify Persistent Volumes (PV/PVCs)

Check if volumes are properly created:

```
kubectl get pv | grep trilio-openstack
kubectl get pvc -n trilio-openstack | grep trilio
```

Required installation/updates are done.

If everything looks good, the NFS/S3 backup target is successfully installed and ready to use.
