Skip to content

Installation

Prerequisites

  • Kubernetes 1.19+
  • kubectl configured for your cluster
  • Helm 3.x (for Helm installation)

1. Apply CRDs

CRDs are managed separately from the Helm chart to avoid accidental deletion on helm uninstall:

kubectl apply -f crds/

2. Install the Operator

helm install backup-operator ./charts/backup-operator \
  -n bnerd-backup-system --create-namespace

3. Verify

kubectl get pods -n bnerd-backup-system -l app.kubernetes.io/name=backup-operator

Expected output:

NAME                                    READY   STATUS    RESTARTS   AGE
backup-operator-xxxxxxxxxx-xxxxx        1/1     Running   0          30s

Key Helm Values

Parameter Default Description
image.repository registry.bnerd.com/public/bnerd-backup-operator Operator image
image.tag latest Image tag
image.pullPolicy Always Pull policy
replicaCount 1 Number of replicas
rbac.create true Create RBAC resources
rbac.clusterWide true Use ClusterRole (cluster-wide access)
resources.requests.cpu 100m CPU request
resources.requests.memory 128Mi Memory request
resources.limits.cpu 500m CPU limit
resources.limits.memory 512Mi Memory limit
metrics.enabled true Enable Prometheus metrics on port 8080
metrics.serviceMonitor.enabled false Create ServiceMonitor for Prometheus Operator
metrics.prometheusRule.enabled false Create PrometheusRule for alerting

RBAC Modes

Cluster-wide (default) -- the operator can manage backups across all namespaces:

helm install backup-operator ./charts/backup-operator \
  --set rbac.clusterWide=true

Namespace-scoped -- the operator only manages backups in its own namespace:

helm install backup-operator ./charts/backup-operator \
  --set rbac.clusterWide=false

Enable Monitoring

To create a ServiceMonitor for automatic Prometheus scraping:

helm install backup-operator ./charts/backup-operator \
  --set metrics.serviceMonitor.enabled=true

To also enable pre-built alerting rules:

helm install backup-operator ./charts/backup-operator \
  --set metrics.serviceMonitor.enabled=true \
  --set metrics.prometheusRule.enabled=true

See the Monitoring and Alerting guide for details.

Upgrade

helm upgrade backup-operator ./charts/backup-operator \
  -n bnerd-backup-system

After upgrading the operator, all VolumeBackup CronJobs are automatically reconciled within 5 minutes to pick up any changes.

Uninstall

helm uninstall backup-operator -n bnerd-backup-system

Note

CRDs and existing backup resources are not deleted when uninstalling the Helm chart. Remove CRDs manually with kubectl delete -f crds/ if desired.

Kustomize

kubectl apply -k manifests/

This deploys the operator into the bnerd-backup-system namespace with default settings.

To customise the image tag, edit manifests/kustomization.yaml:

images:
  - name: registry.bnerd.com/public/bnerd-backup-operator
    newTag: v0.9.1

Endpoints

Once running, the operator exposes two HTTP endpoints:

Port Path Purpose
8080 /metrics Prometheus metrics
8081 /healthz Liveness probe
8081 /readyz Readiness probe (healthy if reconciled in the last 10 minutes)