All Projects → WoozyMasta → kube-dump

WoozyMasta / kube-dump

Licence: GPL-3.0 License
Backup a Kubernetes cluster as a yaml manifest

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to kube-dump

butdr
Backup to Cloud( Google Drive, Dropbox ... ) use rclone
Stars: ✭ 49 (-65.49%)
Mutual labels:  backup, backup-script, backup-tool
n3dr
Nexus3 Disaster Recovery (N3DR) is a tool that is capable of downloading all artifacts from a Nexus3 server and to migrate them to another Nexus3 server. Note that some repository formats are not supported at the moment.
Stars: ✭ 110 (-22.54%)
Mutual labels:  backup, backup-tool
linux-android-backup
Back up your device without vendor lock-ins, using insecure software or root. Supports encryption and compression out of the box. Works cross-platform.
Stars: ✭ 119 (-16.2%)
Mutual labels:  backup, backup-script
raptor
The definitive EasyEngine installer with fully functional backup-restore and SFTP functionalities included
Stars: ✭ 26 (-81.69%)
Mutual labels:  backup, backup-script
kahoy
Simple Kubernetes raw manifests deployment tool
Stars: ✭ 33 (-76.76%)
Mutual labels:  k8s, kubectl
mmd-gitlab-backuper
a package to backup from all projects that you have on gitlab
Stars: ✭ 27 (-80.99%)
Mutual labels:  backup, backup-script
auto-mysql-backup
a wrapper for automysqlbackup
Stars: ✭ 19 (-86.62%)
Mutual labels:  backup, backup-script
MailcowBackup
Script to backup/restore Mailcow and the host system using borgbackup. Handles 503 error page generation, mailflow stop/restart, SQL database dump, borg backup and prune and integrates with Logwatch for easy monitoring.
Stars: ✭ 28 (-80.28%)
Mutual labels:  backup, backup-script
BackupAssistant
Backup Assistant helps you to backup your files (like database backups or log files) to FTP Server. It works on any platform. ( Windows, Linux and Mac.)
Stars: ✭ 32 (-77.46%)
Mutual labels:  backup, backup-tool
elasticsearch-shell-backup
Elasticsearch 2, 5 shell script backup utils.
Stars: ✭ 18 (-87.32%)
Mutual labels:  backup, backup-script
gitlab-mattermost-backup
A simple backup script for mattermost in gitlab omnibus package
Stars: ✭ 23 (-83.8%)
Mutual labels:  backup, backup-script
time-travel
An rsync based backup script which only transfers modified files. Smooth integration into OSX Notification Center.
Stars: ✭ 43 (-69.72%)
Mutual labels:  backup, backup-script
k8s-deployer
Deploy Kubernetes service and store retrieved information in the Consul K/V store
Stars: ✭ 23 (-83.8%)
Mutual labels:  k8s, kubectl
kubectl-janitor
List Kubernetes objects in a problematic state
Stars: ✭ 48 (-66.2%)
Mutual labels:  k8s, kubectl
kubeswitch
visually select kubernetes context/namespace from tree
Stars: ✭ 15 (-89.44%)
Mutual labels:  k8s, kubectl
kube-lineage
A CLI tool to display all dependencies or dependents of an object in a Kubernetes cluster.
Stars: ✭ 238 (+67.61%)
Mutual labels:  k8s, kubectl
command-line-cheat-sheet
📝 A place to quickly lookup commands (bash, vim, git, AWS, Docker, Terraform, Ansible, kubectl)
Stars: ✭ 30 (-78.87%)
Mutual labels:  k8s, kubectl
VestaCP-Sync-Backups-To-Mega
VestaCP: uploading backups to the MEGA cloud
Stars: ✭ 17 (-88.03%)
Mutual labels:  backup, backup-script
pgsql-backup
PostgreSQL Backup Script. Ported from AutoMySQLBackup.
Stars: ✭ 24 (-83.1%)
Mutual labels:  backup, backup-script
bash-backup
Simple backup script for GNU/Linux servers
Stars: ✭ 76 (-46.48%)
Mutual labels:  backup, backup-script

