ome / ome/devspace

Nexus: add cleanup policy strategy

Open
#193 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
19
Forks
18
Avg merge
1d 53m
Merged PRs (30d)
1

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with nexus-data/createRepoMavenInternal.json and inspect pull request 159 for the proposed nexus-cli strategy. Trace how Maven data is initialized, then determine how the cleanup policy and Compact blob store task should be configured and scheduled. Done means the initialized maven-internal repository rotates artifacts and reclaims deleted content as described.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, java, shell
Domain
build-system, devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.