Consider allowing `Test::Instance::Any` accept a QA image instead of a GitLab image

The following discussion from !153 (merged) should be addressed:

Dylan Griffith @DylanGriffith · 3 hours ago

Typo here:

gitlab/gitlab-ce:your-custom-tag -> gitlab/gitlab-ce-qa:your-custom-tag

Rémy Coutable @rymai · 2 hours ago

Hehe, no it's not a typo, it's expected! We build the gitlab/gitlab-ce-qa Docker image, and then we need to pass the "corresponding" GitLab Docker image (even if it doesn't exist!) to the bin/qa Test::Instance::Any command because in Gitlab::QA::Component::Specs we pass release.qa_image: @docker.run(release.qa_image, release.qa_tag, suite, *args), which is basically the GitLab image + -qa.

I know that's a bit weird... Ideally we could have an explicit flag, e.g. --qa-image gitlab/gitlab-ce-qa:your-custom-tag instead.

Dylan Griffith @DylanGriffith · 2 hours ago

Oh dear. That is indeed confusing. I thought that I was running this before with the name of the -qa docker image, but I guess not...

Rémy Coutable @rymai · 1 hour ago

Yeah, the thing is that building your own QA image and running it against your GDK is a very specific use-case. "Normal" use-case is to run QA against a running GitLab instance in which case it makes sense to pass the edition:version of the running instance.

Rémy Coutable @rymai · 1 hour ago

A simple improvement we could do is detect if you pass a *-qa image and just use it directly. 🤷🏻

Basically bin/qa Test::Instance::Any gitlab/gitlab-ce-qa:your-custom-tag http://192.168.0.12:3000 -- qa/specs/features/repository/protected_branches_spec.rb:30 should work the same as bin/qa Test::Instance::Any gitlab/gitlab-ce:your-custom-tag http://192.168.0.12:3000 -- qa/specs/features/repository/protected_branches_spec.rb:30

Edited by Rémy Coutable