KubeArchive is a system that archives Kubernetes objects to permanent storage, which can then be retrieved through an API. This project was inspired by Tekton Results.
You can check the KubeArchive introduction and demos in:
- The lightning talk from DevConf.CZ 2024 (15 min)
- The presentation with Demo from DevConf.US 2024 (35 min)
Take a look to our docs in https://kubearchive.github.io/kubearchive
KubeArchive consists of the following components:
- Custom Resource Definitions for
NamespaceKubeArchiveConfig,ClusterKubeArchiveConfig,NamespaceVacuumConfig, andGlobalVacuumConfig - An operator that contains the following controllers:
- A controller that reconciles
NamespaceKubeArchiveConfigCustom Resources to update a SinkFilters CR - A controller that reconciles
ClusterKubeArchiveConfigCustom Resources to update a SinkFilters CR - A controller that reconciles
SinkFiltersCR to create watchers that receive resource updates from the Kubernetes API and sends the resources to a sink
- A controller that reconciles
- Vacuums that run periodically to send cloud events to the sink based on configuration from
ClusterVacuumConfigsandNamespaceVacuumConfigs - A sink that receives the cloud events and write the resource information in a DB
- A REST API server that facilitates the retrieval of the archived data as well as logs from configured logging backends
- A CLI that queries both the KubeArchive REST API and the k8s API to expose the resources
The user interacts with KubeArchive by:
- Configuring what to archive and when to archive it in through KubeArchiveConfig CR
- Querying the KubeArchive API to get archived resources
- Querying the archived and the cluster data through the CLI

