action #73447
closedcoordination #80142: [saga][epic] Scale out: Redundant/load-balancing deployments of openQA, easy containers, containers on kubernetes
POC: Create openQA Web Application container image (feature)
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:
- The image contains:
- the openQA Web Application
- a webserver
- a git database
- The components of this service are preconfigured to communicate with each other.
- The openQA WA is able to start/communicate with openQA Worker containers/virtual machines
Further details¶
Updated by okurz about 4 years ago
- Related to action #73450: POC: Create openQA worker container image (feature) added
Updated by okurz about 4 years ago
- Related to coordination #43706: [epic] Generate "download&use" docker image of openQA for SUSE QA added
Updated by okurz about 4 years ago
- Related to action #43712: Update upstream dockerfiles to provide an easy to use docker image of openQA-webui added
Updated by okurz about 4 years 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.
Updated by ilausuch about 4 years 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?
Updated by okurz about 4 years 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
Updated by okurz about 4 years 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
Updated by okurz about 4 years ago
@plorinc could you please take a look into the open points?
Updated by plorinc about 4 years 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?
Updated by livdywan about 4 years 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
Updated by okurz about 4 years 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 :)