Allow to give services an alias

What does this MR do?

Allow docker services referenced in .gitlab-ci.yml to be aliased.


  - kaixhin/ssh as origin
  - kaixhin/ssh as destination

The as part is optional, should be backwards compatible.

Why was this MR needed?

  • The generated names aren't always intuitive and can become very long.
  • A service can only be used once, which is limiting (e.g. we needed to transfer files between two ssh hosts).

Are there points in the code the reviewer needs to double check?

I have not worked with go before, so yes ;)

Does this MR meet the acceptance criteria?

  • [ x] CHANGELOG entry added
  • [ x] Documentation created/updated
  • Tests
    • [ x] Added for this feature/bug
    • All builds are passing
  • [ x] Branch has no merge conflicts with master (if you do - rebase it please)

What are the relevant issue numbers?