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.
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, aCompact blob store
task also needs to be created and scheduled regularly to reclaim disk space for deleted artifacts (ran daily in themerge-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.