qa: manual upgrade from n-1/n-2 to main#56476
Conversation
6c1b3c1 to
01ed537
Compare
batrick
left a comment
There was a problem hiding this comment.
what about the other sub-suites in fs:upgrade?
Okay, this will require changes to upgrade YAMLs in all the sub-suites along with re-organising them. I'll make the required changes. |
3c2b40c to
db94dd2
Compare
1581b79 to
14dfe38
Compare
|
@dparmar18, how temporary is this submission, given that there's #56338? Are you going to revert this one eventually? In both cases, especially in #56338, I have a problem with such complicated logic in a lua script in a yaml string, it's hard to debug and maintain. Isn't there a way to code the logic in Python? |
| teuthology: | ||
| premerge: | | ||
| local branch = yaml.teuthology.branch | ||
| yaml_fragment['meta'][0]['desc'] = "install ceph/" .. tostring(branch) .. " latest" |
There was a problem hiding this comment.
here and in other similar expressions, I find using explicit array indices into the yaml arrays error-prone. One will have to update all indices if another print task is inserted at the start, or the task order is changed.
I'd love to see some unique placeholder values being found and replaced, or at least using the search to find the task with a given name
There was a problem hiding this comment.
here and in other similar expressions, I find using explicit array indices into the yaml arrays error-prone. One will have to update all indices if another print task is inserted at the start, or the task order is changed.
well that is true, but given the limitations we have with lua injected in YAMLs https://docs.ceph.com/projects/teuthology/en/latest/fragment_merging.html, I'm not sure how can we achieve this, maybe @batrick (since he wrote this code) can add throw some light here, or we can brute force this by running a loop to search for the placeholders? what do you think?
I'd love to see some unique placeholder values being found and replaced, or at least using the search to find the task with a given name
There was a problem hiding this comment.
well, yes, at least you can add a lua function that searches for and replaces a string with another object. Once you have that well tested, I'd suggest that you added it to teuthology/suite/fragment-merge.lua.
Another approach that's really a PR on its own would be to allow referencing lua functions from inside the yaml values with some general syntax, roughly
value_from_lua:
script: "evaluated + by + the + same + lua + context + as + premerge"
the latter would be handy, as the premerge could then declare a bunch of global vars that this script could reference, or call functions from the premerge script.
There was a problem hiding this comment.
There is another thing we should consider, which is YAML's anchors and references. Also, there's tagging to create python objects, which we could also employ.
There was a problem hiding this comment.
I understand the possibilities of improvement here, but AFAIU these changes are high prio, patrick and venky have been waiting since long to get this so that we can start testing n-1|n-2 -> main. I'm fine either way, it's your, @vshankar or @batrick's call finally. Do let me know with what approach you guys think we should move forward with, so that I can plan things out accordingly.
There was a problem hiding this comment.
Another approach would be to (since the aim is to move to dynamic pulling of releases) move ahead with these changes as it is and work on #56338, where I see @leonid-s-usov 's suggestions coming in. If we're successful in having that PR work then we might not need to have the search func
There was a problem hiding this comment.
I am fine with this code if we know that it's temporary and will be reverted with the solution from #56338
So the solution you see in #56338 suffered setback because setting up the lua env to run that script infused YAML is complicated which I discussed in today's standup, that patch will be converted to what @batrick suggested - run through the ceph git tree in teuthology code (python) which I still need to figure out how and then fetch the file ceph_release.h; grep the latest version and feed the YAML, this should significantly reduce the complexity of the logic. |
|
(moved the comment to #56338 (comment)) |
d0aa196 to
b351a09
Compare
|
This PR is under test in https://tracker.ceph.com/issues/66090. |
1019009 to
1cea3ae
Compare
qa/suites/fs/upgrade/upgraded_client/tasks/2-clients/fuse-upgrade.yaml
Outdated
Show resolved
Hide resolved
cf9339d to
8aff1f0
Compare
8aff1f0 to
6b955a0
Compare
|
jenkins retest this please |
|
This PR is under test in https://tracker.ceph.com/issues/66327. |
|
When merged I'll follow-up PR a host of minor doc nits, I don't want to subject you to those ;) |
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
Signed-off-by: Dhairya Parmar <dparmar@redhat.com>
6b955a0 to
53f18ef
Compare
|
This PR is under test in https://tracker.ceph.com/issues/66522. |
|
jenkins retest this please |
|
Nice work @dparmar18 |
Contribution Guidelines
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
xbetween the brackets:[x]. Spaces and capitalization matter when checking off items this way.Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windowsjenkins test rook e2e