diff options
author | Ryan Chu <ryan.chu@qt.io> | 2018-07-02 15:13:12 +0200 |
---|---|---|
committer | Ryan Chu <ryan.chu@qt.io> | 2018-07-10 15:25:14 +0000 |
commit | 5c5af7155ae989664919de1f10ac17121fa12a36 (patch) | |
tree | 556bd0c474365ee556a48ffb5db2fa269f2cd994 /tests/testserver | |
parent | 6d0878db1be77c212fecccd6506e1872134c68cd (diff) |
Enable mDNS service discovery in Docker-based test servers
To resolve the challenge of connecting Docker containers from the host
without extra user-efforts, Avahi is used to publish the Docker-based
test servers (Docker containers) on a local network. It is a free
Zeroconf implementation, and it provides multicast DNS (mDNS) service
discovery. By default, mDNS only resolves hostname ending with the
".local" domain. In this change, the domain name of test servers is
changed to "test-net.qt.local". As stated in the standard, the DNS query
for a local domain will be sent to the mDNS multicast address. It avoids
the need for root access to modify system files.
Task-number: QTQAINFRA-1686
Change-Id: I255fba0720ee6d0e84c9cb5ca9289d4466578922
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ryan Chu <ryan.chu@qt.io>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
Diffstat (limited to 'tests/testserver')
-rw-r--r-- | tests/testserver/apache2/testdata/main.conf | 2 | ||||
-rwxr-xr-x | tests/testserver/common/startup.sh | 5 | ||||
-rw-r--r-- | tests/testserver/common/testdata/ssl/qt-test-server-cert.pem | 24 | ||||
-rw-r--r-- | tests/testserver/docker-compose.yml | 36 |
4 files changed, 33 insertions, 34 deletions
diff --git a/tests/testserver/apache2/testdata/main.conf b/tests/testserver/apache2/testdata/main.conf index 5cfa544623..f3b13bb571 100644 --- a/tests/testserver/apache2/testdata/main.conf +++ b/tests/testserver/apache2/testdata/main.conf @@ -1,4 +1,4 @@ -ServerName apache2.test-net.qt:80 +ServerName apache2.test-net.qt.local:80 NameVirtualHost *:443 diff --git a/tests/testserver/common/startup.sh b/tests/testserver/common/startup.sh index 10847d3524..84d4003f86 100755 --- a/tests/testserver/common/startup.sh +++ b/tests/testserver/common/startup.sh @@ -48,5 +48,10 @@ for RUN_CMD do $RUN_CMD done +# start multicast DNS service discovery (mDNS) +sed -i "s,#domain-name=local,domain-name=test-net.qt.local," /etc/avahi/avahi-daemon.conf +service dbus restart +service avahi-daemon restart + # keep-alive in docker detach mode sleep infinity diff --git a/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem b/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem index dae5641a88..43c8794ce2 100644 --- a/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem +++ b/tests/testserver/common/testdata/ssl/qt-test-server-cert.pem @@ -1,16 +1,16 @@ -----BEGIN CERTIFICATE----- -MIICiTCCAfICCQCqBnF3SPSY7jANBgkqhkiG9w0BAQQFADCBiDELMAkGA1UEChMC +MIIClTCCAf4CCQC2xMhNhwvATDANBgkqhkiG9w0BAQQFADCBjjELMAkGA1UEChMC UXQxGTAXBgNVBAsTEENvcmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5v Ym9keS5xdC5pbzENMAsGA1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UE -BhMCTk8xFjAUBgNVBAMUDSoudGVzdC1uZXQucXQwHhcNMTgwMzEzMDkyNjQ0WhcN -NDgwMzA1MDkyNjQ0WjCBiDELMAkGA1UEChMCUXQxGTAXBgNVBAsTEENvcmUgQW5k -IE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5vYm9keS5xdC5pbzENMAsGA1UEBxME -T3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UEBhMCTk8xFjAUBgNVBAMUDSoudGVz -dC1uZXQucXQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM2q22/WNMmn8cC+ -5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7rOtkS18EMUegkUj8jw0IM -EcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzAkfcRaJRQ+Ek3CDLXPnXf -o7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAwNhw -aKznTaMj6JeHP/kEEwMppRkNjmh4ECdQfT9vYNs45UKSAvCa1dn6ZBZKIdhqKCLn -U2qiIS2783IoisRjFtg8x70S13EsBw/yEL/av+Ca1gQHOIFrOuLqwYbslTHrRXRA -RPzHOl3ZP9FD3mPZ8jyzxYs4x5EM0X26FkAR078= +BhMCTk8xHDAaBgNVBAMUEyoudGVzdC1uZXQucXQubG9jYWwwHhcNMTgwNzAxMTgz +NjI3WhcNNDgwNjIzMTgzNjI3WjCBjjELMAkGA1UEChMCUXQxGTAXBgNVBAsTEENv +cmUgQW5kIE5ldHdvcmsxGzAZBgkqhkiG9w0BCQEWDG5vYm9keS5xdC5pbzENMAsG +A1UEBxMET3NsbzENMAsGA1UECBMET3NsbzELMAkGA1UEBhMCTk8xHDAaBgNVBAMU +EyoudGVzdC1uZXQucXQubG9jYWwwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB +AM2q22/WNMmn8cC+5EEYGeICySLmp9W6Ay6eKHr0Xxp3X3epETuPfvAuxp7rOtkS +18EMUegkUj8jw0IMEcbyHKFC/rTCaYOt93CxGBXMIChiMPAsFeYzGa/D6xzAkfcR +aJRQ+Ek3CDLXPnXfo7xpABXezYcPXAJrgsgBfWrwHdxzAgMBAAEwDQYJKoZIhvcN +AQEEBQADgYEAZu/lQPy8PXeyyYGamOVms/FZKJ48BH1y8KC3BeBU5FYnhvgG7pz8 +Wz9JKvt2t/r45wQeAkNL6HnGUBhPJsHMjPHl5KktqN+db3D+FQygBeS2V1+zmC0X +UZNRE4aWiHvt1Lq+pTx89SOMOpfqWfh4qTQKiE5jC2V4DeCNQ3u7uI8= -----END CERTIFICATE----- diff --git a/tests/testserver/docker-compose.yml b/tests/testserver/docker-compose.yml index 334818bc9b..a151d6bfb0 100644 --- a/tests/testserver/docker-compose.yml +++ b/tests/testserver/docker-compose.yml @@ -1,9 +1,5 @@ version: '3.4' -x-domains: - &testdomain - ${TESTSERVER_DOMAIN:-test-net.qt} - # The tag of images is used by docker compose file to launch the corresponding # docker containers. The value of tag comes from the provisioning script # (coin/provisioning/.../testserver/docker_testserver.sh). The script gets SHA-1 @@ -16,9 +12,9 @@ x-domains: services: apache2: - image: qt-test-server-apache2:e2a70c8b169c204e762b375885bd3a26cc40ba48 + image: qt-test-server-apache2:cc9ea678b92bdda33acb9fa0159bb4ad0f3cd947 container_name: qt-test-server-apache2 - domainname: *testdomain + domainname: test-net.qt.local hostname: apache2 volumes: - ./common:/common:ro @@ -27,14 +23,14 @@ services: command: [common/ssl.sh, service/apache2.sh] squid: - image: qt-test-server-squid:276768104d3bbf097f4f3d9f3dc472a067852094 + image: qt-test-server-squid:577d99307eea9a8cccfec944d25be2bce2fe99cc container_name: qt-test-server-squid - domainname: *testdomain + domainname: test-net.qt.local hostname: squid depends_on: - apache2 external_links: - - apache2:apache2.test-net.qt + - apache2:apache2.test-net.qt.local volumes: - ./common:/common:ro - ./squid:/service:ro @@ -42,12 +38,10 @@ services: command: service/squid.sh vsftpd: - image: qt-test-server-vsftpd:ab7ecdbbace1bce7642a92ce04e9051c7630376c + image: qt-test-server-vsftpd:18896604c7e90b543e56d80c8a8aabdb65a590d0 container_name: qt-test-server-vsftpd - domainname: *testdomain + domainname: test-net.qt.local hostname: vsftpd - depends_on: - - squid volumes: - ./common:/common:ro - ./vsftpd:/service:ro @@ -55,14 +49,14 @@ services: command: service/vsftpd.sh ftp-proxy: - image: qt-test-server-ftp-proxy:4c5734fe60eb450cbf8a96165f67cba19851ec12 + image: qt-test-server-ftp-proxy:2c6c8f1ab6a364b540c43d705fb6f15a585cb2af container_name: qt-test-server-ftp-proxy - domainname: *testdomain + domainname: test-net.qt.local hostname: ftp-proxy depends_on: - vsftpd external_links: - - vsftpd:vsftpd.test-net.qt + - vsftpd:vsftpd.test-net.qt.local volumes: - ./common:/common:ro - ./ftp-proxy:/service:ro @@ -70,18 +64,18 @@ services: command: service/ftp-proxy.sh danted: - image: qt-test-server-danted:8404549745b5601ec3d22dc019258b70438864de + image: qt-test-server-danted:327dd56c3c35db85b26fac93213a5a1918475bc7 container_name: qt-test-server-danted - domainname: *testdomain + domainname: test-net.qt.local hostname: danted depends_on: - apache2 - vsftpd - ftp-proxy external_links: - - apache2:apache2.test-net.qt - - vsftpd:vsftpd.test-net.qt - - ftp-proxy:ftp-proxy.test-net.qt + - apache2:apache2.test-net.qt.local + - vsftpd:vsftpd.test-net.qt.local + - ftp-proxy:ftp-proxy.test-net.qt.local volumes: - ./common:/common:ro - ./danted:/service:ro |