diff --git a/contrib/docker-integration/docker-compose.yml b/contrib/docker-integration/docker-compose.yml index 4d4f3856..374197ac 100644 --- a/contrib/docker-integration/docker-compose.yml +++ b/contrib/docker-integration/docker-compose.yml @@ -64,7 +64,7 @@ registryv2tokenoauthnotls: - ./tokenserver-oauth/certs/signing.cert:/etc/docker/registry/tokenbundle.pem tokenserveroauth: build: "tokenserver-oauth" - command: "--debug -addr 0.0.0.0:5559 -issuer registry-test -passwd .htpasswd -tlscert tls.cert -tlskey tls.key -key sign.key -realm http://auth.localregistry:5559" + command: "--debug -addr 0.0.0.0:5559 -issuer registry-test -passwd .htpasswd -tlscert tls.cert -tlskey tls.key -key sign.key -realm http://auth.localregistry:5559 -enforce-class" ports: - "5559" malevolent: diff --git a/contrib/docker-integration/golem.conf b/contrib/docker-integration/golem.conf index 99c8d600..eb175707 100644 --- a/contrib/docker-integration/golem.conf +++ b/contrib/docker-integration/golem.conf @@ -1,6 +1,6 @@ [[suite]] dind=true - images=[ "nginx:1.9", "dmcgowan/token-server:simple", "dmcgowan/token-server:oauth", "dmcgowan/malevolent:0.1.0" ] + images=[ "nginx:1.9", "dmcgowan/token-server:simple", "dmcgowan/token-server:oauth", "dmcgowan/malevolent:0.1.0", "dmcgowan/ncat:latest" ] [[suite.pretest]] command="sh ./install_certs.sh /etc/generated_certs.d" diff --git a/contrib/docker-integration/helpers.bash b/contrib/docker-integration/helpers.bash index 279ad7d6..8760f9cf 100644 --- a/contrib/docker-integration/helpers.bash +++ b/contrib/docker-integration/helpers.bash @@ -32,35 +32,44 @@ function basic_auth_version_check() { fi } +email="a@nowhere.com" + +# docker_t_login calls login with email depending on version +function docker_t_login() { + # Only pass email field pre 1.11, no deprecation warning + parse_version "$GOLEM_DIND_VERSION" + v=$version + parse_version "1.11.0" + if [ "$v" -lt "$version" ]; then + run docker_t login -e $email $@ + else + run docker_t login $@ + fi +} + # login issues a login to docker to the provided server # uses user, password, and email variables set outside of function # requies bats function login() { rm -f /root/.docker/config.json - # Only pass email field pre 1.11, no deprecation warning + docker_t_login -u $user -p $password $1 + if [ "$status" -ne 0 ]; then + echo $output + fi + [ "$status" -eq 0 ] + + # Handle different deprecation warnings parse_version "$GOLEM_DIND_VERSION" v=$version parse_version "1.11.0" if [ "$v" -lt "$version" ]; then - run docker_t login -u $user -p $password -e $email $1 - if [ "$status" -ne 0 ]; then - echo $output - fi - [ "$status" -eq 0 ] # First line is WARNING about credential save or email deprecation (maybe both) [ "${lines[2]}" = "Login Succeeded" -o "${lines[1]}" = "Login Succeeded" ] else - run docker_t login -u $user -p $password $1 - if [ "$status" -ne 0 ]; then - echo $output - fi - echo $output - [ "$status" -eq 0 ] [ "${lines[0]}" = "Login Succeeded" ] fi - } function login_oauth() { @@ -109,7 +118,7 @@ function docker_t() { docker exec dockerdaemon docker $@ } -# build reates a new docker image id from another image +# build creates a new docker image id from another image function build() { docker exec -i dockerdaemon docker build --no-cache -t $1 - < $plugindir/config.json <