ome / devspace

Continuous integration tool for OME projects
18 stars 18 forks source link

Nexus: add cleanup policy strategy #193

Open sbesson opened 2 years ago

sbesson commented 2 years ago

As of 0.16.0, this repository includes some minimal infrastructure to spin up a Nexus container and initialize a default maven-internal repository which can be used by the various Java building jobs to upload artifacts - see https://github.com/ome/devspace/blob/0.16.0/nexus-data/createRepoMavenInternal.json.

In the context of a permanent devspace, the default configuration will lead to a steady increase of the binary content under nexus-data which will eventually fill up the disk space.

Similarly to what is done by the Jenkins jobs generating artifacts, the way to manage disk space is to implement some cleanup policy allowing to rotate the artifacts. For instance, in https://merge-ci.openmicroscopy.org/jenkins/, a cleanup policy keeping only the 5 last snapshots is attached to the maven-internal repository. As noted in the documentation, a Compact blob store task also needs to be created and scheduled regularly to reclaim disk space for deleted artifacts (ran daily in the merge-ci example described above)

Ideally, these tasks and policies should be configured when initializing the Maven data. The default Maven API does not appear to include this level of granularity https://github.com/ome/devspace/pull/159 investigated a new strategy based on the usage of nexus-cli to create these more advanced configurations and is likely the best starting point to look into managing this configuration.