Kube-dump

Backup a Kubernetes cluster as a yaml manifest.

Logo

GitHub release (latest by date) GitHub branch checks state GitHub GitHub last commit Docker Pulls Docker Cloud Build Status Docker Image Size (latest semver)

Description

With this utility you can save your cluster resources as nice yaml manifests without unnecessary metadata.

Key features:

  • Saving only those resources to which you have read access;
  • Can work with a list of namespaces otherwise all available ones will be used;
  • Can save both namespaced and cluster wide resources;
  • You can run locally, in a container or in a cluster;
  • Can archive and rotate dump archives;
  • Can commit dumps to a git repository and send to a remote repository;
  • You can specify a list of resources to be dumped;
  • It is possible to configure via command line arguments as well as via environment variables.

asciicast

Quick Start Guides

Container Images

Dependencies

Required dependencies:

  • kubectl - Kubernetes command-line tool
  • jq - Command-line JSON processor
  • yq - Command-line YAML processor

Optional dependencies:

  • curl - Used to check kubernetes api livez probe when use serviceaccount
  • git - Used to store backups as a git repository
  • tar - Used to create backup archives with one of the compression libraries:
    • xz - a lossless data compression file format based on the LZMA algorithm
    • gzip - single-file/stream lossless data compression utility
    • bzip2 - compression program that uses the Burrows–Wheeler algorithm

Commands and flags

./kube-dump [command] [[flags]]

Available Commands:
  all, dump                     Dump all kubernetes resources
  ns,  dump-namespaces          Dump namespaced kubernetes resources
  cls, dump-cluster             Dump cluster wide kubernetes resources

The command can also be passed through the environment variable MODE.
All flags presented below have a similar variable in uppercase, with underscores
For example:
  --destination-dir == DESTINATION_DIR 

Flags:
  -h, --help                  This help
  -s, --silent                Execute silently, suppress all stdout messages
  -d, --destination-dir       Path to dir for store dumps, default ./data
  -f, --force-remove          Delete resources in data directory before launch
      --detailed              Do not remove detailed state specific fields
      --output-by-type        Organize output into directories by resource type
      --flat                  Organize all resources of the same type in the
                              same file

Kubernetes flags:
  -n, --namespaces            List of kubernetes namespaces
  -r, --namespaced-resources  List of namespaced resources
  -k, --cluster-resources     List of cluster resources
      --kube-config           Path to kubeconfig file
      --kube-context          The name of the kubeconfig context to use
      --kube-cluster          The name of the kubeconfig cluster to use
      --kube-insecure-tls     Skip check server's certificate for validity

Git commit flags:
  -c, --git-commit            Commit changes
  -p, --git-push              Commit changes and push to origin
  -b, --git-branch            Branch name
      --git-commit-user       Commit author username
      --git-commit-email      Commit author email
      --git-remote-name       Remote repo name, defualt is origin
      --git-remote-url        Remote repo URL

Archivate flags:
  -a, --archivate             Create archive of data dir
      --archive-rotate-days   Rotate archives older than N days
      --archive-type          Archive type xz, gz or bz2, default is tar

Example of use:
  $cmd dump-namespaces -n default,dev -d /mnt/dump -spa --archive-type gz

Environment variables

All environment variables are described in the .env file, you can use them both for the container launch configuration and directly from the .env file, it is read automatically at startup.

Resources default's

All resources automatically discovered from the API if not pass as argument.

  • List of namespaces
  • List of default namespaced resources
  • List of default cluster wide resources

Plans for further development

  • Sending dumps to s3 bucket;
  • Sending notifications by email and webhook;
  • Git-crypt to encrypt secrets;
  • Bash autocomplete.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].