back to home

k8up-io / k8up

Kubernetes and OpenShift Backup Operator

919 stars
90 forks
130 issues
GoShellMakefile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing k8up-io/k8up in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/k8up-io/k8up)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

[ ][build] [ ][releases] [ ][releases] [ ][license] K8up Backup Operator K8up is a Kubernetes backup operator based on Restic that will handle PVC and application backups on a Kubernetes or OpenShift cluster. Just create a and a object in the namespace you’d like to backup. It’s that easy. K8up takes care of the rest. It also provides a Prometheus endpoint for monitoring. K8up is production ready. It is used in production deployments since 2019. Documentation The documentation is written in AsciiDoc and published with Antora to k8up.io. It's source is available in the directory. Run to build the docs and preview changes. Contributing K8up is written using Kubebuilder. You'll need: • A running Kubernetes cluster (minishift, minikube, k3s, ... you name it) • kubectl • Go development environment • Your favorite IDE (with a Go plugin) • Docker • • (or for MacOS) To run the end-to-end test (e.g. ), you additionally need: • (version 3) • • (make sure to use mikefarah/yq and not kislyuk/yq) • and • (installed, doesn't have to be your default shell) • • These are the most common make targets: , , , , . Run to get an overview over the relevant targets and their intentions. You can find the project roadmap here. We use Snyk to test the code regularly for vulnerabilities and other security issues. If you find any security issue, please follow our Vulnerability Reporting process. Code Structure K8s consists of two main modules: • The _operator_ module is the part that runs constantly within K8s and contains the various reconciliation loops. • The _restic_ module is our interface to the binary and is invoked whenever a or (or similar) custom resource is instantiated. If it's job (like doing a backup or a restore) is done, the process ends. Generate Kubernetes code If you make changes to the CRD structs you'll need to run code generation. This can be done with make: Install CRDs CRDs can be either installed on the cluster by running or using . Currently there's an issue using related to how the CRDs are specified. Therefore settle to the second approach for now. Run the operator You can run the operator in different ways: • as a container image (see quickstart) • using (provide your own kubeconfig) • using (uses KIND to install a cluster in docker and provides its own kubeconfig in ) • using a configuration of your favorite IDE Best is if you have minio installed somewhere to be able to setup the needed env values. It needs to be reachable from within your dev cluster. Run E2E tests You need and to run the tests, as it runs with [DETIK][detik]. To run e2e tests, execute: To test just a specific e2e test, run: To remove the local KIND cluster and other e2e resources, run: To cleanup all created artifacts, there's always: Example configurations There are a number of example configurations in . Apply them using Community Read more about our community in the documentation. Chat with us The K8up project is present in the CNCF Slack Workspace in the #k8up channel. Monthly community meeting We host a monthly community meeting. For more information, head over to the community documentation. Code of Conduct Our code of conduct can be read at k8up.io. [build]: https://github.com/k8up-io/k8up/actions?query=workflow%3ATest [releases]: https://github.com/k8up-io/k8up/releases [license]: https://github.com/k8up-io/k8up/blob/master/LICENSE [detik]: https://github.com/bats-core/bats-detik