Better integration with Nexus

Open
#691 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
java, spring-boot

Research direction

The issue names no files or tests; start by tracing the project and component provisioning flows in this deprecated Java/Spring Boot app and document how Nexus credentials, groups, repositories, and mirror metadata are currently handled. Done means an agreed scope and behavior for both creation cases, permissions, and local/CI use, followed by targeted tests.

Written by the indexing model from the issue text.

Description

enhancement

feature request

I'd like to see better integration with Nexus. Currently local usage of nexus:

  • depends on extracting the secret (from OpenShift) so developers can make use of Nexus locally.
  • doesn't provide the repositories one would expect

We are looking at local usage of Nexus because we want to be able to run builds and test locally with an environment that resembles the CI environment as close as possible.

solution proposal

I see 2 base cases

  1. create a new project
    When a new project is created the corresponding groups should be created to or added in nexus so that the personal credentials can be used rather than sharing a secret between a potentially very large group. Not to mention all the hassle if people switch teams, this requires a secret rotation for a lot of people.

    • manager (possibly read/write?)
      • CI -- I'm not sure about this, I'd much prefer if CI was the only thing that could write to the repository
    • team
    • stakeholder

    groups should be added to nexus as read-only member of all "public" nexus repositories but not necesarily all repositories (although I can't see harm in that right now)

  2. create a new component within an existing project
    When a new component is created I would like to an option to create a Nexus repository.

    The reason for not doing that directly at the project level is that we don't know ahead of time which kind of repository is required for which component.

A perfect experience would be if the repositories are magically added to the "meta repositories" (lacking the proper term here) so that when Nexus is configured as the default Maven, PyPI, R, ... mirror all internal packages are available automatically.

alternate/current methods

Manually ordering the repositories is our only option right now. This has proven to be too cumbersome and error prone.

People actively avoid using Nexus as a means to distribute software as the process seems unclear and complicated. We are already seeing several implementations of "I pretend to be a repository but I'm not" in the wild and in use by various high profile projects.

additional context / required praise

❤️ You girls and guys rock! ❤️

Dominant language
Java
Stars
14
Forks
20
Avg merge
3h 35m
Merged PRs (30d)
1

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.

More from opendevstack/ods-provisioning-app

All issues in opendevstack/ods-provisioning-app

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.