Application Centric Backups
T4K backup and recovery solution natively identifies the Kubernetes applications to backup based on labels, helm release and operators.
Label based applications: T4K takes input of label(s) from the user and expects that particular label is set on all the application resources. During backup, T4K lists all k8s resources based on the label(s) provided. After this, T4K identifies the dependencies of the backup resources. For example if the deployment has the label then the service account of that deployment will also be backed up as part of dependency resolution. Helm based applications: T4K takes input of helm release name and we identify the resources in the helm release by decoding the helm release secret present in the same namespace. Also, we identify if the helm release have dependent helm subchart(s), then T4K backups the resources of the helm subchart(s) as well. At the time of restore, the application is restored in the form of helm chart and the entire application can be treated as a new helm release.
Operator Based Applications: Operator application consists of CustomResourceDefinition(CRD) and its controller. Whenever CR is created for the operator CRD, controller creates the actual application resources and your application comes up and running. T4K takes the input of operator resources, custom resources and application resources to identify the entire operator application for backup.
In operator resource, T4K identify the operator resources either by user provided label(s) or helm release name based on the installation method of operator. In custom resources, T4K takes the input of CR name and its CRD which includes the GVK(GroupVersionKind). In Application resources, T4K identifies the resources created by the operator on reconciliation of the custom resources. We identify the application resources automatically using the owner reference of the CR as well. However if any operator doesn't add owner reference of the CR on application resources then T4K identifies those resources from the label(s) provided.