All Projects → vshn → K8up

vshn / K8up

Licence: bsd-3-clause
Kubernetes and OpenShift Backup Operator

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to K8up

Argocd Operator
A Kubernetes operator for managing Argo CD clusters.
Stars: ✭ 151 (+16.15%)
Mutual labels:  operator, openshift, kubernetes-operator
pulp-operator
Kubernetes Operator for Pulp 3. Under active development.
Stars: ✭ 32 (-75.38%)
Mutual labels:  openshift, operator, kubernetes-operator
grafana-operator
An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Stars: ✭ 449 (+245.38%)
Mutual labels:  openshift, operator, kubernetes-operator
Postgres Operator
Production PostgreSQL for Kubernetes, from high availability Postgres clusters to full-scale database-as-a-service.
Stars: ✭ 2,166 (+1566.15%)
Mutual labels:  operator, kubernetes-operator
Capsule
Kubernetes Operator for multi-tenancy
Stars: ✭ 261 (+100.77%)
Mutual labels:  operator, kubernetes-operator
Es Operator
Kubernetes Operator for Elasticsearch
Stars: ✭ 282 (+116.92%)
Mutual labels:  operator, kubernetes-operator
siddhi-operator
Operator allows you to run stream processing logic directly on a Kubernetes cluster
Stars: ✭ 16 (-87.69%)
Mutual labels:  operator, kubernetes-operator
Camel K
Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers
Stars: ✭ 549 (+322.31%)
Mutual labels:  operator, openshift
Metering Operator
The Metering Operator is responsible for collecting metrics and other information about what's happening in a Kubernetes cluster, and providing a way to create reports on the collected data.
Stars: ✭ 320 (+146.15%)
Mutual labels:  operator, kubernetes-operator
Harbor Operator
Kubernetes operator for Harbor service components
Stars: ✭ 130 (+0%)
Mutual labels:  operator, kubernetes-operator
Cluster Operator
cluster-operator creates, configures and helps manage StorageOS cluster on Kubernetes
Stars: ✭ 50 (-61.54%)
Mutual labels:  operator, kubernetes-operator
Service Level Operator
Manage application's SLI and SLO's easily with the application lifecycle inside a Kubernetes cluster
Stars: ✭ 260 (+100%)
Mutual labels:  operator, kubernetes-operator
rabbitmq-operator
RabbitMQ Kubernetes operator
Stars: ✭ 16 (-87.69%)
Mutual labels:  operator, kubernetes-operator
Reshifter
Kubernetes cluster state management
Stars: ✭ 292 (+124.62%)
Mutual labels:  backup, openshift
argocd-operator-helm
[DEPRECATED] Argo CD Operator (Helm) installs Argo CD in OpenShift and Kubernetes.
Stars: ✭ 18 (-86.15%)
Mutual labels:  openshift, operator
Kopf
A Python framework to write Kubernetes operators in just a few lines of code
Stars: ✭ 488 (+275.38%)
Mutual labels:  operator, kubernetes-operator
Kopf
A Python framework to write Kubernetes operators in just few lines of code.
Stars: ✭ 971 (+646.92%)
Mutual labels:  operator, kubernetes-operator
Container Security Operator
Identify image vulnerabilities in Kubernetes pods
Stars: ✭ 68 (-47.69%)
Mutual labels:  operator, kubernetes-operator
K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (-37.69%)
Mutual labels:  operator, kubernetes-operator
spark-operator
Operator for managing the Spark clusters on Kubernetes and OpenShift.
Stars: ✭ 129 (-0.77%)
Mutual labels:  openshift, kubernetes-operator

Build Go version Kubernetes version Version Maintainability GitHub downloads Docker image License

K8up logo

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 schedule and a credentials 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.

Documentation

The documentation is written in AsciiDoc and published with Antora to k8up.io. It's source is available in the docs/ directory.

Contributing

K8up is written using the Operator SDK.

You'll need:

  • A running Kubernetes cluster (minishift, minikube, k3s, ... you name it)
  • kubectl and kustomize
  • Go development environment
  • Your favorite IDE (with a Go plugin)
  • Docker
  • make

To run the end-to-end test (e.g. make e2e-test), you additionally need:

  • helm (version 3)
  • jq
  • node and npm
  • bash (installed, doesn't have to be your default shell)
  • shasum or sha1sum
  • base64
  • find

These are the most common make targets: build, test, docker-build, run, kind-run. Run make help to get an overview over the relevant targets and their intentions.

Generate Kubernetes code

If you make changes to the CRD structs you'll need to run code generation. This can be done with make:

make generate

Install CRDs

CRDs can be either installed on the cluster by running make install or using kubectl apply -k config/crd/apiextensions.k8s.io/v1.

Currently there's an issue using make install 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:

  1. as a container image (see quickstart)
  2. using make run (provide your own kubeconfig)
  3. using make kind-run (uses KIND to install a cluster in docker and provides its own kubeconfig in testbin/)
  4. 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

K8up supports both OpenShift 3.11 clusters and newer Kubernetes clusters 1.16+. However, to support OpenShift 3.11 a legacy CRD definition with apiextensions.k8s.io/v1beta1 is needed, while K8s 1.22+ only supports apiextensions.k8s.io/v1. You need node and npm to run the tests, as it runs with DETIK.

To run e2e tests, execute:

make e2e-test

To test compatibility of k8up with OpenShift 3.11 (or any other specific K8s version), you can run end-to-end tests like this:

make e2e-test -e CRD_SPEC_VERSION=v1beta1 -e KIND_NODE_VERSION=v1.13.12 -e KIND_KUBECTL_ARGS=--validate=false -e BACKUP_ENABLE_LEADER_ELECTION=false

To test just a specific e2e test, run:

make e2e-test -e BATS_FILES=test-00-deployment.bats

To remove the local KIND cluster and other e2e resources, run:

make e2e-clean

To cleanup all created artifacts, there's always:

make clean

Example configurations

There are a number of example configurations in config/samples. Apply them using kubectl apply -f config/samples/somesample.yaml

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].