Skip to content

CLID-632: Update README.md#1461

Open
dorzel wants to merge 1 commit into
openshift:mainfrom
dorzel:CLID-632
Open

CLID-632: Update README.md#1461
dorzel wants to merge 1 commit into
openshift:mainfrom
dorzel:CLID-632

Conversation

@dorzel

@dorzel dorzel commented Jul 1, 2026

Copy link
Copy Markdown
Member

Description

Update README.md, unifying the style and updating stale info.

Github / Jira issue: https://redhat.atlassian.net/browse/CLID-632

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Expected Outcome

Summary by CodeRabbit

  • Documentation
    • Updated the main documentation to match the latest oc-mirror v2 structure and examples.
    • Refreshed quick start, authentication, destination prefix, and build/prerequisite guidance.
    • Revised configuration examples, including image set, disk/mirror workflows, delete flow, and list command usage.
    • Updated flag references and feature documentation for clearer command options and behavior.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 1, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 1, 2026

Copy link
Copy Markdown

@dorzel: This pull request references CLID-632 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Description

Update README.md, unifying the style and updating stale info.

Github / Jira issue: https://redhat.atlassian.net/browse/CLID-632

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Code Improvements (Refactoring, Performance, CI upgrades, etc)
  • Internal repo assets (diagrams / docs on github repo)
  • This change requires a documentation update on openshift docs

How Has This Been Tested?

Expected Outcome

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot requested review from adolfo-ab and aguidirh July 1, 2026 20:09
@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: dorzel
Once this PR has been reviewed and has the lgtm label, please assign r4f4 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Walkthrough

The README.md documentation was substantially rewritten to reflect updated oc-mirror v2 structure, including revised introduction, overview, quick start, example ImageSetConfiguration YAML, usage examples for mirror/delete/list commands, flags reference, and features/repository sections.

Changes

README documentation update

Layer / File(s) Summary
Introduction, overview, and quick start sections
README.md
New "oc-mirror" header, updated table of contents, revised Overview workflow table, and rewritten Quick Start/Prerequisites/Build sections with v1 deprecation note.
ImageSetConfiguration examples and usage instructions
README.md
Updated example YAML (additionalImages, Helm chart entries) and refreshed Mirror to Disk/Disk to Mirror/Mirror to Mirror and Delete Subcommand usage instructions.
Delete/List examples, Flags Reference, and Features sections
README.md
Updated Delete Phase 1/2 examples, List subcommand documentation, full Flags Reference, Features subsections, and Repository Guidance/Security/License content.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: a substantial README.md update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed PASS: This PR is README-only; no Ginkgo test titles were added or modified, so there are no dynamic test names to flag.
Test Structure And Quality ✅ Passed PR only rewrites README.md; no Ginkgo test code was added or modified, so the checklist is not applicable.
Microshift Test Compatibility ✅ Passed PASS: This PR only rewrites README.md; no new Ginkgo e2e tests or test files were added, so MicroShift compatibility does not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR only updates README.md; no new Ginkgo e2e tests were added, so SNO compatibility is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed PASS: The PR only updates README.md; no manifests, controllers, or scheduling code were changed, so topology-aware scheduling checks don’t apply.
Ote Binary Stdout Contract ✅ Passed Only README.md changed; no process-level code or stdout paths were modified.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR only updates README/docs; no new or modified Ginkgo e2e tests were added, so IPv4/external-connectivity checks are not applicable.
No-Weak-Crypto ✅ Passed README-only change; scans found no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret-compare patterns.
Container-Privileges ✅ Passed Docs-only README update; no privileged/hostPID/hostNetwork/allowPrivilegeEscalation/SYS_ADMIN/root security settings appear in the modified README.
No-Sensitive-Data-In-Logs ✅ Passed README-only doc changes; no log statements or secrets/API keys/PII/session IDs/customer data found, only generic examples like localhost and paths.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Line 66: The README link text in the oc-mirror v1 deprecation note is too
vague and triggers markdownlint. Update the markdown link in the note to use
descriptive text instead of “here,” using a clear label such as “v1 README” so
the link target in the note remains obvious.
- Around line 227-292: Add the missing fenced-code language annotations in the
README Flags Reference sections so markdownlint passes; update each command
example fence in the flags blocks to use bash syntax highlighting, keeping the
content unchanged. Locate the affected markdown code fences under the command
flag sections and apply the same fix consistently throughout the reference.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 3d66572a-7600-4d69-b8f7-6962af636c8f

📥 Commits

Reviewing files that changed from the base of the PR and between c3552e2 and a36ecb9.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md

The default podman credentials location (`$XDG_RUNTIME_DIR/containers/auth.json`) is used for authenticating to container registries. The Docker location (`~/.docker/config.json`) is also supported as a fallback.

