Skip to content

[test_operator] Automatic sync of README.md#3589

Open
sauragar wants to merge 5 commits intoopenstack-k8s-operators:mainfrom
sauragar:OSPRH-19423
Open

[test_operator] Automatic sync of README.md#3589
sauragar wants to merge 5 commits intoopenstack-k8s-operators:mainfrom
sauragar:OSPRH-19423

Conversation

@sauragar
Copy link

@sauragar sauragar commented Jan 7, 2026

This commit will ensure to have the proper auto-sync of README.md with the defaults/main.yml file and also added the post-commit file so whenever someone commits in the defaults/main.yml file the script can be auto-run

Ticket: OSPRH-19423

This PR #3327 is closed since I am not able to reopen the PR

Signed-off-by: Saurabh Agarwal sauragar@redhat.com

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 7, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign rebtoor 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

Copy link
Contributor

@kstrenkova kstrenkova left a comment

Choose a reason for hiding this comment

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

Thank you for the PR! I have tested it locally and found a small issue with updating the defaults. It is explained in the comments, the fix should be rather simple. Other than that I saw the README sync was working nicely, so I think you're close to the finish 🎉 I like that the parameters will be in alphabetical order now :D Maybe there could be a mention of the script somewhere in the README so that people know they can use the sync when creating new variables or updating the old ones.

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/4de28a813ea54e73883c28ab7ff35c81

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 18m 29s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 20m 49s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 41m 18s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 04m 04s
✔️ cifmw-multinode-tempest SUCCESS in 1h 45m 54s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 23s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 48s
cifmw-pod-pre-commit FAILURE in 7m 42s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 29s

Copy link
Contributor

@kstrenkova kstrenkova left a comment

Choose a reason for hiding this comment

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

What is left are just a few transformations from defaults to to Default value: where it is possible. Other than that lgtm.

Copy link
Contributor

@kstrenkova kstrenkova left a comment

Choose a reason for hiding this comment

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

I am adding 2 comments about the same issue atop of my previous comments.

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/fe0fdd8386324989bd8ea335a95f52d6

openstack-k8s-operators-content-provider FAILURE in 4m 53s
⚠️ podified-multinode-edpm-deployment-crc SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-crc-podified-edpm-baremetal-minor-update SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
⚠️ cifmw-multinode-tempest SKIPPED Skipped due to failed job openstack-k8s-operators-content-provider
✔️ cifmw-pod-zuul-files SUCCESS in 4m 32s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 12m 50s
cifmw-pod-pre-commit FAILURE in 8m 07s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 03s

@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/5eac463796534f4b89b1f990b236fe22

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 29m 11s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 28m 37s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 39m 55s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 10m 53s
✔️ cifmw-multinode-tempest SUCCESS in 1h 53m 13s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 24s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 36s
cifmw-pod-pre-commit FAILURE in 8m 30s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 00s

- Add automatic sync script (sync_test_operator_var_readme.py) to keep
  README.md in sync with defaults/main.yml
- Reorganize parameter documentation in alphabetical order
- Replace inline default value definitions with references to
  defaults/main.yml to reduce duplication and improve maintainability
- Add auto-sync note at the top of README.md
- Fix pre-commit ansible-lint compatibility

Signed-off-by: Saurabh Agarwal <sauragar@redhat.com>

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Copy link
Contributor

@kstrenkova kstrenkova left a comment

Choose a reason for hiding this comment

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

I am leaving a few very small comments. I think the PR is almost done, so it would be a good idea to ask someone else for a review to get more perspective. I am also not sure about editing the pre-commit and setup_molecule files, we need someone from ci-framework for that :D


def normalize_default_text(block, value):
# Normalize "Defaults to `x`" → "Default value: `x`"
block = re.sub(
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this substitution is needed. If someone wanted to, they could also do Default: and this code wouldn't help to keep consistency. So I don't think it's necessary to normalize it, as you can never catch all cases.

Copy link
Contributor

@michburk michburk left a comment

Choose a reason for hiding this comment

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

A handful of comments and suggestions.

Overall, I understand the motivation to keep the readme up to date by using a script. We've done a pretty poor job of enforcing that the docs be updated with every change to the defaults, but I don't love the idea of designing and maintaining a script specifically for just one role's readme. I'd be curious to see what other cifmw folks have to say.

* `cifmw_test_operator_logs_image`: (String) Image that should be used to collect logs from the pods spawned by the test-operator. Default value: `quay.io/quay/busybox`
## Generic parameters
<!-- START GENERIC_PARAMETERS -->
* `cifmw_test_operator_artifacts_basedir`: (String) Directory where we will have all test-operator related files. Default value: `{{ cifmw_basedir }}/tests/test_operator` which Default value: `~/ci-framework-data/tests/test_operator`
Copy link
Contributor

Choose a reason for hiding this comment

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

Wording here is weird: "Default value: ... which Default value: ..."

…riables

Update the README sync script to show long single-line default values
inline instead of redirecting to defaults/main.yml. Only complex values
(lists, dicts, multiline strings) now redirect to the defaults file.

This improves documentation readability, especially when viewed on web
browsers where links to defaults/main.yml may not work properly.

Changes:
- Remove length check from should_redirect() function
- Display template strings inline regardless of length
- Remove unused MAX_INLINE_LENGTH and MAX_INLINE_LINES constants
- Clean up debug print statements and comments
- Update README with inline default values

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/e6bd5c4155b14750817cdc542eae5cdb

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 25m 36s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 22m 26s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 35m 10s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 11m 29s
✔️ cifmw-multinode-tempest SUCCESS in 1h 54m 56s
✔️ cifmw-pod-zuul-files SUCCESS in 4m 28s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 38s
cifmw-pod-pre-commit FAILURE in 8m 24s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 01s

sauragar and others added 2 commits January 28, 2026 13:05
Update the README sync script to generate absolute GitHub URLs instead
of relative paths for "See defaults in main.yml" references. This fixes
broken links when the documentation is rendered on readthedocs.

Previously, links like [main.yml](defaults/main.yml) would not work on
the readthedocs website because the YAML file is not included in the
documentation build. Now all links point to:
https://github.com/openstack-k8s-operators/ci-framework/blob/main/roles/test_operator/defaults/main.yml

Changes:
- Update DEFAULTS_LINK to use absolute GitHub URL
- Add logic to update existing relative links to GitHub URLs
- Update DEFAULTS_REGEX to match both old and new link formats
- Update all 17 "See defaults in" links in README

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Update the README sync script to include line number anchors in GitHub
URLs for "See defaults in" links. This allows users to jump directly to
the specific variable definition instead of just opening the file.

The script now:
- Tracks line numbers for each variable when loading defaults/main.yml
- Generates GitHub URLs with line anchors (e.g., #L35 or #L46-L61)
- Links single-line variables to a specific line (e.g., #L35)
- Links multi-line variables to a line range (e.g., #L46-L61)

Example changes in README:
- cifmw_test_operator_default_groups → main.yml#L35
- cifmw_test_operator_log_pod_definition → main.yml#L46-L61
- cifmw_tempest_tempestconf_config_defaults → main.yml#L98-L132

This significantly improves user experience when viewing documentation
on readthedocs, as clicking links now highlights the exact variable.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/f84c25fe639c4a2eaf5b977d149e5a2f

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 21m 51s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 25m 05s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 38m 31s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 08m 14s
✔️ cifmw-multinode-tempest SUCCESS in 1h 51m 49s
✔️ cifmw-pod-zuul-files SUCCESS in 6m 07s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 8m 32s
cifmw-pod-pre-commit FAILURE in 8m 20s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 23s

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@softwarefactory-project-zuul
Copy link

Build failed (check pipeline). Post recheck (without leading slash)
to rerun all jobs. Make sure the failure cause has been resolved before
you rerun jobs.

https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/5e37469eb30e4f58babd13c526c9336d

✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 43m 11s
✔️ podified-multinode-edpm-deployment-crc SUCCESS in 1h 25m 10s
✔️ cifmw-crc-podified-edpm-baremetal SUCCESS in 1h 45m 03s
✔️ cifmw-crc-podified-edpm-baremetal-minor-update SUCCESS in 2h 06m 54s
✔️ cifmw-multinode-tempest SUCCESS in 1h 48m 37s
✔️ cifmw-pod-zuul-files SUCCESS in 5m 23s
✔️ noop SUCCESS in 0s
✔️ cifmw-pod-ansible-test SUCCESS in 9m 23s
cifmw-pod-pre-commit FAILURE in 8m 56s
✔️ cifmw-molecule-test_operator SUCCESS in 3m 00s

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