# Use Helm to create an Aerospike backup

## Overview

This page describes how to use Helm to create an Aerospike Backup Custom Resource (CR) containing the configuration parameters to perform a backup of an Aerospike cluster on Kubernetes.

## Requirements

Before creating your backup CR using Helm, deploy ABS on your Kubernetes cluster using either:

-   [kubectl](https://aerospike.com/docs/kubernetes/tools/backup/backup-service)
-   [Helm](https://aerospike.com/docs/kubernetes/tools/backup/backup-service-helm)

## Create a backup

1.  Add the Helm repository to get the Helm charts.
    
    ```plaintext
    helm repo add aerospike https://aerospike.github.io/aerospike-kubernetes-enterprise
    ```
    
    If the Helm repository is already added, update the index:
    
    ```plaintext
    helm repo update
    ```
    
2.  Create a custom `values.yaml` file with your required configurations.
    
    The following is an example of a custom user-defined `values.yaml` file.
    
    ```yaml
    ## backupService is the name and namespace reference for the backup service.
    
    ## It is used to communicate to the backup service to trigger operations. This field is immutable.
    
    backupService:
    
      name: aerospikebackupservicesample
    
      namespace: aerospike
    
    ## Config is the free form configuration for the backup in YAML format.
    
    ## This config is used to trigger backups. It includes: aerospike-cluster, backup-routines
    
    backupConfig:
    
      aerospike-cluster:
    
          # Name format: The name must begin with the prefix <backup-namespace>-<backup-name>
    
        aerospike-aerospikebackup-test-cluster:
    
          credentials:
    
            password: admin123
    
            user: admin
    
          seed-nodes:
    
            - host-name: aerocluster.aerospike.svc.cluster.local
    
              port: 3000
    
      backup-routines:
    
          # Name format: The name must begin with the prefix <backup-namespace>-<backup-name>
    
        aerospike-aerospikebackup-test-routine:
    
          backup-policy: test-policy
    
          interval-cron: "@daily"
    
          incr-interval-cron: "@hourly"
    
          namespaces: ["test"]
    
          source-cluster: aerospike-aerospikebackup-test-cluster
    
          storage: local
    ```
    
3.  Install the chart with custom values.
    
    ```plaintext
    helm install aerospike-backup aerospike/aerospike-backup -f CUSTOM_YAML_FILE
    ```
    

## Configuration parameters

For more details on these parameters, see the Aerospike [Backup Configuration Settings](https://aerospike.com/docs/kubernetes/tools/backup/backup-configuration).

| Name | Description | Default |
| --- | --- | --- |
| `customLabels` | Custom labels to add to the AerospikeBackup resource | `{}` (nil) |
| `backupService.name` | Aerospike backup service name |  |
| `backupService.namespace` | Aerospike backup service namespace |  |
| `backupConfig` | Aerospike backup configuration | `{}` (nil) |
| `onDemandBackups[*].id` | Unique identifier for the on-demand backup |  |
| `onDemandBackups[*].routineName` | Routine name used to trigger on-demand backup |  |
| `onDemandBackups[*].delay` | Delay interval before starting the on-demand backup |  |