> **Note:** oc-mirror v1 was deprecated in OCP 4.18 and will be removed in a future release. The v1 README is available [here](v1/README_v1.md).

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use descriptive link text.

[here] is too vague for the v1 README link and triggers the markdownlint warning. Please rename it to something explicit, e.g. v1 README.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 66-66: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 66, The README link text in the oc-mirror v1 deprecation
note is too vague and triggers markdownlint. Update the markdown link in the
note to use descriptive text instead of “here,” using a clear label such as “v1
README” so the link target in the note remains obvious.

Source: Linters/SAST tools

Comment thread README.md
Comment on lines 227 to 292
```
make test-unit
--authfile string path of the authentication file. Default is ${XDG_RUNTIME_DIR}/containers/auth.json
--cache-dir string oc-mirror cache directory location. Default is $HOME
-c, --config string Path to imageset configuration file
--dest-tls-verify require HTTPS and verify certificates when talking to the container registry or daemon (default true)
--log-level string Log level one of (info, debug, trace, error) (default "info")
--parallel-images uint Number of images mirrored in parallel (default 4)
--parallel-layers uint Number of image layers mirrored in parallel (default 5)
--policy string Path to a trust policy file
-p, --port uint16 HTTP port used by oc-mirror's local storage instance (default 55000)
--registries.d DIR use registry configuration files in DIR (e.g. for container signature storage)
--retry-delay duration delay between retries (default 0 uses exponential backoff, set value uses constant delay)
--retry-times int the number of times to possibly retry (default 5)
--src-tls-verify require HTTPS and verify certificates when talking to the container registry or daemon (default true)
--workspace string oc-mirror workspace where resources and internal artifacts are generated
-v, --version version for oc-mirror
-h, --help help for oc-mirror
```

It is also possible to see all the lines coverage by the unit tests generating an HTML using the following command (it will create a file called `cover.html` in the `v2/tests/results` folder):
### Mirror command flags

```
make v2cover
--dry-run Print actions without mirroring images
--dry-run-manifest-lists Like --dry-run, but also includes manifest list sub-digests in mapping.txt (implies --dry-run)
--from string Local storage directory for disk to mirror workflow
--ignore-release-signature Ignore release signature
--image-timeout duration Timeout for mirroring an image (default 10m0s)
--max-nested-paths int Number of nested paths, for destination registries that limit nested paths
--remove-signatures Do not copy image signatures
--rootless-storage-path string Override the default container rootless storage path
--secure-policy Enable signature verification (secure policy for signature verification)
--since string Include all new content since specified date (format yyyy-MM-dd)
--strict-archive Generate archives strictly less than archiveSize (set in the ImageSetConfiguration)
```

## Development
This section will give an overview about oc-mirror v2 architecture and how to generate docs from oc-mirror source code.
### Delete subcommand flags

### Architecture
![Alt text](assets/architecture.png)
```
--delete-id string Identifier to differentiate between versions of delete output files
--delete-signatures Delete container image signatures (for multi-arch, deletes only the manifest list signature)
--delete-v1-images Target images previously mirrored with oc-mirror v1 (used with --generate)
--delete-yaml-file string Path to the generated or updated YAML file for deleting contents
--force-cache-delete Force delete local cache manifests and blobs
--generate Generate the delete YAML listing manifests and blobs to delete
```

### Code Source Documentation Only for oc-mirror v2 developers
### List subcommand flags

The module contains the documentation generated from the code. It means that all comments in packages, types, funcs, variables and constants will generate documentation in HTML.
#### `list releases`

**Install the godoc**
```
go install golang.org/x/tools/cmd/godoc
--channel string List information for a specific channel (defaults to stable)
--channels List all channel information (requires --version)
--filter-by-archs strings Architecture filter for release images (default [amd64])
--version string OpenShift release version
```

**Run the command below **
#### `list operators`

```
godoc -http=:6060
--catalog string List information for a specified catalog
--catalogs List available catalogs for an OpenShift release version (requires --version)
--channel string List information for a specified channel (requires --catalog and --package)
--package string List information for a specified package (requires --catalog)
--version string OpenShift release version
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add language identifiers to the command fences.

The Flags Reference blocks are missing fenced-code languages, which is what markdownlint is warning about. Add bash to each shell example block for highlighting and lint cleanliness.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 227-227: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 248-248: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 264-264: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 277-277: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 286-286: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 227 - 292, Add the missing fenced-code language
annotations in the README Flags Reference sections so markdownlint passes;
update each command example fence in the flags blocks to use bash syntax
highlighting, keeping the content unchanged. Locate the affected markdown code
fences under the command flag sections and apply the same fix consistently
throughout the reference.

Source: Linters/SAST tools

@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown

@dorzel: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

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

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants