action #176361
closedcoordination #169654: [epic] Create test scenarios for Agama
Add interactive installation using iscsi ibft disk
0%
Description
Motivation¶
Being able to run installations using iscsi disk.
In Storage/Select installation device we can connect iSCSI target in openQA by clicking on Discover. Adding only the IP (I used the one of the worker) would automatically add the target. Tweaking the option, for example putting (on boot) it will appear as Connected but it is not showed as iBFT.
Acceptance criteria¶
- AC1: Check what happens with kernel parameter withiscsi=1
- AC2: Figure out why target it is not showed as iBFT
- AC3: Figure out what IP to add so it can run everytime from each worker
- AC4: Automate for x86_64 but check if we can automate also for aarch64.
- AC5: Add existing validation
Additional information¶
Use of kernel boot parameter in YaST installer: https://openqa.suse.de/tests/16583524#step/bootloader_start/9
Rest of the settings seems not needed, like IBFT (but better double-check!)
Updated by JERiveraMoya 3 months ago
- Tags changed from qe-yam-jan-sprint-fy25 to qe-yam-feb-sprint-fy25
Updated by zoecao 2 months ago ยท Edited
Learnt to generate puppeter codes through browser. Creating pages for storage/change pages.
const puppeteer = require('puppeteer'); // v23.0.0 or later
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
const timeout = 5000;
page.setDefaultTimeout(timeout);
{
const targetPage = page;
await targetPage.setViewport({
width: 591,
height: 636
})
}
{
const targetPage = page;
await targetPage.goto('https://ip/#/storage');
}
{
const targetPage = page;
await puppeteer.Locator.race([
targetPage.locator('::-p-aria(Installation device[role=\\"region\\"]) >>>> ::-p-aria(Change)'),
targetPage.locator('div.pf-m-fill > div > div:nth-of-type(2) a'),
targetPage.locator('::-p-xpath(//*[@id=\\"root\\"]/div/div[2]/div/div/div[1]/div/main/div/div[2]/div/div[2]/div/div[1]/section/div[3]/div/a)'),
targetPage.locator(':scope >>> div.pf-m-fill > div > div:nth-of-type(2) a')
])
.setTimeout(timeout)
.click({
offset: {
x: 46,
y: 17.86456298828125,
},
});
}
{
const targetPage = page;
await puppeteer.Locator.race([
targetPage.locator('span.pf-v5-c-menu-toggle__text'),
targetPage.locator('::-p-xpath(//*[@id=\\"targetSelection\\"]/section[2]/div/div/div/div[3]/button/span[1])'),
targetPage.locator(':scope >>> span.pf-v5-c-menu-toggle__text'),
targetPage.locator('::-p-text(storage techs)')
])
.setTimeout(timeout)
.click({
offset: {
x: 28.90625,
y: 11.229156494140625,
},
});
}
{
const targetPage = page;
await puppeteer.Locator.race([
targetPage.locator('span.pf-v5-c-menu__item-main > span'),
targetPage.locator('::-p-xpath(//*[@id=\\"storage-tech-menu\\"]/div/ul/li/a/span[1]/span)'),
targetPage.locator(':scope >>> span.pf-v5-c-menu__item-main > span')
])
.setTimeout(timeout)
.click({
offset: {
x: 21.666656494140625,
y: 16.7916259765625,
},
});
}
{
const targetPage = page;
await puppeteer.Locator.race([
targetPage.locator('::-p-aria(Discover iSCSI targets)'),
targetPage.locator('div.pf-m-fill > div > div:nth-of-type(2) button'),
targetPage.locator('::-p-xpath(//*[@id=\\"root\\"]/div/div[2]/div/div/div[1]/div/main/div/div[2]/div/div[2]/section/div[2]/div/button)'),
targetPage.locator(':scope >>> div.pf-m-fill > div > div:nth-of-type(2) button'),
targetPage.locator('::-p-text(Discover iSCSI)')
])
.setTimeout(timeout)
.click({
offset: {
x: 227,
y: 24.791656494140625,
},
});
}
await browser.close();
})().catch(err => {
console.error(err);
process.exit(1);
});
Updated by zoecao 2 months ago
For AC1: Check what happens with kernel parameter withiscsi=1
I'm not sure whether my understand is correct or not, I added withiscsi=1 to kernel parameter in openqa testing, didn't find any difference:
openqa-clone-job --from http://openqa.suse.de --host http://openqa.suse.de 16663110 --skip-download --apikey XXXXXXXXXXXXXXXX --apisecret XXXXXXXXXXXXXXXX _GROUP=0 BUILD=chcao_176361 TEST=sles_iscsi_test EXTRABOOTPARAMS='live.password=xxxxxxx console=ttyS0 console=tty kernel.softlockup_panic=1 agama.install_url=http://openqa.suse.de/assets/repo/SLES-Packages-16.0-x86_64-Build5.1/ withiscsi=1'
Job: https://openqa.suse.de/tests/16770347
So still need to add the iscsi configs to the installation.
Updated by zoecao 2 months ago
[AC4][AC5]: PRs for automation testing:
https://github.com/jknphy/agama-integration-test-webpack/pull/80
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/21278/files
Need to run some vrs to check ip for [AC3], the VRs are not ready, still need to think about where to add the ip address.
VRs: https://openqa.suse.de/tests/overview?version=16.0&distri=sle&build=chcao_176361
Updated by JERiveraMoya about 2 months ago
- Tags changed from qe-yam-feb-sprint-fy25 to qe-yam-mar-sprint-fy25
Updated by zoecao about 2 months ago
Update the latest status here:
The latest VR:
https://openqa.suse.de/tests/16936234#step/ibft/46
- It seems no need to submit PR to jknphy/agama-integration-test-webpack#main, the installation works fine by adding some settings only. SO I'll close this [pr]
- packages of
lsscsi
andhdparm
are not pre-installed, from the confluence page (https://confluence.suse.com/display/SLES16/Request+to+add+packages+to+SLES+16): As SLES 16 is a new code-base, patterns and package lists have been reviewed. It's our goal to reduce the number of supported packages and not offer different alternatives.
"If it's available but not pre-installed, state why it should be pre-installed"
"Saying it was in 15 is not good enough!"
No special reason to make it pre-installed, so current workaround it to install them in testing. (will double confirm it by asking it in eng-testing channel) - Investigated the current failure: https://openqa.suse.de/tests/16936234#step/ibft/46, maybe a bug in 'grep', with command "
grep -r CONFIG_ISCSI_IBFT=m /boot/*
" would work fine.
Updated by zoecao about 2 months ago
Filed the bug of grep for the validation testing:
[bsc#1238483]
Will add the testsuite to the two groups.
Updated by JERiveraMoya about 2 months ago
zoecao wrote in #note-10:
Filed the bug of grep for the validation testing:
[bsc#1238483]
Will add the testsuite to the two groups.
could you please add some screenshot about how does it look the UI inspecting the partitioning, I remember that the iBFT wasn't displayed properly (AC2).
Updated by zoecao about 2 months ago
To update status here:
-
AC1: Check what happens with kernel parameter withiscsi=1
The system could be installed to iscsi disk with kernel parameter withiscsi=1; besides need to add settings of NICTYPE; NUMDISKS; NBF; IBFT; WORKER_CLASS -
AC2: Figure out why target it is not showed as iBFT
The ibft is not supported on Agama yet, replies from developers: https://suse.slack.com/archives/C02D1T4S58S/p1741160482678989 -
AC3: Figure out what IP to add so it can run everytime from each worker
With is worker: WORKER_CLASS=qemu_x86_64_ibft -
AC4: Automate for x86_64 but check if we can automate also for aarch64.
PR for automation testing: https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/21278
And it is not supported on aarch64. -
AC5: Add existing validation
Validation is already added in the pr; and filed bugs for validation: bsc (https://bugzilla.suse.com/show_bug.cgi?id=1238483); bsc (https://bugzilla.suse.com/show_bug.cgi?id=1238880); [bsc#1238881]
BTW, the installation is changed to unattended installation:
https://suse.slack.com/archives/C02CLB2LB7Z/p1741160672925249
And running the latest VR with a PR update of adding soft_failure of packages not pre-installed.
Updated by zoecao about 2 months ago
Filed a bug for ibft issue: https://bugzilla.suse.com/show_bug.cgi?id=1239046
Updated by zoecao about 2 months ago
Will add testsuits to the groups after PR is merged.
PR: https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/21278
Updated by JERiveraMoya about 2 months ago
Automation should fail showing that ibft is not present, we might not know exactly how it would be showed or if it would be showed at all in Agama logs, but shouldn't fail with errors where the problem is that we haven't adapted the automation. Most likely the developer doesn't know how it will be displayed in the future, so let's reach that point where the automation failure is clear and we can merge this.
Updated by JERiveraMoya about 1 month ago
Merged, let's setup the test suite in prod/development.
Updated by zoecao about 1 month ago
- Status changed from In Progress to Resolved
The PR was merged, and added the test suite of sles_iscsi_ibft_unattended
to prod and devel groups, and triggered the testsuites, will keep eyes on the results latter. Resolve here now, thanks.