mirror of
https://github.com/falcosecurity/falco.git
synced 2025-09-16 06:48:31 +00:00
115 lines
5.9 KiB
Markdown
115 lines
5.9 KiB
Markdown
# Falco Artifacts Cleanup
|
|
|
|
This document reflects when and how we clean up the Falco artifacts from their storage location.
|
|
|
|
**Superseded by**: [drivers-storage-s3 proposal](https://github.com/falcosecurity/falco/blob/master/proposals/20201025-drivers-storage-s3.md).
|
|
|
|
## Motivation
|
|
|
|
The [bintray](https://bintray.com/falcosecurity) open-source plan offers 10GB free space for storing artifacts.
|
|
|
|
They also kindly granted us an additional 5GB of free space.
|
|
|
|
## Goal
|
|
|
|
Keep the storage space usage under 15GB by cleaning up the [Falco artifacts](./20200506-artifacts-scope-part-1.md) from the [storage](./20200818-artifacts-storage).
|
|
|
|
## Status
|
|
|
|
To be implemented.
|
|
|
|
## Packages
|
|
|
|
### Tarballs from Falco master
|
|
|
|
At the moment of writing this document, this kind of Falco package requires approx. 50MB (maximum detected size) of storage space.
|
|
|
|
Since, historically, the [bin-dev](https://bintray.com/falcosecurity/bin-dev) repository is the less used one, this document proposes to keep only the last 10 **Falco development releases** it contains.
|
|
|
|
This means that the [bin-dev](https://bintray.com/falcosecurity/bin-dev) repository will take at maximum 500MB of storage space.
|
|
|
|
### DEB from Falco master
|
|
|
|
At the moment of writing this document, this kind of Falco package requires approx. 5.1MB (maximum detected size) of storage space.
|
|
|
|
Historically, every Falco release is composed by less than 50 merges (upper limit).
|
|
|
|
So, to theoretically retain all the **Falco development releases** that led to a Falco stable release, this document proposes to keep the last 50 Falco DEB packages.
|
|
|
|
This means that the [deb-dev](https://bintray.com/falcosecurity/deb-dev) repository will take at maximum 255MB of storage space.
|
|
|
|
### RPM from Falco master
|
|
|
|
At the moment of writing this document, this kind of Falco package requires approx. 4.3MB (maximum detected size) of storage space.
|
|
|
|
For the same exact reasons explained above this document proposes to keep the last 50 Falco RPM packages.
|
|
|
|
This means that the [rpm-dev](https://bintray.com/falcosecurity/rpm-dev) repository will take at maximum 215MB of storage space.
|
|
|
|
### Stable releases
|
|
|
|
This document proposes to retain all the stable releases.
|
|
|
|
This means that all the Falco packages present in the Falco stable release repositories will be kept.
|
|
|
|
The [bin](https://bintray.com/falcosecurity/bin) repository contains a Falco tarball package for every release.
|
|
This means it grows in space of ~50MB each month.
|
|
|
|
The [deb](https://bintray.com/falcosecurity/deb) repository contains a Falco DEB package for every release.
|
|
This means it grows in space of ~5MB each month.
|
|
|
|
The [rpm](https://bintray.com/falcosecurity/rpm) repository contains a Falco RPM package for every release.
|
|
This means it grows in space of ~4.3MB each month.
|
|
|
|
### Considerations
|
|
|
|
Assuming the size of the packages does not surpass the numbers listed in the above sections, the **Falco development releases** will always take less that 1GB of artifacts storage space.
|
|
|
|
Assuming 12 stable releases at year, at the current size of packages, the **Falco stable releases** will take approx. 720MB of storage space every year.
|
|
|
|
### Implementation
|
|
|
|
The Falco CI will have a new CI job - called `cleanup/packages-dev` - responsible for removing the **Falco development releases** depending on the above plan.
|
|
|
|
This job will be triggered after the `publish/packages-dev` completed successfully.
|
|
|
|
## Drivers
|
|
|
|
As explained in the [Artifacts Storage](./20200818-artifacts-storage) proposal, we build the drivers for the **last two driver versions** associated with **latest Falco stable releases**.
|
|
Then, we store those drivers into a [generic bintray repository](https://bintray.com/falcosecurity/driver) from which the installation process automatically downloads them, if suitable.
|
|
|
|
This document proposes to implement a cleanup mechanism that deletes all the other driver versions available.
|
|
|
|
At the moment of writing, considering only the last two driver versions (**ae104eb**, **85c8895**) associated with the latest Falco stable releases, we ship ~340 eBPF drivers, each accounting for ~3.1MB of storage space, and 1512 kernel modules (~3.1MB size each, too).
|
|
|
|
Thus, we obtain an estimate of approx. 2.875GB for **each** driver version.
|
|
|
|
This document proposes to only store the last two driver versions associates with the latest Falco stable releases. And deleting the other ones.
|
|
|
|
This way, assuming the number of prebuilt drivers does not skyrocket, we can reasonably estimate the storage space used by prebuilt drivers to be around 6GB.
|
|
|
|
Notice that, in case a Falco stable release will not depend on a new driver version, this means the last two driver versions will, in this case, cover more than the two Falco stable releases.
|
|
|
|
### Archiving
|
|
|
|
Since the process of building drivers is time and resource consuming, this document also proposes to move the driver versions in other storage facilities.
|
|
|
|
The candidate is an AWS S3 bucket responsible for holding the deleted driver version files.
|
|
|
|
#### Notice
|
|
|
|
The current mechanism the Falco community uses to store the Falco drivers is explained by the [drivers-storage-s3](https://github.com/falcosecurity/falco/blob/master/proposals/20201025-drivers-storage-s3.md) proposal.
|
|
|
|
### Implementation
|
|
|
|
The [test-infra](https://github.com/falcosecurity/test-infra) CI, specifically its part dedicated to run the **Drivers Build Grid** that runs every time it detects changes into the `driverkit` directory of the [test-infra](https://github.com/falcosecurity/test-infra) repository,
|
|
will have a new job - called `drivers/cleanup` - responsible for removing all the Falco driver versions except the last two.
|
|
|
|
This job will be triggered after the `drivers/publish` completed successfully on the master branch.
|
|
|
|
#### Notice
|
|
|
|
At the moment of writing (2021 09 28) the `drivers/cleanup` job is no more in place.
|
|
|
|
Pragmatically, this means that the older Falco drivers will remain available in their [S3 bucket](https://download.falco.org/?prefix=driver/).
|