Skip to content

API Reference Overview

API Group

All custom resources belong to the backups.k8s.bnerd.com API group, version v1.

Custom Resource Definitions

Kind Plural Short Names Scope Required Fields
VolumeBackup volumebackups vbkp Namespaced volumeClaimRef, repository
VolumeRestore volumerestores vrestore, vr Namespaced sourceBackup or sourceRepository, targetPVC
VolumeSnapshotBackup volumesnapshotbackups vsb Namespaced volumeClaimRef, repository
S3Backup s3backups s3bkp Namespaced source, repository

Repository Types

The repository.type field accepts these values across all backup CRDs:

Type URL Format Secret Fields
s3 s3:endpoint/bucket/path AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, RESTIC_PASSWORD
gcs gs:bucket/path GOOGLE_APPLICATION_CREDENTIALS, GOOGLE_PROJECT_ID, RESTIC_PASSWORD
azure azure:container/path AZURE_ACCOUNT_NAME, AZURE_ACCOUNT_KEY or AZURE_ACCOUNT_SAS, RESTIC_PASSWORD
local local:/path RESTIC_PASSWORD
sftp sftp:host:/path RESTIC_PASSWORD (+ SSH key configuration)
rest rest:https://host/path RESTIC_PASSWORD (+ optional HTTP basic auth)

All Secrets must include RESTIC_PASSWORD for repository encryption.

Shared Field Patterns

These field structures are shared across multiple CRDs:

repository

repository:
  type: s3                    # Required: s3, gcs, azure, local, sftp, rest
  url: "s3:bucket/path"       # Required: backend-specific URL
  secretRef:
    name: my-credentials      # Required: Secret name
    namespace: default        # Optional: defaults to resource namespace

resources

resources:
  requests:
    memory: "256Mi"
    cpu: "200m"
  limits:
    memory: "1Gi"
    cpu: "1000m"

image

image:
  repository: "registry.bnerd.com/public/restic"
  tag: "0.18.1"
  pullPolicy: "Always"        # Always, IfNotPresent, Never

kubeconfig

kubeconfig:
  inCluster: true             # Default: true (use in-cluster credentials)
  secretRef:
    name: remote-kubeconfig   # Required when inCluster=false
    namespace: default
    key: kubeconfig            # Default: "kubeconfig"

Prometheus Metrics

The operator exposes metrics on port 8080 at /metrics. See the Monitoring and Alerting guide for setup instructions.

Operator Lifecycle

Metric Type Labels Description
bnerd_backup_operator_info Info version, group, api_version Operator build information
bnerd_backup_operator_restarts_total Counter -- Total operator restarts
bnerd_backup_operator_start_time_seconds Gauge -- Unix timestamp of last start

VolumeBackup Resource Metrics

Metric Type Labels Description
bnerd_volumebackup_total Counter namespace Resources created
bnerd_volumebackup_active Gauge namespace Active resources
bnerd_volumebackup_deleted_total Counter namespace Resources deleted
bnerd_volumebackup_cronjobs_created_total Counter namespace, volumebackup CronJobs created
bnerd_volumebackup_cronjobs_failed_total Counter namespace, volumebackup, reason Failed CronJob creations
bnerd_volumebackup_cache_pvc_created_total Counter namespace, volumebackup Cache PVCs created
bnerd_volumebackup_reconciliation_total Counter namespace, result Reconciliation runs
bnerd_volumebackup_reconciliation_duration_seconds Histogram namespace Reconciliation duration

VolumeBackup Job Outcome Metrics

Updated every 5 minutes. The job_type label is backup, check, or restore-test.

Metric Type Labels Description
bnerd_volumebackup_last_successful_backup_timestamp Gauge namespace, volumebackup, job_type Last successful Job timestamp
bnerd_volumebackup_last_failed_backup_timestamp Gauge namespace, volumebackup, job_type Last failed Job timestamp
bnerd_volumebackup_last_job_success Gauge namespace, volumebackup, job_type 1=success, 0=failure
bnerd_volumebackup_last_job_duration_seconds Gauge namespace, volumebackup, job_type Last Job duration in seconds

VolumeRestore Metrics

Metric Type Labels Description
bnerd_volumerestore_total Counter namespace Resources created
bnerd_volumerestore_active Gauge namespace, phase Active resources by phase
bnerd_volumerestore_jobs_created_total Counter namespace, volumerestore Jobs created
bnerd_volumerestore_jobs_succeeded_total Counter namespace, volumerestore Successful Jobs
bnerd_volumerestore_jobs_failed_total Counter namespace, volumerestore, reason Failed Jobs
bnerd_volumerestore_pvc_created_total Counter namespace, volumerestore PVCs created
bnerd_volumerestore_deleted_total Counter namespace Resources deleted
bnerd_volumerestore_duration_seconds Histogram namespace, volumerestore, result Restore duration

S3Backup Metrics

Metric Type Labels Description
bnerd_s3backup_total Counter namespace Resources created
bnerd_s3backup_active Gauge namespace Active resources
bnerd_s3backup_cronjobs_created_total Counter namespace, s3backup CronJobs created
bnerd_s3backup_cronjobs_failed_total Counter namespace, s3backup, reason Failed CronJob creations
bnerd_s3backup_cache_pvc_created_total Counter namespace, s3backup Cache PVCs created
bnerd_s3backup_last_successful_backup_timestamp Gauge namespace, s3backup, job_type Last successful timestamp
bnerd_s3backup_last_failed_backup_timestamp Gauge namespace, s3backup, job_type Last failed timestamp
bnerd_s3backup_last_job_success Gauge namespace, s3backup, job_type 1=success, 0=failure
bnerd_s3backup_last_job_duration_seconds Gauge namespace, s3backup, job_type Last Job duration

VolumeSnapshotBackup Metrics

Metric Type Labels Description
bnerd_volumesnapshotbackup_total Counter namespace Resources created
bnerd_volumesnapshotbackup_snapshots_created_total Counter namespace, volumesnapshotbackup Snapshots created
bnerd_volumesnapshotbackup_snapshots_deleted_total Counter namespace, volumesnapshotbackup, reason Snapshots deleted
bnerd_volumesnapshotbackup_backups_total Counter namespace, volumesnapshotbackup, result Backup attempts
bnerd_volumesnapshotbackup_errors_total Counter namespace, volumesnapshotbackup, phase, error_type Errors

Error Tracking

Metric Type Labels Description
bnerd_backup_operator_errors_total Counter resource_type, namespace, operation, error_type All processing errors

OpenAPI Specification

The complete OpenAPI 3.0 specification for all CRDs is available for download: