Skip to content

CVE pipeline#2614

Open
djgalloway wants to merge 6 commits into
mainfrom
cve-pipeline
Open

CVE pipeline#2614
djgalloway wants to merge 6 commits into
mainfrom
cve-pipeline

Conversation

@djgalloway

@djgalloway djgalloway commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Packages get pushed to pulp.front (internal only). Containers get pushed to an internal-only quay registry.

This enables us to build packages and containers from ceph-private.git privately.
This includes Jenkins build logs, artifacts, packages, and containers.

Packages will be pushed to the internal-only pulp instance and containers
to the internal-only quay instance.

To avoid job duplication, each job pulls in the respective Jenkinsfiles e.g.,
  - cve-pipelinen -> ceph-dev-pipeline
  - cve-source-dist -> ceph-source-dist

The only difference is the parameters we pass to the job.  The key differences
there are CEPH_REPO points to ceph-private.git whereas ceph-dev-pipeline is
not capable of doing so.  We also tell the pipeline not to use a public
chacra instance.

Signed-off-by: David Galloway <david.galloway@ibm.com>
This logic was chosen to preserve logic the THROWAWAY parameter provides
regardless of package repository repository choice.

Signed-off-by: David Galloway <david.galloway@ibm.com>
Signed-off-by: David Galloway <david.galloway@ibm.com>
Signed-off-by: David Galloway <david.galloway@ibm.com>
Unsure if anything even uses chacra_url.  Containerfile uses `jq -r .[0].url`.

Signed-off-by: David Galloway <david.galloway@ibm.com>
Signed-off-by: David Galloway <david.galloway@ibm.com>
@djgalloway

Copy link
Copy Markdown
Contributor Author
image
curl -s "https://shaman.ceph.com/api/search/?project=ceph&distros=centos/9/x86_64&&ref=wip-pulp-container&flavor=default&sha1=21297a321fbc3edb12858b25bdb878cc78aed4bb" | jq .
[
  {
    "url": "https://pulp.front.sepia.ceph.com/pulp/content/repos/ceph/wip-pulp-container/21297a321fbc3edb12858b25bdb878cc78aed4bb/centos/9/flavors/default/",
    "chacra_url": "https://pulp.front.sepia.ceph.com/pulp/content/repos/ceph/wip-pulp-container/21297a321fbc3edb12858b25bdb878cc78aed4bb/centos/9/flavors/default/",
    "ref": "wip-pulp-container",
    "sha1": "21297a321fbc3edb12858b25bdb878cc78aed4bb",
    "distro": "centos",
    "distro_version": "9",
    "distro_codename": null,
    "modified": "2026-06-17 18:04:30.190595",
    "status": "ready",
    "flavor": "default",
    "project": "ceph",
    "archs": [
      "x86_64",
      "source"
    ],
    "extra": {
      "version": "21.3.0-187-g21297a32",
      "package_manager_version": "21.3.0-187.g21297a32",
      "build_url": "https://jenkins.ceph.com/job/cve-pipeline/18/",
      "root_build_cause": "",
      "node_name": "10.20.192.23+soko13",
      "job_name": "cve-pipeline"
    }
  }
]

curl https://pulp.front.sepia.ceph.com/pulp/content/repos/ceph/wip-pulp-container/21297a321fbc3edb12858b25bdb878cc78aed4bb/centos/9/flavors/default/

<html>
<head><title>Index of repos/ceph/wip-pulp-container/21297a321fbc3edb12858b25bdb878cc78aed4bb/centos/9/flavors/default/</title></head>
<body bgcolor="white">
<h1>Index of repos/ceph/wip-pulp-container/21297a321fbc3edb12858b25bdb878cc78aed4bb/centos/9/flavors/default/</h1>
<hr><pre><a href="../">../</a>
<a href="SRPMS/">SRPMS/</a>                                                                                                
<a href="noarch/">noarch/</a>                                                                                               
<a href="x86_64/">x86_64/</a>                                                                                               
</pre><hr></body>
</html>
image

@djgalloway

djgalloway commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

Requires a minimal change to the Containerfile as well ceph/ceph#69555

@djgalloway djgalloway requested review from dmick and zmc June 18, 2026 20:48

@dmick dmick left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mostly good, a few questions

Comment thread cve-pipeline/config/definitions/cve-pipeline.yml
Comment thread cve-pipeline/config/definitions/cve-pipeline.yml
PACKAGE_MANAGER_VERSION=""
if [ -r "$WORKSPACE/pulp_repo_info" ]; then
source "$WORKSPACE/pulp_repo_info"
fi

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it an error not to have a PACKAGE_MANAGER_VERSION? How does this synchronize?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It gets written here: https://github.com/ceph/ceph-build/pull/2614/changes/BASE..045d140e7cc55c72739aef8c6fbf3af18d7ac860#diff-e43616de828404d15446d65b52a9351b6042eefe915702c04074e6b674e46d71R424-R425.

pulp_upload.sh runs immediately before notify_shaman_pulp_repo.sh in the same step:

./scripts/pulp_upload.sh
./scripts/notify_shaman_pulp_repo.sh ready ceph ${os.name} ${os.version_name} $ARCH https://pulp.front.sepia.ceph.com/pulp/content/repos/ceph/${env.BRANCH}/${env.SHA1}/${os.name}/${os.version_name}/flavors/${env.FLAVOR}/

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. So maybe mention in a comment "PACKAGE_MANAGER_VERSION is set in this file I'm about to source" and have an error condition in case it doesn't arrive for whatever reason, just to harden it a bit. Two scripts changing independently are easier to break in future

PACKAGE_MANAGER_VERSION=""
if [ -r "$WORKSPACE/pulp_repo_info" ]; then
source "$WORKSPACE/pulp_repo_info"
fi

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. So maybe mention in a comment "PACKAGE_MANAGER_VERSION is set in this file I'm about to source" and have an error condition in case it doesn't arrive for whatever reason, just to harden it a bit. Two scripts changing independently are easier to break in future

@zmc zmc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I very much appreciate the approach here. Just a couple very minor questions / suggestions

repo_base_url = pulp_repo_base
} else {
spec_project_url = "${chacra_url}r/ceph/${env.BRANCH}/${env.SHA1}/${os.name}/${os.version_name}/flavors/${env.FLAVOR}/"
repo_base_url = "${chacra_url}/r/ceph/${env.BRANCH}/${env.SHA1}/${os.name}/${os.version_name}/flavors/${env.FLAVOR}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there might be a typo here. I see the trailing / and assume it's desired, but the ${chacra_url}r/ceph vs ${chacra_url}/r/ceph feels less intentional. I'd rather see something like:

def string_a = "foo/bar"
def string_b = "${string_a}/"

export FLAVOR="${env.FLAVOR}"

./scripts/pulp_upload.sh
./scripts/notify_shaman_pulp_repo.sh ready ceph ${os.name} ${os.version_name} $ARCH https://pulp.front.sepia.ceph.com/pulp/content/repos/ceph/${env.BRANCH}/${env.SHA1}/${os.name}/${os.version_name}/flavors/${env.FLAVOR}/

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we find a way to just use spec_project_url ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants