Project

General

Custom queries

Profile

Actions

action #165683

closed

coordination #127031: [saga][epic] openQA for SUSE customers

coordination #127910: [epic] openQA in SLE modules

Current openQA+os-autoinst+dependencies in pure SLE size:M

Added by mkittler 4 months ago. Updated 3 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Feature requests
Target version:
Start date:
2024-08-22
Due date:
% Done:

0%

Estimated time:
Tags:

Description

This is a follow-up after #128318.

Motivation

As the parent project about QAaaS progresses we should assess our expected efforts and risks about "openQA in SLE" ASAP for further planning. As according to hsehic openQA needs to be provided from pure SLE, i.e. no PackageHub, we should try what we can achieve in this regard by submitting packages and seeing the effect of that. Maybe some submissions can be directly accepted, maybe some need special treatment. Maybe SLE release managers tell us what processes we need to follow, which bugzilla or Jira tickets we need to create first or which contracts to sign with blood ;)

Acceptance criteria

  • AC1: The packages os-autoinst and openQA have been submitted to SLE including their dependencies.
  • AC2: At least some manual testing (but preferably openQA-in-openQA testing) has been done with os-autoinst and openQA packages on SLE.

Suggestions

  • Use the test project home:mkittler:branches:devel:openQA that was setup as part of #128318 on OBS. All qe-tools-team members have a maintainer role there.
  • Read on the next section of this ticket description for what has already been done and what's still pending. It also contains concrete commands for SLE SP7 submissions.
  • Note that submissions (as per the commands mentioned below) are staged by humans. So they will hopefully all go into the same staging project and we don't have to submit them in batches.
  • Check the state of SRs mentioned in the next section. (At the time of writing this ticket they are not declined but only one of them was staged and none accepted.)
  • Add openQA-in-openQA tests on OSD to run them under SLE.
  • Submit request to https://build.suse.de/package/show/SUSE:SLE-15-SP4:GA/000product to define a new SLE module for openQA.

Packages that have been submitted and packages that still need to be submitted

The following commands have already been executed by me, so you can find the corresponding SRs on https://build.suse.de/project/requests/SUSE:SLE-15-SP7:GA (filtering by "mkittler"):

for package in perl-Test-DiagINC; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This is the 2nd batch of packages after perl-PadWalker. All those packages should go into the same staging.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
for package in perl-Export-Attrs perl-UNIVERSAL-can perl-UNIVERSAL-isa perl-Test-Number-Delta; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This is the 2nd batch of packages after perl-PadWalker. All those packages should go into the same staging.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
for package in sshpass xterm-console perl-Carp-Always perl-Cpanel-JSON-XS perl-File-Map perl-File-chdir perl-Test-Differences perl-SQL-SplitStatement perl-IPC-Run perl-IPC-Run3 perl-JSON-Validator perl-Mojo-IOLoop-ReadWriteProcess perl-Mojolicious perl-Net-SSH2 perl-Socket-MsgHdr perl-Time-Moment perl-XML-SemanticDiff perl-YAML-PP perl-Test-Mock-Time perl-Test-MockObject perl-Test-MockRandom perl-Test-Output perl-CSS-Minifier-XS perl-JavaScript-Minifier-XS perl-Mojolicious-Plugin-AssetPack; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This is the 3rd batch of packages. All those packages should go into the same staging.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
for package in perl-Test-MockModule; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Update package as the new version contains bug fixes relevant to openQA
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
for package in leptonica plantuml tesseract-ocr-traineddata tesseract-ocr; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA with OCR support
This is an additional batch of packages for OCR support. All those packages should go into the same staging.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
for package in perl-Inline perl-Proc-ProcessTable perl-Inline-Python; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA with Python support
This is an additional batch of packages for Python support. All those packages should go into the same staging.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done

The following commands to submit further dependencies have not been executed yet because the list of packages is incomplete (see unresolved packages on https://build.opensuse.org/project/monitor/home:mkittler:branches:devel:openQA?arch_x86_64=1&defaults=0&repo_15_7=1&unresolvable=1):

for package in perl-Minion perl-Config-Tiny perl-Filesys-Df perl-CommonMark perl-DBIx-Class perl-DBIx-Class-DeploymentHandler perl-DBIx-Class-DynamicDefault perl-DBIx-Class-OptimisticLocking perl-DBIx-Class-Schema-Config perl-DateTime-Format-Pg perl-Mojo-Pg perl-Mojo-RabbitMQ-Client perl-Mojolicious-Plugin-OAuth2 perl-Net-OpenID-Consumer perl-Pod-POM perl-SQL-Translator perl-Sort-Versions perl-Time-modules perl-aliased optipng perl-Minion-Backend-SQLite perl-Mojo-SQLite perl-App-cpanminus perl-Selenium-Remote-Driver python-yamllint perl-Perl-Tidy perl-Code-TidyAll perl-Module-CPANfile perl-Template-Toolkit perl-Class-Accessor-Grouped perl-Class-C3-Componentised perl-Config-Any perl-Context-Preserve perl-Data-Dumper-Concise perl-Devel-GlobalDestruction perl-Hash-Merge perl-Moo perl-SQL-Abstract-Classic perl-Class-DBI perl-File-pushd perl-List-Compare perl-Log-Any perl-Specio-Library-Path-Tiny perl-Test-Class-Most perl-Time-Duration-Parse perl-lib-relative perl-Log-Contextual perl-Moose perl-MooseX-Role-Parameterized perl-Text-Brew perl-DBICx-TestDatabase perl-Cwd-Guard perl-Furl perl-JSON-XS perl-Sub-Retry perl-Test-Mock-Guard perl-Test-Requires-Git perl-JSON-MaybeXS perl-Package-Variant perl-AppConfig perl-Clone perl-Test-LWP-UserAgent perl-Test-LongString perl-Time-Duration perl-Git-Version-Compare perl-Class-Load perl-Safe-Isa perl-Test-Class perl-Test-Needs perl-MCE perl-Net-AMQP perl-SQL-Abstract perl-URI-db perl-Sub-Exporter perl-URI-Nested perl-Data-OptList perl-strictures perl-Import-Into perl-B-COW perl-Class-XSAccessor perl-Class-C3 perl-Class-Trigger perl-DBIx-ContextualFetch perl-Ima-DBI perl-UNIVERSAL-moniker perl-Algorithm-C3 perl-Config-INI perl-Class-Method-Modifiers perl-Role-Tiny perl-Sub-Quote perl-Mixin-Linewise perl-Clone-Choose perl-HTTP-Parser-XS perl-Class-Accessor-Lite perl-SQL-Abstract-Pg perl-Data-Tumbler perl-Test-WriteVariants perl-Test-Directory perl-Net-OpenID-Common perl-common-sense perl-Types-Serialiser perl-Crypt-DH-GMP perl-Class-Load-XS perl-Devel-OverloadInfo perl-CPAN-DistnameInfo perl-local-lib perl-Parse-PMFile perl-ExtUtils-MakeMaker-CPANfile perl-Module-Runtime-Conflicts; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
Those packages are required to run of openQA (and not just build it). All those packages should go into the same staging.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
for package in perl-Scalar-List-Utils; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This package is submitted from devel:languages:perl and not from openSUSE:Factory because it is a core Perl module and in Tumbleweed provided by its newer Perl version (which is supposedly not possible to update on SLE).
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:devel:languages:perl "$package" SUSE:SLE-15-SP7:GA; done
for package in perl-Getopt-Long-Descriptive; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This package is submitted from openSUSE.org:openSUSE:Backports:SLE-15-SP7 and not from openSUSE:Factory because the version from openSUSE:Factory would require a newer version of a Perl core module. For our purposes the version from backports will be fine so this is the easiest way.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Backports:SLE-15-SP7 "$package" SUSE:SLE-15-SP7:GA; done
for package in os-autoinst openQA; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add os-autoinst and openQA so SLE customers can setup their own openQA instances
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done

The list is almost complete, though. The only packages missing are due to unresolved problems mentioned in the next section.

Problems still to be solved

EDIT: I now fixed all of those problems mentioned below, see comments. The only caveat is that we won't support the -devel packages but that is ok in my opinion.

The following packages have been excluded in the above commands:

ShellCheck shfmt perl-Perl-Critic perl-Perl-Critic-Community perl-Test-Perl-Critic perl-Devel-Cover-Report-Codecov

We might rather disable those tests instead of adding these dependencies because adding the dependencies entails adding many other dependencies, e.g. many Haskell and perl(PPI… packages. Supposedly it is also ok to leave out those dependencies because they are only required for developer-facing tests.


The following dependencies are problematic because they are too old but are Perl core modules:

'perl(Getopt::Long) >= 2.550.0' # required by perl-Getopt-Long-Descriptive
'perl(List::Util) >= 1.56' # perl-Moose

We probably have to submit an older version of these dependencies or avoid them entirely.


Related issues 1 (0 open1 closed)

Related to openQA Project (public) - action #132236: Current openQA+os-autoinst+dependencies updated in SLE+packagehub size:M Closeddheidler2023-04-26

Actions
Actions #3

Updated by mkittler 4 months ago

  • Description updated (diff)

In order to solve the problem of the too old perl(List::Utils) we can use perl-Scalar-List-Utils as mentioned by @tinita on the chat. I tried it and after

for p in perl-Scalar-List-Utils ; do osc branch devel:languages:perl "$p" home:mkittler:branches:devel:openQA ; done
for p in perl-Module-Runtime-Conflicts ; do osc branch openSUSE:Factory "$p" home:mkittler:branches:devel:openQA ; done

Mose builds in my home project.

For Getopt::L::D we can use an older version, indeed. I tested that via

for p in perl-Getopt-Long-Descriptive ; do osc branch -f openSUSE:Backports:SLE-15-SP7 "$p" home:mkittler:branches:devel:openQA ; done

in my home project.

I update the ticket description accordingly.

Actions #8

Updated by mkittler 4 months ago

The following PRs might help with some of the remaining unresolvable dependencies:

It is still problematic that os-autoinst-devel depends on e.g. ShellCheck because the build of openQA depends on os-autoinst-devel. Since os-autoinst-devel is really supposed to be developer facing (with dependencies for style checking) it makes probably sense to remove the dependency on os-autoinst-devel for the openQA build.

Note that I would also probably disable the -devel sub packages for SLE completely. Especially with the Haskell dependencies those probably exceed what makes sense for us to submit to SLE and customers probably also don't need the packages.

Actions #10

Updated by openqa_review 4 months ago

  • Due date set to 2024-09-07

Setting due date based on mean cycle time of SUSE QE Tools

Actions #11

Updated by mkittler 4 months ago · Edited

With https://github.com/os-autoinst/openQA/pull/5892 openQA becomes now almost resolvable in my home project. Only python3-yamllint is missing. PR for that: https://github.com/os-autoinst/openQA/pull/5893

Actions #12

Updated by mkittler 4 months ago

  • Description updated (diff)

I had to add a few more dependencies and now openQA is building.

Actions #13

Updated by mkittler 4 months ago

Note that so far I haven't gotten any negative feedback on my SRs. The only comment was to mention https://jira.suse.com/browse/PED-9876 although that doesn't actually make much sense to me considering these packages are meant for customers (see https://confluence.suse.com/pages/viewpage.action?pageId=1127973305).

Actions #17

Updated by mkittler 4 months ago

  • Description updated (diff)

All SRs have been accepted. I suppose I'll then submit the rest of the packages tomorrow. I'll also have to define a new product and submit it to https://build.suse.de/package/show/SUSE:SLE-15-SP4:GA/000product.

Actions #18

Updated by mkittler 4 months ago

  • Description updated (diff)

I've now submitted all the remaining packages, see https://build.suse.de/project/requests/SUSE:SLE-15-SP7:GA.

Actions #21

Updated by mkittler 4 months ago

  • Status changed from Workable to Feedback

It looks like all packages were accepted.

The only missing packages are os-autoinst and openQA themselves. The test packages for the devel packages will not be resolvable. Let's see whether this is going to be a problem or whether we can just ignore those two packages.

Unfortunately I haven't gotten an answer for my question about the SLE module yet (https://suse.slack.com/archives/C02D1374S3V/p1724850980832189).

Actions #22

Updated by mkittler 4 months ago · Edited

I created SR for os-autoinst and openQA. For the sake of cleanness I removed the multibuild targets for devel-test packages (but of course kept the other test packages). With this I also have no unresolvable tickets anymore at all on my home project: https://build.opensuse.org/project/show/home:mkittler:branches:devel:openQA

for package in os-autoinst openQA; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add os-autoinst and openQA so SLE customers can setup their own openQA instances

I am submitting this from my home project to remove test packages (multibuild packages) for the devel packages we do not want to support on SLE for now.
Otherwise the package is identical to the version in openSUSE:Factory.

https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:home:mkittler:branches:devel:openQA "$package" SUSE:SLE-15-SP7:GA; done

You can find the requests again on https://build.suse.de/project/requests/SUSE:SLE-15-SP7:GA.

There are also many requests on that page now regarding the bugowner, e.g. https://build.suse.de/request/show/343754. Not sure whether we need to do anything about it from our side like accepting the ownership. (I don't see any requests on https://build.suse.de/groups/qe-tools-team#tab-pane-requests-in and other tabs so probably not.)

Actions #23

Updated by mkittler 4 months ago · Edited

For creating a SLE module we needed a PED. I suppose https://jira.suse.com/browse/PED-5414 will not be good enough ("If then you need RPMs in SLES 15, a new PED is needed."). However, we might not need a SLE module if we provide it as a container instead. I'm not sure how to build a container based on SLE and where we needed to publish it. We need to get in touch with @François-Xavier Houard to answer these still open questions.

It was mentioned that for creating a container the Dockerfiles on https://build.suse.de/project/show/Devel:openQA could be used as a template. We probably want containers for the "single instance", "web UI host" and "worker host" use cases. Not sure whether we want to involve docker-compose here.

See https://suse.slack.com/archives/C02A99YHR3M/p1725459172564039 for the whole discussion.

Actions #25

Updated by okurz 4 months ago

I asked in https://suse.slack.com/archives/C02D0D5S0H3/p1725874840172339

(Oliver Kurz) Hi guys, in container definitions like https://build.suse.de/projects/Devel:openQA/packages/openQA-single-instance-container/files/Dockerfile we are using FROM suse/sle15:15.5 with the "15.5" hardcoded meaning both the project config and the Dockerfile need to be in sync. Can we improve the line in Dockerfile to not need to hardcode the service pack version, like "latest" or a macro variable?

and got a helpful response from Dan Čermák

you can use FROM suse/sle15:latest , but then you'll get the latest SLE 15 Service Pack. what you can also do is to use build arguments:

ARG SLE_VERSION=15.5
FROM suse/sle15:${SLE_VERSION}

and then have the following in your prjconf:

BuildFlags: dockerarg:SLE_VERSION=15.6
Actions #26

Updated by mkittler 4 months ago

I submitted retry for the container build:

for package in retry; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This package is required for openQA-boostrap and the container build.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done
Actions #27

Updated by mkittler 4 months ago

I created a container on https://build.suse.de/project/show/Devel:openQA:SLE-SP7 via isc linkpac Devel:openQA openQA-single-instance-no_suse_tests-container Devel:openQA:SLE-SP7.

Actions #29

Updated by mkittler 4 months ago · Edited

We can probably just submit xdotool because that's all that would be required for the -deps sub packages of os-autoinst. I added it to my home project and it builds against SLE-SP7 so I created a submission:

for package in xdotool; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add/update package to be able to eventually submit openQA
This package is required for os-autoinst-s390-deps, see https://build.suse.de/request/show/343857#comment-4023273.
https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:openSUSE:Factory "$package" SUSE:SLE-15-SP7:GA; done

https://build.suse.de/request/show/344840

Actions #30

Updated by mkittler 4 months ago

I updated the os-autoinst submission:

osc branch --force openSUSE:Factory os-autoinst home:mkittler:branches:devel:openQA
for package in os-autoinst; do ibs sr --yes -m 'bugowner: group:qe-tools-team
Add os-autoinst and openQA so SLE customers can setup their own openQA instances

I am submitting this from my home project to remove test packages (multibuild packages) for the devel packages we do not want to support on SLE for now.
Otherwise the package is identical to the version in openSUSE:Factory.

https://jira.suse.com/browse/PED-9876
further details: https://progress.opensuse.org/issues/165683' openSUSE.org:home:mkittler:branches:devel:openQA "$package" SUSE:SLE-15-SP7:GA; done

The openQA submission is still to be done because https://github.com/os-autoinst/openQA/pull/5923 is not yet in factory.

Actions #31

Updated by mkittler 3 months ago

I now updated the openQA submission as well. So back to waiting for feedback on those SRs.

Actions #32

Updated by livdywan 3 months ago

  • Due date changed from 2024-09-20 to 2024-09-27

mkittler wrote in #note-31:

I now updated the openQA submission as well. So back to waiting for feedback on those SRs.

I guess this won't be done this week if we're taking that into account.

Actions #33

Updated by okurz 3 months ago

  • Due date changed from 2024-09-27 to 2024-11-30
  • Status changed from Feedback to Blocked
Actions #34

Updated by mkittler 3 months ago · Edited

@jstehlik said we need a JIRA ticket after all. That's blocking the SRs mentioned by @okurz cannot move forward. @jstehlik will setup a meeting with Harris.

Actions #37

Updated by okurz 3 months ago

I created #167245.

@mkittler I have only one task for you: Write in https://build.suse.de/request/show/345301 that we pause the implementation on a SLE base and leave it to reviewers to decide if the SR should stay open, be rejected or accepted. After that you can resolve this ticket.

Actions #38

Updated by mkittler 3 months ago

  • Status changed from In Progress to Resolved

I wrote a comment on all pending SRs.

Actions

Also available in: Atom PDF