Skip to content

feat: catalog index consumption in install-dynamic-plugins.py to extract and consume catalog index - #3737

Merged
rm3l merged 30 commits into
redhat-developer:mainfrom
Fortune-Ndlovu:RHIDP-9761-catalog-index-extraction
Dec 2, 2025
Merged

feat: catalog index consumption in install-dynamic-plugins.py to extract and consume catalog index#3737
rm3l merged 30 commits into
redhat-developer:mainfrom
Fortune-Ndlovu:RHIDP-9761-catalog-index-extraction

Conversation

@Fortune-Ndlovu

@Fortune-Ndlovu Fortune-Ndlovu commented Nov 23, 2025

Copy link
Copy Markdown
Member

Description

catalog index consumption in install-dynamic-plugins.py to extract and use dynamic-plugins.default.yaml from an OCI artifact instead of the embedded file.

Assisted-by: Cursor
Signed-off-by: Fortune Ndlovu fndlovu@redhat.com

Which issue(s) does this PR fix

PR acceptance criteria

Please make sure that the following steps are complete:

  • GitHub Actions are completed and successful
  • Unit Tests are updated and passing
  • E2E Tests are updated and passing
  • Documentation is updated if necessary (requirement for new features)
  • Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

@github-actions

Copy link
Copy Markdown
Contributor

…ns.py

Enable install-dynamic-plugins.py to consume plugin catalog index as an OCI artifact.
When CATALOG_INDEX_IMAGE is set, the script uses skopeo to pull the catalog index image,
extracts its layers to a temporary directory, and reads dynamic-plugins.default.yaml from
the artifact. This file is prepended to the includes list, replacing the embedded default
file to avoid duplicates. The implementation supports tar auto-detection (r:*) for different
compression formats, fixes an OCI plugin directory creation bug, and ensures cleanup of
temporary files after processing. Fully backwards compatible when CATALOG_INDEX_IMAGE is not set.
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

Comment thread docker/install-dynamic-plugins.py
function to handle cases where layer files referenced in the OCI manifest are
missing from the downloaded image. Instead of failing with an unhandled exception,
the function should print a warning and continues processing other layers. Add unit tests to validate the catalog index extraction features including
success cases, missing file handling, and large file skipping. Lastly add minimal documentation

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
…itespace,while keeping only the functional additions for catalog index testing

Signed-off-by: Fortune Ndlovu <fndlovu@redhat.com>
@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

@Fortune-Ndlovu

Copy link
Copy Markdown
Member Author

cc/ @rm3l for final review please

Comment thread docker/install-dynamic-plugins.py Outdated
Comment thread docker/install-dynamic-plugins.py Outdated
Comment thread docker/install-dynamic-plugins.py Outdated
Comment thread docker/install-dynamic-plugins.py Outdated
Comment thread docker/install-dynamic-plugins.py Outdated
Comment thread docker/install-dynamic-plugins.py Outdated
…sRoot to dynamic_plugins_root in the cleanup function to follow Python's PEP 8 snake_case naming convention
@github-actions

github-actions Bot commented Dec 1, 2025

Copy link
Copy Markdown
Contributor

@sonarqubecloud

sonarqubecloud Bot commented Dec 1, 2025

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Dec 1, 2025

Copy link
Copy Markdown
Contributor

@rm3l rm3l 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.

/lgtm

@openshift-ci openshift-ci Bot added the lgtm label Dec 2, 2025
@openshift-ci

openshift-ci Bot commented Dec 2, 2025

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: nickboldt, rm3l

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@rm3l
rm3l merged commit a18bbc9 into redhat-developer:main Dec 2, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants