Kubernetes Backup with Velero

Kubernetes backup and restore with Velero. Use when creating backups, restoring applications, managing disaster recovery, or migrating workloads between clusters.

Rohit Ghumare

@rohitg00

Install

$ openclaw skills install @rohitg00/k8s-backup

Kubernetes Backup with Velero

Manage backups and restores using kubectl-mcp-server's Velero tools.

Requires the backup toolset: start kubectl-mcp-server with --toolsets default,backup (or MCP_TOOLSETS=default,backup).

When to Apply

Use this skill when:

  • User mentions: "backup", "restore", "Velero", "disaster recovery", "DR"
  • Operations: creating backups, restoring namespaces, migration
  • Keywords: "protect", "recover", "migrate", "snapshot"

Priority Rules

PriorityRuleImpactTools
1Verify Velero installation firstCRITICALdetect_ecosystem
2Check backup location before createHIGHlist_backup_locations
3Wait for backup completionHIGHget_backup
4Test restores to non-prod firstMEDIUMcreate_restore

Quick Reference

TaskToolExample
Detect Velerodetect_ecosystemdetect_ecosystem()
List backupslist_backupslist_backups()
Create backupcreate_backupcreate_backup(name, namespaces)
Restorecreate_restorecreate_restore(name, backup_name)

Check Velero Installation

detect_ecosystem()

list_backup_locations()

Create Backups

create_backup(
    name="my-backup",
    included_namespaces=["default", "app-namespace"]
)

create_backup(
    name="app-backup",
    included_namespaces=["default"],
    snapshot_volumes=False
)

create_backup(
    name="config-backup",
    included_namespaces=["default"],
    excluded_namespaces=["kube-system"]
)

create_backup(
    name="daily-backup",
    included_namespaces=["production"],
    ttl="720h"
)

List and Describe Backups

list_backups()

get_backup(name="my-backup")

Restore from Backup

create_restore(
    name="my-restore",
    backup_name="my-backup"
)

create_restore(
    name="my-restore",
    backup_name="my-backup",
    restore_pvs=False
)

create_restore(
    name="config-restore",
    backup_name="my-backup",
    included_namespaces=["default"]
)

create_restore(
    name="partial-restore",
    backup_name="my-backup",
    excluded_namespaces=["kube-system"]
)

List and Monitor Restores

list_restores()

get_restore(name="my-restore")

Scheduled Backups

list_backup_schedules()

list_backup_schedules(namespace="velero")

kubectl_apply(manifest="""
apiVersion: velero.io/v1
kind: Schedule
metadata:
  name: daily-backup
  namespace: velero
spec:
  schedule: "0 2 * * *"
  template:
    includedNamespaces:
    - production
    ttl: 720h
""")

Disaster Recovery Workflow

Create DR Backup

from datetime import datetime

create_backup(
    name=f"dr-backup-{datetime.now().strftime('%Y%m%d-%H%M%S')}",
    included_namespaces=["production"]
)
get_backup(name="dr-backup-20260130-120000")

Restore to New Cluster

detect_ecosystem()
list_backups()
create_restore(
    name="dr-restore",
    backup_name="dr-backup-..."
)
get_restore(name="dr-restore")

Prerequisites

  • Velero: Required for all backup tools
    velero install --provider aws --bucket my-bucket --secret-file ./credentials
    

Related Skills

Top skills in this category