k8up-io / k8up

Kubernetes and OpenShift Backup Operator
https://k8up.io/
Apache License 2.0
617 stars 63 forks source link

Include K8s objects in backup #908

Open corvus-ch opened 10 months ago

corvus-ch commented 10 months ago

Summary

As a developer using K8up to back up my application I want K8up to create backup of K8s resources in my applications namespace So that can restore my application including its Deployment and other deployment related resources (AlertRules, PVCs, Services, Ingress, etc.)

Context

While GitOps principles is considered a best practice, it is safe to bet, not all users of K8s live those principles. I would not be surprised, that some K8s deployments out there, are done by manually applying and editing K8s resource objects. Having a backup of all those K8s resource objects would be vital when one need to restore an application from backup.

And even with GitOps, it might be useful as it might not always be possible to identify the config version used for a given backup.

As cluster administrators, we do a backup of all (most) K8s objects of a cluster. That backup is by far not complete and its existence of that backup gives a false sense of security. For this reason, we usually do not talk about this, and we use this only as a last resort safeguard.

But, if combined with a consistent application specific backup, adding those K8s object dumps would add value.

Out of Scope

No response

Further links

Acceptance Criteria

As a user with permission to deploy an application within a namespace, I can tell K8up, to also add a list of K8s objects to the backup.

Alternatively, I can tell K8up, to add all K8s objects within the namespace to the backup.

Implementation Ideas

Introduce some new fields in relevant K8up resources and or introduce some namespace level annotations. If set, K8up will dump the defined K8s objects or dump all objects of the namespace and add it to the backup. https://github.com/projectsyn/k8s-object-dumper might be of help.