Project

General

Profile

action #73447

coordination #80142: [saga][epic] Scale out openQA: Redundant/load-balancing deployments of openQA, easy containers, containers on kubernetes

POC: Create openQA Web Application container image (feature)

Added by plorinc 3 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
Low
Assignee:
Category:
Feature requests
Target version:
Start date:
2020-10-16
Due date:
% Done:

0%

Estimated time:
Difficulty:

Description

User story

TBD

Acceptance criteria

  • AC1: Container started based on this image is able to run on the Docker engine
  • AC2: Full Green Stack: All software components are available in the SUSE repositories
  • AC3: An automated way is provided to fill the database with necessary tables and schemas, and a predefined set of test data
  • AC4: Non-static data is stored on container volumes, if possible
  • AC5: Deliverable is an image stored in a registry, a Dockerfile (with instructions on how to create a container from the image) or a Compose file

Tasks

Create a POC openQA Web Application container image with the following features:

  1. The image contains:
  2. the openQA Web Application
  3. a webserver
  4. a git database
  5. The components of this service are preconfigured to communicate with each other.
  6. The openQA WA is able to start/communicate with openQA Worker containers/virtual machines

Further details


Related issues

Related to openQA Project - action #73450: POC: Create openQA worker container image (feature)Resolved2020-10-16

Related to openQA Project - coordination #43706: [epic] Generate "download&use" docker image of openQA for SUSE QABlocked2018-11-132021-01-08

Related to openQA Project - action #43712: Update upstream dockerfiles to provide an easy to use docker image of openQA-webuiResolved2018-11-132020-11-19

History

#1 Updated by okurz 3 months ago

  • Related to action #73450: POC: Create openQA worker container image (feature) added

#2 Updated by okurz 3 months ago

  • Related to coordination #43706: [epic] Generate "download&use" docker image of openQA for SUSE QA added

#3 Updated by okurz 3 months ago

  • Related to action #43712: Update upstream dockerfiles to provide an easy to use docker image of openQA-webui added

#4 Updated by okurz 3 months ago

  • Description updated (diff)
  • Due date set to 2020-10-31
  • Status changed from New to Feedback
  • Assignee set to okurz
  • Target version set to Ready

Similar as in #73450 I am confident that we have that mainly covered. There is https://github.com/os-autoinst/openQA/blob/master/docker/webui/Dockerfile

Can you crosscheck if that fulfills your requirements or what is still missing?

I have also referenced some other, already existing tickets which might be interesting to look into.

#5 Updated by ilausuch 3 months ago

I think some aspects of this are already done in
https://github.com/os-autoinst/openQA/pull/3431

  • AC1: Container started based on this image is able to run on the Docker engine
  • AC4: Non-static data is stored on container volumes, if possible
  • AC5: Deliverable is an image stored in a registry, a Dockerfile (with instructions on how to create a container from the image) or a Compose file

An I think, if I am not wrong, that the tool itself solve the AC3

  • AC3: An automated way is provided to fill the database with necessary tables and schemas, and a predefined set of test data

And also I think to solve AC2 will be needed:

  • Create the images in OBS, or in the CI process after merge into master any PR
  • To push these image to the repository
  • About the docker-compose file could be remain in code or as example in the documentation. Right now, the code on this PR allows to create a any size HA web UI environment.

Do you agree?

#6 Updated by okurz 3 months ago

ilausuch wrote:

And also I think to solve AC2 will be needed:

  • Create the images in OBS, or in the CI process after merge into master any PR
  • To push these image to the repository

I don't see why this should be needed to fulfill AC2 but this is planned anyway and one thing that could be clarified

#7 Updated by okurz 3 months ago

  • Due date deleted (2020-10-31)
  • Status changed from Feedback to New
  • Assignee deleted (okurz)
  • Priority changed from Normal to Low
  • Target version changed from Ready to future

please look into the questions in #73447#note-4

#8 Updated by cdywan 2 months ago

Can we regard this as a duplicate of #43712 and #43718?

#9 Updated by okurz 2 months ago

The thing is that I do not know yet if they are real duplicates. #43712 and #43718 are quite "developer-centric" but this ticket here might address a bit bigger scope. I wanted to give plorinc a bit more time to respond.

#10 Updated by okurz about 2 months ago

  • Parent task set to #80142

#11 Updated by okurz about 2 months ago

plorinc could you please take a look into the open points?

#12 Updated by plorinc about 2 months ago

okurz wrote:

The thing is that I do not know yet if they are real duplicates. #43712 and #43718 are quite "developer-centric" but this ticket here might address a bit bigger scope. I wanted to give plorinc a bit more time to respond.

The Dockerfile looks good for the PoC purpose.
Do you have documentation on how to start the containers for testing?

#13 Updated by cdywan about 2 months ago

plorinc wrote:

okurz wrote:

The thing is that I do not know yet if they are real duplicates. #43712 and #43718 are quite "developer-centric" but this ticket here might address a bit bigger scope. I wanted to give plorinc a bit more time to respond.

The Dockerfile looks good for the PoC purpose.
Do you have documentation on how to start the containers for testing?

ilausuch updated the docs we have here, so this should be good to get you started:

https://github.com/os-autoinst/openQA/blob/master/docker/README.md

#14 Updated by okurz about 2 months ago

  • Status changed from New to Resolved
  • Assignee set to ilausuch
  • Target version changed from future to Ready

Ok, cdywan already provided a link to documentation. That should certainly be good enough for a "proof-of-concept". But we also plan to improve the documentation, provide an announcement about the updated approach as well as a "demo", find more details in #80534

Now let me try to see if we covered the ACs

Acceptance criteria

  • AC1: Container started based on this image is able to run on the Docker engine

DONE: We tested with both "docker" and "podman". We also have "systemd-nspawn" containers but this is a different approach. https://registry.opensuse.org/cgi-bin/cooverview?srch_term=project%3Ddevel%3AopenQA lists the containers along with example commands based on podman as well as docker.

  • AC2: Full Green Stack: All software components are available in the SUSE repositories

DONE: Available in openSUSE Tumbleweed as well as build.opensuse.org/project/show/devel:openQA

  • AC3: An automated way is provided to fill the database with necessary tables and schemas, and a predefined set of test data

DONE: openQA automatically creates tables and schemas and http://open.qa/docs/#_cloning_existing_jobs_openqa_clone_job describes how openQA tests can be triggered without any further necessary test data setup in the instance

  • AC4: Non-static data is stored on container volumes, if possible

DONE: Multiple approaches possible, either within the container as throw-away data, within data volume containers or local directories mounted into container, see https://github.com/os-autoinst/openQA/blob/master/docker/README.md#running-openqa for details

  • AC5: Deliverable is an image stored in a registry, a Dockerfile (with instructions on how to create a container from the image) or a Compose file

DONE: All of that with https://registry.opensuse.org/cgi-bin/cooverview?srch_term=project%3Ddevel%3AopenQA and https://github.com/os-autoinst/openQA/tree/master/docker

Setting ilausuch as he was the main driver in the latest work, I am just collecting facts as result :)

Also available in: Atom PDF