Update docker integration tests to use golem
Use registry example from golem repository. Use the golem test runner for the docker integration environment Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)master
							parent
							
								
									f4b6fc8d68
								
							
						
					
					
						commit
						17f7f60d77
					
				|  | @ -1,46 +1,7 @@ | |||
| FROM debian:jessie | ||||
| FROM distribution/golem:0.1 | ||||
| 
 | ||||
| MAINTAINER Docker Distribution Team <distribution@docker.com> | ||||
| 
 | ||||
| # compile and runtime deps | ||||
| # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies | ||||
| RUN apt-get update && apt-get install -y --no-install-recommends \ | ||||
|         # For DIND | ||||
|         ca-certificates \ | ||||
|         curl \ | ||||
|         iptables \ | ||||
|         procps \ | ||||
|         e2fsprogs \ | ||||
|         xz-utils \ | ||||
|         # For build | ||||
|         build-essential \ | ||||
|         file \ | ||||
|         git \ | ||||
|         net-tools \  | ||||
|     && apt-get clean && rm -rf /var/lib/apt/lists/* | ||||
| RUN apk add --no-cache git | ||||
| 
 | ||||
| # Install Docker | ||||
| ENV VERSION 1.7.1 | ||||
| RUN curl -L -o /usr/local/bin/docker https://test.docker.com/builds/Linux/x86_64/docker-${VERSION} \ | ||||
|     && chmod +x /usr/local/bin/docker | ||||
| 
 | ||||
| # Install DIND | ||||
| RUN curl -L -o /dind https://raw.githubusercontent.com/docker/docker/v1.8.1/hack/dind \ | ||||
|     && chmod +x /dind | ||||
| 
 | ||||
| # Install bats | ||||
| RUN cd /usr/local/src/ \ | ||||
|     && git clone https://github.com/sstephenson/bats.git \ | ||||
|     && cd bats \ | ||||
|     && ./install.sh /usr/local | ||||
| 
 | ||||
| # Install docker-compose | ||||
| RUN curl -L https://github.com/docker/compose/releases/download/1.3.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose \ | ||||
|     && chmod +x /usr/local/bin/docker-compose | ||||
| 
 | ||||
| RUN mkdir -p /go/src/github.com/docker/distribution | ||||
| WORKDIR /go/src/github.com/docker/distribution/contrib/docker-integration | ||||
| 
 | ||||
| VOLUME /var/lib/docker | ||||
| 
 | ||||
| ENTRYPOINT ["/dind"] | ||||
|  |  | |||
|  | @ -121,18 +121,16 @@ bats -p . | |||
| 
 | ||||
| ## Configurations | ||||
| 
 | ||||
| Port | V2 | V1 | TLS | Authentication | ||||
| --- | --- | --- | --- | --- | ||||
| 5000 | yes | yes | no | none | ||||
| 5001 | no | yes | no | none | ||||
| 5002 | yes | no | no | none | ||||
| 5011 | no | yes | yes | none | ||||
| 5440 | yes | yes | yes | none | ||||
| 5441 | yes | yes | yes | basic (testuser/passpassword) | ||||
| 5442 | yes | yes | yes | TLS client | ||||
| 5443 | yes | yes | yes | TLS client (no CA) | ||||
| 5444 | yes | yes | yes | TLS client + basic (testuser/passpassword) | ||||
| 5445 | yes | yes | yes (no CA) | none | ||||
| 5446 | yes | yes | yes (no CA) | basic (testuser/passpassword) | ||||
| 5447 | yes | yes | yes (no CA) | TLS client | ||||
| 5448 | yes | yes | yes (SSLv3) | none | ||||
| Port | V2 | TLS | Authentication | ||||
| --- | --- | --- | --- | ||||
| 5000 | yes | no | none | ||||
| 5002 | yes | no | none | ||||
| 5440 | yes | yes | none | ||||
| 5441 | yes | yes | basic (testuser/passpassword) | ||||
| 5442 | yes | yes | TLS client | ||||
| 5443 | yes | yes | TLS client (no CA) | ||||
| 5444 | yes | yes | TLS client + basic (testuser/passpassword) | ||||
| 5445 | yes | yes (no CA) | none | ||||
| 5446 | yes | yes (no CA) | basic (testuser/passpassword) | ||||
| 5447 | yes | yes (no CA) | TLS client | ||||
| 5448 | yes | yes (SSLv3) | none | ||||
|  |  | |||
|  | @ -2,9 +2,7 @@ nginx: | |||
|   build: "nginx" | ||||
|   ports: | ||||
|     - "5000:5000" | ||||
|     - "5001:5001" | ||||
|     - "5002:5002" | ||||
|     - "5011:5011" | ||||
|     - "5440:5440" | ||||
|     - "5441:5441" | ||||
|     - "5442:5442" | ||||
|  | @ -14,14 +12,71 @@ nginx: | |||
|     - "5446:5446" | ||||
|     - "5447:5447" | ||||
|     - "5448:5448" | ||||
|     - "5554:5554" | ||||
|     - "5555:5555" | ||||
|     - "5556:5556" | ||||
|     - "5557:5557" | ||||
|     - "5558:5558" | ||||
|     - "5559:5559" | ||||
|     - "6666:6666" | ||||
|   links: | ||||
|     - registryv1:registryv1 | ||||
|     - registryv2:registryv2 | ||||
| registryv1: | ||||
|   image: registry:0.9.1 | ||||
|   ports: | ||||
|     - "5000" | ||||
|     - malevolent:malevolent | ||||
|     - registryv2token:registryv2token | ||||
|     - tokenserver:tokenserver | ||||
|     - registryv2tokenoauth:registryv2tokenoauth | ||||
|     - tokenserveroauth:tokenserveroauth | ||||
| registryv2: | ||||
|   build: "../../" | ||||
|   image: golem-distribution:latest | ||||
|   ports: | ||||
|     - "5000" | ||||
| registryv2token: | ||||
|   image: golem-distribution:latest | ||||
|   ports: | ||||
|     - "5000" | ||||
|   volumes: | ||||
|     - ./tokenserver/registry-config.yml:/etc/docker/registry/config.yml | ||||
|     - ./tokenserver/certs/localregistry.cert:/etc/docker/registry/localregistry.cert | ||||
|     - ./tokenserver/certs/localregistry.key:/etc/docker/registry/localregistry.key | ||||
|     - ./tokenserver/certs/signing.cert:/etc/docker/registry/tokenbundle.pem | ||||
| tokenserver: | ||||
|   build: "tokenserver" | ||||
|   command: "--debug -addr 0.0.0.0:5556 -issuer registry-test -passwd .htpasswd -tlscert tls.cert -tlskey tls.key -key sign.key -realm http://auth.localregistry:5556" | ||||
|   ports: | ||||
|     - "5556" | ||||
| registryv2tokenoauth: | ||||
|   image: golem-distribution:latest | ||||
|   ports: | ||||
|     - "5000" | ||||
|   volumes: | ||||
|     - ./tokenserver-oauth/registry-config.yml:/etc/docker/registry/config.yml | ||||
|     - ./tokenserver-oauth/certs/localregistry.cert:/etc/docker/registry/localregistry.cert | ||||
|     - ./tokenserver-oauth/certs/localregistry.key:/etc/docker/registry/localregistry.key | ||||
|     - ./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" | ||||
|   ports: | ||||
|     - "5559" | ||||
| malevolent: | ||||
|   image: "dmcgowan/malevolent:0.1.0" | ||||
|   command: "-l 0.0.0.0:6666 -r http://registryv2:5000 -c /certs/localregistry.cert -k /certs/localregistry.key" | ||||
|   links: | ||||
|     - registryv2:registryv2 | ||||
|   volumes: | ||||
|    - ./malevolent-certs:/certs:ro | ||||
|   ports: | ||||
|    - "6666" | ||||
| docker: | ||||
|   image: golem-dind:latest | ||||
|   container_name: dockerdaemon | ||||
|   command: "docker daemon --debug -s $DOCKER_GRAPHDRIVER" | ||||
|   privileged: true | ||||
|   environment: | ||||
|     DOCKER_GRAPHDRIVER: | ||||
|   volumes: | ||||
|     - ./generated_certs.d:/etc/docker/certs.d | ||||
|     - /var/lib/docker | ||||
|   links: | ||||
|     - nginx:localregistry | ||||
|     - nginx:auth.localregistry | ||||
|  |  | |||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX | ||||
| GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx | ||||
| BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT | ||||
| wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO | ||||
| cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY | ||||
| AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR | ||||
| sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE | ||||
| CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p | ||||
| y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk | ||||
| o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN | ||||
| NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G | ||||
| Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/ | ||||
| BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z | ||||
| PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU | ||||
| lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU | ||||
| GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna | ||||
| XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi | ||||
| QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK | ||||
| UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w | ||||
| Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH | ||||
| sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF | ||||
| AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib | ||||
| KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA | ||||
| KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX | ||||
| GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx | ||||
| BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT | ||||
| wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO | ||||
| cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY | ||||
| AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR | ||||
| sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE | ||||
| CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p | ||||
| y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk | ||||
| o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN | ||||
| NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G | ||||
| Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/ | ||||
| BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z | ||||
| PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU | ||||
| lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU | ||||
| GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna | ||||
| XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi | ||||
| QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK | ||||
| UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w | ||||
| Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH | ||||
| sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF | ||||
| AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib | ||||
| KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA | ||||
| KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX | ||||
| GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx | ||||
| BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT | ||||
| wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO | ||||
| cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY | ||||
| AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR | ||||
| sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE | ||||
| CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p | ||||
| y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk | ||||
| o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN | ||||
| NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G | ||||
| Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/ | ||||
| BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z | ||||
| PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU | ||||
| lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU | ||||
| GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna | ||||
| XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi | ||||
| QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK | ||||
| UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w | ||||
| Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH | ||||
| sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF | ||||
| AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib | ||||
| KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA | ||||
| KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIRAKbgxG1zgQI81ISaHxqLfpcwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNTA1MjYy | ||||
| MDU0MjJaFw0xODA1MTAyMDU0MjJaMBMxETAPBgNVBAoTCFF1aWNrVExTMIICIjAN | ||||
| BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/ | ||||
| oARHbx59G+GOeGkrwG6ZWSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8M | ||||
| WpLxp5U9LyYkv0AiSPfT2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/ | ||||
| MgJbdTylEq1UcZSLMuky+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7II | ||||
| hGlhziLVTKV9W1RP8Aop8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4 | ||||
| nFwmuhOo8gvw/HhzYcxyMHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCai | ||||
| gwUNzfe4/dHeCk/r3pteWOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru | ||||
| 5QqKMrbSlOcd6yHT6NM1ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/ | ||||
| Vlp5N+WRjDpsBscR8kt2Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoO | ||||
| nhRqhl2PSphcWdimk8Bwf5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3j | ||||
| NLQ8EmHWaZlJSeW4BiDYsXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeB | ||||
| twZJXIXR6Jc8hgsCAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgCgMBMGA1UdJQQMMAoG | ||||
| CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJKoZIhvcNAQELA4ICAQCl0cTLbLIn | ||||
| XFuxreei+y6TlG2Z5XcxJ84mr8VLAaQMlJOLZV0O/suFBu9KqBuvPaHhGRnKE2uw | ||||
| Vxdj9qaDdvmvuzi4jYyUA/sQuqq1+wHwGTadOi9r0IsL8OxzsG16OlhuXzhoQVdw | ||||
| C9z1jad4HC7uihQ5yhl2ltAA+h5G0Sr1b9El2mx4p6BV+okmTvrqrmjshQb1GZwx | ||||
| jG6SJ/uvjGf7rn09ZyYafF9ZDTMNodNXjW8orqGlFdXZLPFJ9agUFfwWfqD2lrtm | ||||
| Fu+Ei0ZvKOtyzmh06eO2aGAHJCBTfcDM4tBKBKp0MOMoZkcQQDNpSyI12j6s1wtx | ||||
| /1dC8QDyfFpZFXTbKn3q+6MpR+u5zqVquYjwP5DqGTvX0e1sLSthv7LRiOi0qHv1 | ||||
| bZ8JoWhRMNumui9mzwar5t20ExcWxGxizZY+t+OIj4kaAeRoKK6r6FrYBnTjM+iR | ||||
| +xtML5UHPOSmYfNcai0Wn4T7hwpgnCJ+K7qGYjFUCarsINppQEwkxHAvuX+asc38 | ||||
| nA0wd7ByulkMJph0gP6j6LuJf28JODi6EQ7FcQItMeTuPrc+mpqJ4jP7vTTSJG7Q | ||||
| wvqXLMgFQFR+2PG0s10hbY/Y/nwZAROfAs7ADED+EcDPTl/+XjVyo/aYIeOb/07W | ||||
| SpS/cacZYUsSLgB4cWbxElcc/p7CW1PbOA== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,51 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| 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 | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX | ||||
| GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx | ||||
| BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT | ||||
| wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO | ||||
| cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY | ||||
| AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR | ||||
| sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE | ||||
| CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p | ||||
| y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk | ||||
| o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN | ||||
| NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G | ||||
| Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/ | ||||
| BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z | ||||
| PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU | ||||
| lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU | ||||
| GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna | ||||
| XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi | ||||
| QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK | ||||
| UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w | ||||
| Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH | ||||
| sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF | ||||
| AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib | ||||
| KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA | ||||
| KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9DCCAt6gAwIBAgIQb58oJ+9SvWUCcYWA+L1oiTALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTUwMFoXDTE4MDUxMDIwNTUwMFowEzERMA8GA1UEChMIUXVpY2tUTFMwggIiMA0G | ||||
| CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDmOL3EhBm4So3agPMmF0z1+/nPlrE | ||||
| xoG7x0HYPk5CP3PF3TNVk3ArBPkMzge0/895a4ZEb9j+LUQEjOZa/ZwuLmSjfJSt | ||||
| 9xTXI1ldp8KasyzQZjC33/bUj7FGxGzgbHyJrGGBoH2W5HdswH4WzhCnGTslyiDo | ||||
| VN4hklJ7gr+Geq3TPf8Eji+1L71MOrUyoNp7BaQBQT/gKxK0nV+ZuSk6eaiu+om7 | ||||
| slp3x4bc21o7eIMmNXggJP6p9fMDctnioKhAPcm+5ADiFYSjivLeUQ85VkMTpmdU | ||||
| yvq6ziK3Ls6erD+S3xLvcHYAaeu84qLd7qdPwkHMTQsDpO4vPMIwL8piMzZV+kwL | ||||
| Bq+5xk5//FwnQH0pSo2Nr4vRn+DITZc3GKyGUJQoOUgAdfGNskTt8GXa4IsHn5iw | ||||
| zr12vGaxb//GDm0RLHnh7NVbD8xxDHIJq+fJNFb7MdXa8v31PYebkWuaPhYt6HQC | ||||
| I/D81zwcJIOGfzNITS2ifM5tvMaUXireo4pLC2v2aSY6RrPq1owlB6jGFwGwZSAF | ||||
| O6rxSqWO1gLfhJLzqcw/NjWnO7nCZEs/iKgAa22K2CtTt3dDMTvSBYKdkRe/FYQC | ||||
| MCa7MFJSaH85pYRzoDN4IuVpvROrtuQmlI47oZzb64uCPoA4A8AN+k8iysqITsgK | ||||
| 1m8ePPXhbu4YlwIDAQABozUwMzAOBgNVHQ8BAf8EBAMCAKAwEwYDVR0lBAwwCgYI | ||||
| KwYBBQUHAwIwDAYDVR0TAQH/BAIwADALBgkqhkiG9w0BAQsDggIBALSgrCdEQd3I | ||||
| vb/FNkNZkAwdjfBD6j7ZtPBwvjEiiyNTx9hOLBGvbey7kr0HtW0KkLWsdRmCc+3z | ||||
| ev9I5VjDOtpiqrvuAA1wRBaL3UzGyj/eFjPJpvkfJi8zjkIZ2y18QG3yJ6Eqy6dD | ||||
| 0aIQAHl9hkXMOVrf364gf0p7EoOGtSlfQ56yIGDPTFKKiy+Al0S42p17lhI4coz9 | ||||
| zGXE1/SiNeZgdsk4zHDqhzzBp8foZuSL1sGcIXHkG8RtqZ1WvCyIPYRyIjIKZcXd | ||||
| JCEM//EbgDzQ7VE/jm+hIlYfPjM7fmUzsfii+bIrp/0HGEU3HN++LsA6eQOwWPa/ | ||||
| PrxKPP36EVXb72QK8C3lmz6y+CHhuuAm0C1b1qmYVEs4eRE21S8eB2l0KUlfOecf | ||||
| xZ1LWp1agKt6fGqRgcsR3/qO27l8W7hlbFNPeOTgr6NQQkEMRW5OxbnZ58ULXqr3 | ||||
| gWh8Na3D4+3j53035UBBQUMmeeFfWCvtr5n0+6BTAi62Cwwu9QQQBM/2f9/9K+B7 | ||||
| cW0xPYtczm+VwJL6/rDtNN9xPWitxab1dkZp2XcHG3VWtYvE2R2EtEoKvvCLPggx | ||||
| zcafsZfcD1wlvtQF7YjykGJnMa0SB0GBl9SQtvGc8PkP39yXHqXZhIoo3fp4qm9v | ||||
| RfbdpOr8p/Ks34ZqQPukFwpM1s/6aicF | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,51 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| 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 | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX | ||||
| GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx | ||||
| BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT | ||||
| wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO | ||||
| cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY | ||||
| AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR | ||||
| sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE | ||||
| CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p | ||||
| y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk | ||||
| o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN | ||||
| NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G | ||||
| Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/ | ||||
| BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z | ||||
| PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU | ||||
| lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU | ||||
| GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna | ||||
| XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi | ||||
| QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK | ||||
| UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w | ||||
| Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH | ||||
| sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF | ||||
| AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib | ||||
| KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA | ||||
| KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIRAKbgxG1zgQI81ISaHxqLfpcwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNTA1MjYy | ||||
| MDU0MjJaFw0xODA1MTAyMDU0MjJaMBMxETAPBgNVBAoTCFF1aWNrVExTMIICIjAN | ||||
| BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/ | ||||
| oARHbx59G+GOeGkrwG6ZWSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8M | ||||
| WpLxp5U9LyYkv0AiSPfT2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/ | ||||
| MgJbdTylEq1UcZSLMuky+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7II | ||||
| hGlhziLVTKV9W1RP8Aop8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4 | ||||
| nFwmuhOo8gvw/HhzYcxyMHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCai | ||||
| gwUNzfe4/dHeCk/r3pteWOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru | ||||
| 5QqKMrbSlOcd6yHT6NM1ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/ | ||||
| Vlp5N+WRjDpsBscR8kt2Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoO | ||||
| nhRqhl2PSphcWdimk8Bwf5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3j | ||||
| NLQ8EmHWaZlJSeW4BiDYsXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeB | ||||
| twZJXIXR6Jc8hgsCAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgCgMBMGA1UdJQQMMAoG | ||||
| CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJKoZIhvcNAQELA4ICAQCl0cTLbLIn | ||||
| XFuxreei+y6TlG2Z5XcxJ84mr8VLAaQMlJOLZV0O/suFBu9KqBuvPaHhGRnKE2uw | ||||
| Vxdj9qaDdvmvuzi4jYyUA/sQuqq1+wHwGTadOi9r0IsL8OxzsG16OlhuXzhoQVdw | ||||
| C9z1jad4HC7uihQ5yhl2ltAA+h5G0Sr1b9El2mx4p6BV+okmTvrqrmjshQb1GZwx | ||||
| jG6SJ/uvjGf7rn09ZyYafF9ZDTMNodNXjW8orqGlFdXZLPFJ9agUFfwWfqD2lrtm | ||||
| Fu+Ei0ZvKOtyzmh06eO2aGAHJCBTfcDM4tBKBKp0MOMoZkcQQDNpSyI12j6s1wtx | ||||
| /1dC8QDyfFpZFXTbKn3q+6MpR+u5zqVquYjwP5DqGTvX0e1sLSthv7LRiOi0qHv1 | ||||
| bZ8JoWhRMNumui9mzwar5t20ExcWxGxizZY+t+OIj4kaAeRoKK6r6FrYBnTjM+iR | ||||
| +xtML5UHPOSmYfNcai0Wn4T7hwpgnCJ+K7qGYjFUCarsINppQEwkxHAvuX+asc38 | ||||
| nA0wd7ByulkMJph0gP6j6LuJf28JODi6EQ7FcQItMeTuPrc+mpqJ4jP7vTTSJG7Q | ||||
| wvqXLMgFQFR+2PG0s10hbY/Y/nwZAROfAs7ADED+EcDPTl/+XjVyo/aYIeOb/07W | ||||
| SpS/cacZYUsSLgB4cWbxElcc/p7CW1PbOA== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,51 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| 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 | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIRAKbgxG1zgQI81ISaHxqLfpcwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNTA1MjYy | ||||
| MDU0MjJaFw0xODA1MTAyMDU0MjJaMBMxETAPBgNVBAoTCFF1aWNrVExTMIICIjAN | ||||
| BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq0Pc8DQ9AyvokFzm9v4a+29TCA3/ | ||||
| oARHbx59G+GOeGkrwG6ZWSZa/oNEJf3NJcU00V04k+fQuVoYBCgBXec9TEBvXa8M | ||||
| WpLxp5U9LyYkv0AiSPfT2fJEE8mC+isMl+DbmgBcShwRXpeZQyIbEJhedS8mIjW/ | ||||
| MgJbdTylEq1UcZSLMuky+RWv10dw02fLuN1302OgfJRZooPug9rPYHHGbTB0o7II | ||||
| hGlhziLVTKV9W1RP8Aop8TamSD85OV6shDaCvmMFr1YNDjcJJ5MGMaSmq0Krq9v4 | ||||
| nFwmuhOo8gvw/HhzYcxyMHnqMt6EgvbVWwXOoW7xiI3BEDFV33xgTp61bFpcdCai | ||||
| gwUNzfe4/dHeCk/r3pteWOxH1bvcxUlmUB65wjRAwKuIX8Z0hC4ZlM30o+z11Aru | ||||
| 5QqKMrbSlOcd6yHT6NM1ZRyD+nbFORqB8W51g344eYl0zqQjxTQ0TNjJWDR2RWB/ | ||||
| Vlp5N+WRjDpsBscR8kt2Q1My17gWzvHfijGETZpbvmo2f+Keqc9fcfzkIe/VZFoO | ||||
| nhRqhl2PSphcWdimk8Bwf5jC2uDAXWCdvVWvRSP4Xg8zpDwLhlsfLaWVH9n+WG3j | ||||
| NLQ8EmHWaZlJSeW4BiDYsXmpTAkeLmwoS+pk2WL0TSQ7+S3DyrmTeVANHipNQZeB | ||||
| twZJXIXR6Jc8hgsCAwEAAaM1MDMwDgYDVR0PAQH/BAQDAgCgMBMGA1UdJQQMMAoG | ||||
| CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwCwYJKoZIhvcNAQELA4ICAQCl0cTLbLIn | ||||
| XFuxreei+y6TlG2Z5XcxJ84mr8VLAaQMlJOLZV0O/suFBu9KqBuvPaHhGRnKE2uw | ||||
| Vxdj9qaDdvmvuzi4jYyUA/sQuqq1+wHwGTadOi9r0IsL8OxzsG16OlhuXzhoQVdw | ||||
| C9z1jad4HC7uihQ5yhl2ltAA+h5G0Sr1b9El2mx4p6BV+okmTvrqrmjshQb1GZwx | ||||
| jG6SJ/uvjGf7rn09ZyYafF9ZDTMNodNXjW8orqGlFdXZLPFJ9agUFfwWfqD2lrtm | ||||
| Fu+Ei0ZvKOtyzmh06eO2aGAHJCBTfcDM4tBKBKp0MOMoZkcQQDNpSyI12j6s1wtx | ||||
| /1dC8QDyfFpZFXTbKn3q+6MpR+u5zqVquYjwP5DqGTvX0e1sLSthv7LRiOi0qHv1 | ||||
| bZ8JoWhRMNumui9mzwar5t20ExcWxGxizZY+t+OIj4kaAeRoKK6r6FrYBnTjM+iR | ||||
| +xtML5UHPOSmYfNcai0Wn4T7hwpgnCJ+K7qGYjFUCarsINppQEwkxHAvuX+asc38 | ||||
| nA0wd7ByulkMJph0gP6j6LuJf28JODi6EQ7FcQItMeTuPrc+mpqJ4jP7vTTSJG7Q | ||||
| wvqXLMgFQFR+2PG0s10hbY/Y/nwZAROfAs7ADED+EcDPTl/+XjVyo/aYIeOb/07W | ||||
| SpS/cacZYUsSLgB4cWbxElcc/p7CW1PbOA== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,51 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| 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 | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,29 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIE9TCCAt+gAwIBAgIQMsdPWoLAso/tIOvLk8R/sDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDUyNjIw | ||||
| NTQwMVoXDTE4MDUxMDIwNTQwMVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1YeX | ||||
| GTvXPKlWA2lMbCvIGB9JYld/otf8aqs6euVJK1f09ngj5b6VoVlI8o1ScVcHKlKx | ||||
| BGfPMThnM7fiEmsfDSPuCIlGmTqR0t4t9dHRnLBGbZmR8JdAs7LKpP+PFYu0JTIT | ||||
| wFcjXIs+45cIF2HpsYY6zkj0bmNsyYmT1U1BTW+qqmhvc0Jkr+ikElOQ93Pn7zIO | ||||
| cXtxdERdzdzXY5cfL3CCaoJDgXOsKPQfYrCi5Zl6sLZVBkIc6Q2fErSIjTp45+NY | ||||
| AjiOxfUT0MOFtA0/HzYvVp3gTNPGEWM3dF1hwzCqJ32odbw/3TiFCEeC1B82p1sR | ||||
| sgoFZ6Vbfy9fMhB5S7BBtbqF09Yq/PMM3drOvWIxMF4aOY55ilrtKVwmnckiB0mE | ||||
| CPOColUUyiWIwwvp82InYsX5ekfS4x1mX1iz8zQEuTF5QHdKiUfd4A33ZMf0Ve6p | ||||
| y9SaMmos99uVQMzWlwj7nVACXjb9Ee6MY/ePRl7Z2gBxEYV41SGFRg8LNkQ//fYk | ||||
| o2vJ4Bp4aOh/O3ZQNv1eqEDmf/Su5lYCzURyQ2srcRRdwpteDPX+NHYn2d07knHN | ||||
| NQvOJn6EkcsDbgp0vSr6mFDv2GZWkTOAd8jZyrcErrLHAxRNm0Va+CEIKLhswf1G | ||||
| Y2kFkPL1otI8OSDvdJSjZ2GjRSwXhM2Mf3PzfAkCAwEAAaMjMCEwDgYDVR0PAQH/ | ||||
| BAQDAgCkMA8GA1UdEwEB/wQFMAMBAf8wCwYJKoZIhvcNAQELA4ICAQDBxOHKnF9z | ||||
| PZWPNKDRmBPtmnU2IHh6JJ9HzqGALJJbBU0MUSD/aLBBkYeS0YSHgYZ1hXLsfuRU | ||||
| lm/czV41hU1FTDqS2fFpcAAGH+6/rwyfrz+GYr2K4b/ijCwOMbMrDWO54zqZT3KU | ||||
| GFBpkrh4fNyKdgUNJsy0Q0it3gOGSUmLvEQUzqxPFVz7h/pF/Cecr0/kpjbpsxna | ||||
| XQkhtDyKDIQfPCq8Ci1vox5WvBbBkdzDtyCm+KSb6VC3pCX6LV5NkS7YM7mtscTi | ||||
| QdYfLbKX05kUVG2R9SShJn5BSXzGk9M5FR5koGY0lMHwmJqaOqazXjqa1jR7UNDK | ||||
| UyExHIXSqJ+nCf4bChEsaC1uwu3Gr7PfP41Zb2U3Raf8UmFnbz6Hx0sS4zBvyJ5w | ||||
| Ntemve4M1mB7++oLZ4PkuwK82SkQ8YK0z+lGJQRjg/HP3fVETV8TlIPJAvg7bRnH | ||||
| sMrLb/V+K6iY+08kQ2rpU02itRjKnU/DLoha4KVjafY8eIcIR2lpwrYjx+KYpkcF | ||||
| AMEC7MnuzhyUfDL++GO6XGwRnx2E54MnKtkrECObMSzwuLysPmjhrEUH6YR7zGib | ||||
| KmN6vQkA4s5053R+Tu0k1JGaw90SfvcW4bxGcFjU4Kg0KqlY1y8tnt+ZiHmK0naA | ||||
| KauB3KY1NiL+Ng5DCzNdkwDkWH78ZguI2w== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQKQTGjKpSVBW78ef0fOcxRTALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDgyMDIz | ||||
| MjE0OVoXDTE4MDgwNDIzMjE0OVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwoPM | ||||
| xiDZK6Fwy5r3waRkfJHhyZZH828Jyj+nz5UVkMyOM/xN6MgJ2w911hTj1wSXG2n3 | ||||
| AohF3gTFNrDYh4j2qRZnixDrOM5GBm2/KJbyfBIYkrR45yLfjidO7MRnhaPZ5Fov | ||||
| l+RKwNBXP4Q2mUe7q9FM457Rm8hAcqXP04AJT20m1QSYQivDgxsDxuAQte3VEy1E | ||||
| 0j0CwUKoFHT6MHOnDPEZbc4r1+ba34WBM1Sc5KXyV2JlbtU07J4hACYWVsD7vQCl | ||||
| VFlZNE4E35ahMDZ+ODLal9PAT8ARLdAtjvRWrT+h8qZ4Yfwt/sGF1K4CAkTP3H5p | ||||
| uMkJG56zmqIEYeHMuwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALpieTckiPEeb3rTAWl7waDPLPOIhS5C | ||||
| XHVfOm7cPmRn3pT2VuR8y74U7a1uOkYMgJnCWb8lSXhbqC89FatLnAhKqo4I9oD8 | ||||
| 2BXgYeIpP5/OWBcjzmsMnowrvokc0chAmAR0Ux6AP0eX9amC0lGMuTHdw3+is0AR | ||||
| lhoImOUPXvgMH7W2RimpSgnX0R5wKqfuGwMfbGa0xhWBZ+wekAKcU8b+pIHDyX0c | ||||
| EQcir2y8/lVjECXSAIlV6iasPQ3hm1sd0xq1hx4yrwYFvQb7yEhOXbK24HLr/20D | ||||
| RRmEOuS8gg2XtUFv66z/VOw/nUleIg9GAuWDJaiu9frmIma4/tIY4qY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,16 @@ | |||
| [[suite]] | ||||
|   dind=true | ||||
|   images=[ "nginx:1.9", "dmcgowan/token-server:simple", "dmcgowan/token-server:oauth", "dmcgowan/malevolent:0.1.0" ] | ||||
| 
 | ||||
|   [[suite.testrunner]] | ||||
|     command="bats -t ." | ||||
|     format="tap" | ||||
|     env=["TEST_REPO=hello-world", "TEST_TAG=latest", "TEST_USER=testuser", "TEST_PASSWORD=passpassword", "TEST_REGISTRY=localregistry", "TEST_SKIP_PULL=true"] | ||||
|   [[suite.customimage]] | ||||
|     tag="golem-distribution:latest" | ||||
|     default="registry:2.2.1" | ||||
|   [[suite.customimage]] | ||||
|     tag="golem-dind:latest" | ||||
|     default="docker:1.10.1-dind" | ||||
|     version="1.10.1" | ||||
| 
 | ||||
|  | @ -1,21 +1,101 @@ | |||
| # Start docker daemon | ||||
| function start_daemon() { | ||||
| 	# Drivers to use for Docker engines the tests are going to create. | ||||
| 	STORAGE_DRIVER=${STORAGE_DRIVER:-overlay} | ||||
| 	EXEC_DRIVER=${EXEC_DRIVER:-native} | ||||
| 
 | ||||
| 	docker --daemon --log-level=panic \ | ||||
| 		--storage-driver="$STORAGE_DRIVER" --exec-driver="$EXEC_DRIVER" & | ||||
| 	DOCKER_PID=$! | ||||
| 
 | ||||
| 	# Wait for it to become reachable. | ||||
| 	tries=10 | ||||
| 	until docker version &> /dev/null; do | ||||
| 		(( tries-- )) | ||||
| 		if [ $tries -le 0 ]; then | ||||
| 			echo >&2 "error: daemon failed to start" | ||||
| 			exit 1 | ||||
| 		fi | ||||
| 		sleep 1 | ||||
| 	done | ||||
| # has_digest enforces the last output line is "Digest: sha256:..." | ||||
| # the input is the output from a docker push cli command | ||||
| function has_digest() { | ||||
| 	filtered=$(echo "$1" |sed -rn '/[dD]igest\: sha(256|384|512)/ p') | ||||
| 	[ "$filtered" != "" ] | ||||
| 	# See http://wiki.alpinelinux.org/wiki/Regex#BREs before making changes to regex | ||||
| 	digest=$(expr "$filtered" : ".*\(sha[0-9]\{3,3\}:[a-z0-9]*\)") | ||||
| } | ||||
| 
 | ||||
| # tempImage creates a new image using the provided name | ||||
| # requires bats | ||||
| function tempImage() { | ||||
| 	dir=$(mktemp -d) | ||||
| 	run dd if=/dev/urandom of="$dir/f" bs=1024 count=512 | ||||
| 	cat <<DockerFileContent > "$dir/Dockerfile" | ||||
| FROM scratch | ||||
| COPY f /f | ||||
| 
 | ||||
| CMD [] | ||||
| DockerFileContent | ||||
| 
 | ||||
| 	cp_t $dir "/tmpbuild/" | ||||
| 	exec_t "cd /tmpbuild/; docker build --no-cache -t $1 .; rm -rf /tmpbuild/" | ||||
| } | ||||
| 
 | ||||
| # skip basic auth tests with Docker 1.6, where they don't pass due to | ||||
| # certificate issues, requires bats | ||||
| function basic_auth_version_check() { | ||||
| 	run sh -c 'docker version | fgrep -q "Client version: 1.6."' | ||||
| 	if [ "$status" -eq 0 ]; then | ||||
| 		skip "Basic auth tests don't support 1.6.x" | ||||
| 	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 | ||||
| 	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" ] | ||||
| } | ||||
| 
 | ||||
| function login_oauth() { | ||||
| 	login $@ | ||||
| 
 | ||||
| 	tmpFile=$(mktemp) | ||||
| 	get_file_t /root/.docker/config.json $tmpFile | ||||
| 	run awk -v RS="" "/\"$1\": \\{[[:space:]]+\"auth\": \"[[:alnum:]]+\",[[:space:]]+\"identitytoken\"/ {exit 3}" $tmpFile | ||||
| 	[ "$status" -eq 3 ] | ||||
| } | ||||
| 
 | ||||
| function parse_version() { | ||||
| 	version=$(echo "$1" | cut -d '-' -f1) # Strip anything after '-' | ||||
| 	major=$(echo "$version" | cut -d . -f1) | ||||
| 	minor=$(echo "$version" | cut -d . -f2) | ||||
| 	rev=$(echo "$version" | cut -d . -f3) | ||||
| 
 | ||||
| 	version=$((major * 1000 * 1000 + minor * 1000 + rev)) | ||||
| } | ||||
| 
 | ||||
| function version_check() { | ||||
| 	name=$1 | ||||
| 	checkv=$2 | ||||
| 	minv=$3 | ||||
| 	parse_version "$checkv" | ||||
| 	v=$version | ||||
| 	parse_version "$minv" | ||||
| 	if [ "$v" -lt "$version" ]; then | ||||
| 		skip "$name version \"$checkv\" does not meet required version \"$minv\"" | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| function get_file_t() { | ||||
| 	docker cp dockerdaemon:$1 $2 | ||||
| } | ||||
| 
 | ||||
| function cp_t() { | ||||
| 	docker cp $1 dockerdaemon:$2 | ||||
| } | ||||
| 
 | ||||
| function exec_t() { | ||||
| 	docker exec dockerdaemon sh -c "$@" | ||||
| } | ||||
| 
 | ||||
| function docker_t() { | ||||
| 	docker exec dockerdaemon docker $@ | ||||
| } | ||||
| 
 | ||||
| # build reates a new docker image id from another image | ||||
| function build() { | ||||
| 	docker exec -i dockerdaemon docker build --no-cache -t $1 - <<DOCKERFILE | ||||
| FROM $2 | ||||
| MAINTAINER distribution@docker.com | ||||
| DOCKERFILE | ||||
| } | ||||
|  |  | |||
|  | @ -1,38 +1,49 @@ | |||
| #!/bin/sh | ||||
| set -e | ||||
| 
 | ||||
| hostname=$1 | ||||
| if [ "$hostname" = "" ]; then | ||||
| 	hostname="localhost" | ||||
| fi | ||||
| hostname="localregistry" | ||||
| authhostname="auth.$hostname" | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5011 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5011/ca.crt | ||||
| set_etc_hosts() { | ||||
| 	hostentry=$1 | ||||
| 	IP=$(ifconfig eth0|grep "inet addr:"| cut -d: -f2 | awk '{ print $1}') | ||||
| 	echo "$IP $hostentry" >> /etc/hosts | ||||
| 	# TODO: Check if record already exists in /etc/hosts | ||||
| } | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5440 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5440/ca.crt | ||||
| install_ca() { | ||||
| 	mkdir -p $1/$hostname:$2 | ||||
| 	cp ./nginx/ssl/registry-ca+ca.pem $1/$hostname:$2/ca.crt | ||||
| 	if [ "$3" != "" ]; then | ||||
| 		cp ./nginx/ssl/registry-$3+client-cert.pem $1/$hostname:$2/client.cert | ||||
| 		cp ./nginx/ssl/registry-$3+client-key.pem $1/$hostname:$2/client.key | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5441 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5441/ca.crt | ||||
| install_test_certs() { | ||||
| 	install_ca $1 5440 | ||||
| 	install_ca $1 5441 | ||||
| 	install_ca $1 5442 ca | ||||
| 	install_ca $1 5443 noca | ||||
| 	install_ca $1 5444 ca | ||||
| 	install_ca $1 5447 ca | ||||
| 	# For test remove CA | ||||
| 	rm $1/${hostname}:5447/ca.crt | ||||
| 	install_ca $1 5448 | ||||
| } | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5442 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5442/ca.crt | ||||
| cp ./nginx/ssl/registry-ca+client-cert.pem /etc/docker/certs.d/$hostname:5442/client.cert | ||||
| cp ./nginx/ssl/registry-ca+client-key.pem /etc/docker/certs.d/$hostname:5442/client.key | ||||
| set_etc_hosts $hostname | ||||
| set_etc_hosts $authhostname | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5443 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5443/ca.crt | ||||
| cp ./nginx/ssl/registry-noca+client-cert.pem /etc/docker/certs.d/$hostname:5443/client.cert | ||||
| cp ./nginx/ssl/registry-noca+client-key.pem /etc/docker/certs.d/$hostname:5443/client.key | ||||
| install_test_certs /etc/docker/certs.d | ||||
| install_test_certs /root/.docker/tls | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5444 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5444/ca.crt | ||||
| cp ./nginx/ssl/registry-ca+client-cert.pem /etc/docker/certs.d/$hostname:5444/client.cert | ||||
| cp ./nginx/ssl/registry-ca+client-key.pem /etc/docker/certs.d/$hostname:5444/client.key | ||||
| # Malevolent server | ||||
| mkdir -p /etc/docker/certs.d/$hostname:6666 | ||||
| cp ./malevolent-certs/ca.pem /etc/docker/certs.d/$hostname:6666/ca.crt | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5447 | ||||
| cp ./nginx/ssl/registry-ca+client-cert.pem /etc/docker/certs.d/$hostname:5447/client.cert | ||||
| cp ./nginx/ssl/registry-ca+client-key.pem /etc/docker/certs.d/$hostname:5447/client.key | ||||
| 
 | ||||
| mkdir -p /etc/docker/certs.d/$hostname:5448 | ||||
| cp ./nginx/ssl/registry-ca+ca.pem /etc/docker/certs.d/$hostname:5448/ca.crt | ||||
| # Token server | ||||
| install_file ./tokenserver/certs/ca.pem $1 5555 | ||||
| install_file ./tokenserver/certs/ca.pem $1 5554 | ||||
| install_file ./tokenserver/certs/ca.pem $1 5557 | ||||
| install_file ./tokenserver/certs/ca.pem $1 5558 | ||||
|  |  | |||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQKQTGjKpSVBW78ef0fOcxRTALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDgyMDIz | ||||
| MjE0OVoXDTE4MDgwNDIzMjE0OVowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwoPM | ||||
| xiDZK6Fwy5r3waRkfJHhyZZH828Jyj+nz5UVkMyOM/xN6MgJ2w911hTj1wSXG2n3 | ||||
| AohF3gTFNrDYh4j2qRZnixDrOM5GBm2/KJbyfBIYkrR45yLfjidO7MRnhaPZ5Fov | ||||
| l+RKwNBXP4Q2mUe7q9FM457Rm8hAcqXP04AJT20m1QSYQivDgxsDxuAQte3VEy1E | ||||
| 0j0CwUKoFHT6MHOnDPEZbc4r1+ba34WBM1Sc5KXyV2JlbtU07J4hACYWVsD7vQCl | ||||
| VFlZNE4E35ahMDZ+ODLal9PAT8ARLdAtjvRWrT+h8qZ4Yfwt/sGF1K4CAkTP3H5p | ||||
| uMkJG56zmqIEYeHMuwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALpieTckiPEeb3rTAWl7waDPLPOIhS5C | ||||
| XHVfOm7cPmRn3pT2VuR8y74U7a1uOkYMgJnCWb8lSXhbqC89FatLnAhKqo4I9oD8 | ||||
| 2BXgYeIpP5/OWBcjzmsMnowrvokc0chAmAR0Ux6AP0eX9amC0lGMuTHdw3+is0AR | ||||
| lhoImOUPXvgMH7W2RimpSgnX0R5wKqfuGwMfbGa0xhWBZ+wekAKcU8b+pIHDyX0c | ||||
| EQcir2y8/lVjECXSAIlV6iasPQ3hm1sd0xq1hx4yrwYFvQb7yEhOXbK24HLr/20D | ||||
| RRmEOuS8gg2XtUFv66z/VOw/nUleIg9GAuWDJaiu9frmIma4/tIY4qY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,19 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDETCCAfugAwIBAgIQZRKt7OeG+TlC2riszYwQQTALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE1MDgyMDIz | ||||
| MjE0OVoXDTE4MDgwNDIzMjE0OVowKzERMA8GA1UEChMIUXVpY2tUTFMxFjAUBgNV | ||||
| BAMTDWxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB | ||||
| AQDPdsUBStNMz4coXfQVIJIafG85VkngM4fV7hrg7AbiGLCWvq8cWOrYM50G9Wmo | ||||
| twK1WeQ6bigYOjINgSfTxcy3adciVZIIJyXqboz6n2V0yRPWpakof939bvuAurAP | ||||
| tSqQ2V5fGN0ZZn4J4IbXMSovKwo7sG3X6i4q/8DYHZ/mKjvCRMPC3MGWqunknpkm | ||||
| dzyKbIFHaDKlAqIOwTsDhHvGzm/9n3D+h4sl5ZPBobuBEV2u5GR0H5ujak4+Kczt | ||||
| thCWtRkzCfnjW0TEanheSYJGu8OgCGoFjQnHotgqvOO6iHZCsrB3gf8WQeou+y9e | ||||
| +OyLZv3FmqdC9SXr3b0LGQTFAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIAoDAMBgNV | ||||
| HRMBAf8EAjAAMBgGA1UdEQQRMA+CDWxvY2FscmVnaXN0cnkwCwYJKoZIhvcNAQEL | ||||
| A4IBAQC/PP2Y9QVhO8t4BXML1QpNRWqXG8Gg0P1XIh6M6FoxcGIodLdbzui828YB | ||||
| wm9ZlyKars+nDdgLdQWawdV7hSd6s2NeQlHYQSGLsdTAVkgIxiD7D2Tw3kAZ6Zrj | ||||
| dPikoVAc+rBMm/BXQLzy95IAbBVOHOpBkOOgF+TYxeLnOc3GzbUqBi1Pq97DMaxr | ||||
| DaDuywH55P/6v7qt610UIsZ6+RZ78iiRx4Q+oRxEqGT0rXI76gVxOFabbJuFr1n1 | ||||
| kEWa3u/BssJzX3KVAm7oUtaBnj2SH5fokFmvZ5lBXA4QO/5doOa8yZiFFvvQs7EY | ||||
| SWDxLrvS33UCtsCcpPggjehnxKaC | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEpQIBAAKCAQEAz3bFAUrTTM+HKF30FSCSGnxvOVZJ4DOH1e4a4OwG4hiwlr6v | ||||
| HFjq2DOdBvVpqLcCtVnkOm4oGDoyDYEn08XMt2nXIlWSCCcl6m6M+p9ldMkT1qWp | ||||
| KH/d/W77gLqwD7UqkNleXxjdGWZ+CeCG1zEqLysKO7Bt1+ouKv/A2B2f5io7wkTD | ||||
| wtzBlqrp5J6ZJnc8imyBR2gypQKiDsE7A4R7xs5v/Z9w/oeLJeWTwaG7gRFdruRk | ||||
| dB+bo2pOPinM7bYQlrUZMwn541tExGp4XkmCRrvDoAhqBY0Jx6LYKrzjuoh2QrKw | ||||
| d4H/FkHqLvsvXvjsi2b9xZqnQvUl6929CxkExQIDAQABAoIBAQCZjCUI7NFwwxQc | ||||
| m1UAogeglMJZJHUu+9SoUD8Sg34grvdbyqueBm1iMOkiclaOKU1W3b4eRNNmAwRy | ||||
| nEnW4km+4hX48m5PnHHijYnIIFsd0YjeT+Pf9qtdXFvGjeWq6oIjjM3dAnD50LKu | ||||
| KsCB2oCHQoqjXNQfftJGvt2C1oI2/WvdOR4prnGXElVfASswX4PkP5LCfLhIx+Fr | ||||
| 7ErfaRIKigLSaAWLKaw3IlL12Q/KkuGcnzYIzIRwY4VJ64ENN6M3+KknfGovQItL | ||||
| sCxceSe61THDP9AAI3Mequm8z3H0CImOWhJCge5l7ttLLMXZXqGxDCVx+3zvqlCa | ||||
| X0cgGSVBAoGBAOvTN3oJJx1vnh1mRj8+hqzFq1bjm4T/Wp314QWLeo++43II4uMM | ||||
| 5hxUlO5ViY1sKxQrGwK+9c9ddxAvm5OAFFkzgW9EhDCu0tXUb2/vAJQ93SgqbcRu | ||||
| coXWJpk0eNW/ouk2s1X8dzs+sCs3a4H64fEEj8yhwoyovjfucspsn7t1AoGBAOE2 | ||||
| ayLKx7CcWCiD/VGNvP7714MDst2isyq8reg8LEMmAaXR2IWWj5eGwKrImTQCsrjW | ||||
| P37aBp1lcWuuYRKl/WEGBy6JLNdATyUoYc1Yo+8YdenekkOtOHHJerlK3OKi3ZVp | ||||
| q4HJY9wzKg/wYLcbTmjjzKj+OBIZWwig73XUHwoRAoGBAJnuIrYbp1aFdvXFvnCl | ||||
| xY6c8DwlEWx8qY+V4S2XX4bYmOnkdwSxdLplU1lGqCSRyIS/pj/imdyjK4Z7LNfY | ||||
| sG+RORmB5a9JTgGZSqwLm5snzmXbXA7t8P7/S+6Q25baIeKMe/7SbplTT/bFk/0h | ||||
| 371MtvhhVfYuZwtnL7KFuLXJAoGBAMQ3UHKYsBC8tsZd8Pf8AL07mFHKiC04Etfa | ||||
| Wb5rpri+RVM+mGITgnmnavehHHHHJAWMjPetZ3P8rSv/Ww4PVsoQoXM3Cr1jh1E9 | ||||
| dLCfWPz4l8syIscaBYKF4wnLItXGxj3mOgoy93EjlrMaYHlILjGOv4JBM4L5WmoT | ||||
| JW7IaF6xAoGAZ4K8MwU/cAah8VinMmLGxvWWuBSgTTebuY5zN603MvFLKv5necuc | ||||
| BZfTTxD+gOnxRT6QAh++tOsbBmsgR9HmTSlQSSgw1L7cwGyXzLCDYw+5K/03KXSU | ||||
| DaFdgtfcDDJO8WtjOgjyTRzEAOsqFta1ige4pIu5fTilNVMQlhts5Iw= | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,192 @@ | |||
| #!/usr/bin/env bats | ||||
| 
 | ||||
| # This tests various expected error scenarios when pulling bad content | ||||
| 
 | ||||
| load helpers | ||||
| 
 | ||||
| host="localregistry:6666" | ||||
| base="malevolent-test" | ||||
| 
 | ||||
| function setup() { | ||||
| 	tempImage $base:latest | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent proxy pass through" { | ||||
| 	docker_t tag -f $base:latest $host/$base/nochange:latest | ||||
| 	run docker_t push $host/$base/nochange:latest | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	run docker_t pull $host/$base/nochange:latest | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent image name change" { | ||||
| 	imagename="$host/$base/rename" | ||||
| 	image="$imagename:lastest" | ||||
| 	docker_t tag -f $base:latest $image | ||||
| 	run docker_t push $image | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	# Pull attempt should fail to verify manifest digest | ||||
| 	run docker_t pull "$imagename@$digest" | ||||
| 	echo "$output" | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent altered layer" { | ||||
| 	image="$host/$base/addfile:latest" | ||||
| 	tempImage $image | ||||
| 	run docker_t push $image | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	# Remove image to ensure layer is pulled and digest verified | ||||
| 	docker_t rmi -f $image | ||||
| 
 | ||||
| 	run docker_t pull $image | ||||
| 	echo "$output" | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent altered layer (by digest)" { | ||||
| 	imagename="$host/$base/addfile" | ||||
| 	image="$imagename:latest" | ||||
| 	tempImage $image | ||||
| 	run docker_t push $image | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	# Remove image to ensure layer is pulled and digest verified | ||||
| 	docker_t rmi -f $image | ||||
| 
 | ||||
| 	run docker_t pull "$imagename@$digest" | ||||
| 	echo "$output" | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent poisoned images" { | ||||
|         truncid="777cf9284131" | ||||
| 	poison="${truncid}d77ca0863fb7f054c0a276d7e227b5e9a5d62b497979a481fa32" | ||||
| 	image1="$host/$base/image1/poison:$poison" | ||||
| 	tempImage $image1 | ||||
| 	run docker_t push $image1 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	image2="$host/$base/image2/poison:$poison" | ||||
| 	tempImage $image2 | ||||
| 	run docker_t push $image2 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 
 | ||||
| 	# Remove image to ensure layer is pulled and digest verified | ||||
| 	docker_t rmi -f $image1 | ||||
| 	docker_t rmi -f $image2 | ||||
| 
 | ||||
| 	run docker_t pull $image1 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	run docker_t pull $image2 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	# Test if there are multiple images | ||||
| 	run docker_t images | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	# Test images have same ID and not the poison | ||||
| 	id1=$(docker_t inspect --format="{{.Id}}" $image1) | ||||
| 	id2=$(docker_t inspect --format="{{.Id}}" $image2) | ||||
| 
 | ||||
| 	# Remove old images | ||||
| 	docker_t rmi -f $image1 | ||||
| 	docker_t rmi -f $image2 | ||||
| 
 | ||||
| 	[ "$id1" != "$id2" ] | ||||
| 
 | ||||
| 	[ "$id1" != "$truncid" ] | ||||
| 
 | ||||
| 	[ "$id2" != "$truncid" ] | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent altered identical images" { | ||||
|         truncid1="777cf9284131" | ||||
| 	poison1="${truncid1}d77ca0863fb7f054c0a276d7e227b5e9a5d62b497979a481fa32" | ||||
|         truncid2="888cf9284131" | ||||
| 	poison2="${truncid2}d77ca0863fb7f054c0a276d7e227b5e9a5d62b497979a481fa64" | ||||
| 
 | ||||
| 	image1="$host/$base/image1/alteredid:$poison1" | ||||
| 	tempImage $image1 | ||||
| 	run docker_t push $image1 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	image2="$host/$base/image2/alteredid:$poison2" | ||||
| 	docker_t tag -f $image1 $image2 | ||||
| 	run docker_t push $image2 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 
 | ||||
| 	# Remove image to ensure layer is pulled and digest verified | ||||
| 	docker_t rmi -f $image1 | ||||
| 	docker_t rmi -f $image2 | ||||
| 
 | ||||
| 	run docker_t pull $image1 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	run docker_t pull $image2 | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	# Test if there are multiple images | ||||
| 	run docker_t images | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	# Test images have same ID and not the poison | ||||
| 	id1=$(docker_t inspect --format="{{.Id}}" $image1) | ||||
| 	id2=$(docker_t inspect --format="{{.Id}}" $image2) | ||||
| 
 | ||||
| 	# Remove old images | ||||
| 	docker_t rmi -f $image1 | ||||
| 	docker_t rmi -f $image2 | ||||
| 
 | ||||
| 	[ "$id1" == "$id2" ] | ||||
| 
 | ||||
| 	[ "$id1" != "$truncid1" ] | ||||
| 
 | ||||
| 	[ "$id2" != "$truncid2" ] | ||||
| } | ||||
| 
 | ||||
| @test "Test malevolent resumeable pull" { | ||||
| 	version_check docker "$GOLEM_DIND_VERSION" "1.11.0" | ||||
| 	version_check registry "$GOLEM_DISTRIBUTION_VERSION" "2.3.0" | ||||
| 
 | ||||
| 	imagename="$host/$base/resumeable" | ||||
| 	image="$imagename:latest" | ||||
| 	tempImage $image | ||||
| 	run docker_t push $image | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	# Remove image to ensure layer is pulled and digest verified | ||||
| 	docker_t rmi -f $image | ||||
| 
 | ||||
| 	run docker_t pull "$imagename@$digest" | ||||
| 	echo "$output" | ||||
| 	[ "$status" -eq 0 ] | ||||
| } | ||||
|  | @ -2,7 +2,6 @@ FROM nginx:1.9 | |||
| 
 | ||||
| COPY nginx.conf /etc/nginx/nginx.conf | ||||
| COPY registry.conf /etc/nginx/conf.d/registry.conf | ||||
| COPY docker-registry.conf /etc/nginx/docker-registry.conf | ||||
| COPY docker-registry-v2.conf /etc/nginx/docker-registry-v2.conf | ||||
| COPY registry-noauth.conf /etc/nginx/registry-noauth.conf | ||||
| COPY registry-basic.conf /etc/nginx/registry-basic.conf | ||||
|  |  | |||
|  | @ -1,7 +0,0 @@ | |||
| proxy_pass                          http://docker-registry; | ||||
| proxy_set_header  Host              $http_host;   # required for docker client's sake | ||||
| proxy_set_header  X-Real-IP         $remote_addr; # pass on real client's IP | ||||
| proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for; | ||||
| proxy_set_header  X-Forwarded-Proto $scheme; | ||||
| proxy_set_header  Authorization     ""; # see https://github.com/docker/docker-registry/issues/170 | ||||
| proxy_read_timeout                  900; | ||||
|  | @ -25,3 +25,37 @@ http { | |||
|     include /etc/nginx/conf.d/*.conf; | ||||
| } | ||||
| 
 | ||||
| # Setup TCP proxies | ||||
| stream { | ||||
|   # Malevolent proxy | ||||
|   server { | ||||
|     listen     6666; | ||||
|     proxy_pass malevolent:6666; | ||||
|   } | ||||
| 
 | ||||
|   # Registry configured for token server | ||||
|   server { | ||||
|     listen     5554; | ||||
|     listen     5555; | ||||
|     proxy_pass registryv2token:5000; | ||||
|   } | ||||
| 
 | ||||
|   # Token server | ||||
|   server { | ||||
|     listen     5556; | ||||
|     proxy_pass tokenserver:5556; | ||||
|   } | ||||
| 
 | ||||
|   # Registry configured for token server with oauth | ||||
|   server { | ||||
|     listen     5557; | ||||
|     listen     5558; | ||||
|     proxy_pass registryv2tokenoauth:5000; | ||||
|   } | ||||
| 
 | ||||
|   # Token server with oauth | ||||
|   server { | ||||
|     listen     5559; | ||||
|     proxy_pass tokenserveroauth:5559; | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -6,8 +6,3 @@ location /v2/ { | |||
|   add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always; | ||||
|   include               docker-registry-v2.conf; | ||||
| } | ||||
| location / { | ||||
|   auth_basic "registry.localhost"; | ||||
|   auth_basic_user_file test.passwd; | ||||
|   include               docker-registry.conf; | ||||
| } | ||||
|  |  | |||
|  | @ -3,6 +3,3 @@ chunked_transfer_encoding on; | |||
| location /v2/ { | ||||
|   include               docker-registry-v2.conf; | ||||
| } | ||||
| location / { | ||||
|   include               docker-registry.conf; | ||||
| } | ||||
|  |  | |||
|  | @ -1,8 +1,4 @@ | |||
| # Docker registry proxy for api versions 1 and 2 | ||||
| 
 | ||||
| upstream docker-registry { | ||||
|   server registryv1:5000; | ||||
| } | ||||
| # Docker registry proxy for api version 2 | ||||
| 
 | ||||
| upstream docker-registry-v2 { | ||||
|   server registryv2:5000; | ||||
|  | @ -28,26 +24,6 @@ server { | |||
|      | ||||
|     include               docker-registry-v2.conf; | ||||
|   } | ||||
| 
 | ||||
|   location / { | ||||
|     include               docker-registry.conf; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| # No client auth or TLS (V1 Only) | ||||
| server { | ||||
|   listen 5001; | ||||
|   server_name localhost; | ||||
| 
 | ||||
|   # disable any limits to avoid HTTP 413 for large image uploads | ||||
|   client_max_body_size 0; | ||||
| 
 | ||||
|   # required to avoid HTTP 411: see Issue #1486 (https://github.com/docker/docker/issues/1486) | ||||
|   chunked_transfer_encoding on; | ||||
| 
 | ||||
|   location / { | ||||
|     include               docker-registry.conf; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| # No client auth or TLS (V2 Only) | ||||
|  | @ -66,38 +42,6 @@ server { | |||
|   } | ||||
| } | ||||
| 
 | ||||
| # TLS localhost (V1 Only) | ||||
| server { | ||||
|   listen 5011; | ||||
|   server_name localhost; | ||||
|   ssl on; | ||||
|   ssl_certificate /etc/nginx/ssl/registry-ca+localhost-cert.pem; | ||||
|   ssl_certificate_key /etc/nginx/ssl/registry-ca+localhost-key.pem; | ||||
| 
 | ||||
|   client_max_body_size 0; | ||||
|   chunked_transfer_encoding on; | ||||
|   location / { | ||||
|     include               docker-registry.conf; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| # TLS localregistry (V1 Only) | ||||
| server { | ||||
|   listen 5011; | ||||
|   server_name localregistry; | ||||
|   ssl on; | ||||
|   ssl_certificate /etc/nginx/ssl/registry-ca+localregistry-cert.pem; | ||||
|   ssl_certificate_key /etc/nginx/ssl/registry-ca+localregistry-key.pem; | ||||
| 
 | ||||
|   client_max_body_size 0; | ||||
|   chunked_transfer_encoding on; | ||||
|   location / { | ||||
|     include               docker-registry.conf; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # TLS Configuration chart | ||||
| # Username/Password: testuser/passpassword | ||||
| #      | ca  | client | basic | notes | ||||
|  |  | |||
|  | @ -1,75 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| set -e | ||||
| set -x | ||||
| 
 | ||||
| cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" | ||||
| 
 | ||||
| source helpers.bash | ||||
| 
 | ||||
| # Root directory of Distribution | ||||
| DISTRIBUTION_ROOT=$(cd ../..; pwd -P) | ||||
| 
 | ||||
| volumeMount="" | ||||
| if [ "$DOCKER_VOLUME" != "" ]; then | ||||
| 	volumeMount="-v ${DOCKER_VOLUME}:/var/lib/docker" | ||||
| fi | ||||
| 
 | ||||
| dockerMount="" | ||||
| if [ "$DOCKER_BINARY" != "" ]; then | ||||
| 	dockerMount="-v ${DOCKER_BINARY}:/usr/local/bin/docker" | ||||
| else | ||||
| 	DOCKER_BINARY=docker | ||||
| fi | ||||
| 
 | ||||
| # Image containing the integration tests environment. | ||||
| INTEGRATION_IMAGE=${INTEGRATION_IMAGE:-distribution/docker-integration} | ||||
| 
 | ||||
| if [ "$1" == "-d" ]; then | ||||
| 	start_daemon | ||||
| 	shift | ||||
| fi | ||||
| 
 | ||||
| TESTS=${@:-.} | ||||
| 
 | ||||
| # Make sure we upgrade the integration environment. | ||||
| docker pull $INTEGRATION_IMAGE | ||||
| 
 | ||||
| # Start a Docker engine inside a docker container | ||||
| ID=$(docker run -d -it --privileged $volumeMount $dockerMount \ | ||||
| 	-v ${DISTRIBUTION_ROOT}:/go/src/github.com/docker/distribution \ | ||||
| 	-e "DOCKER_GRAPHDRIVER=$DOCKER_GRAPHDRIVER" \ | ||||
| 	${INTEGRATION_IMAGE} \ | ||||
| 	./run_engine.sh) | ||||
| 
 | ||||
| # Stop container on exit | ||||
| trap "docker rm -f -v $ID" EXIT | ||||
| 
 | ||||
| 
 | ||||
| # Wait for it to become reachable. | ||||
| tries=10 | ||||
| until docker exec "$ID" docker version &> /dev/null; do | ||||
| 	(( tries-- )) | ||||
| 	if [ $tries -le 0 ]; then | ||||
| 		echo >&2 "error: daemon failed to start" | ||||
| 		exit 1 | ||||
| 	fi | ||||
| 	sleep 1 | ||||
| done | ||||
| 
 | ||||
| # If no volume is specified, transfer images into the container from | ||||
| # the outer docker instance | ||||
| if [ "$DOCKER_VOLUME" == "" ]; then | ||||
| 	# Make sure we have images outside the container, to transfer to the container. | ||||
| 	# Not much will happen here if the images are already present. | ||||
| 	docker-compose pull | ||||
| 	docker-compose build | ||||
| 
 | ||||
| 	# Transfer images to the inner container. | ||||
| 	for image in "$INTEGRATION_IMAGE" registry:0.9.1 dockerintegration_nginx dockerintegration_registryv2; do | ||||
| 		docker save "$image" | docker exec -i "$ID" docker load | ||||
| 	done | ||||
| fi | ||||
| 
 | ||||
| # Run the tests. | ||||
| docker exec -it "$ID" sh -c "./test_runner.sh $TESTS" | ||||
| 
 | ||||
|  | @ -1,23 +0,0 @@ | |||
| #!/bin/sh | ||||
| set -e | ||||
| set -x | ||||
| 
 | ||||
| DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-overlay} | ||||
| EXEC_DRIVER=${EXEC_DRIVER:-native} | ||||
| 
 | ||||
| # Set IP address in /etc/hosts for localregistry | ||||
| IP=$(ifconfig eth0|grep "inet addr:"| cut -d: -f2 | awk '{ print $1}') | ||||
| echo "$IP localregistry" >> /etc/hosts | ||||
| 
 | ||||
| sh install_certs.sh localregistry | ||||
| 
 | ||||
| DOCKER_VERSION=$(docker --version | cut -d ' ' -f3 | cut -d ',' -f1) | ||||
| major=$(echo "$DOCKER_VERSION"| cut -d '.' -f1) | ||||
| minor=$(echo "$DOCKER_VERSION"| cut -d '.' -f2) | ||||
| 
 | ||||
| daemonOpts="daemon" | ||||
| if [ $major -le 1 ] && [ $minor -lt 9 ]; then | ||||
| 	daemonOpts="--daemon" | ||||
| fi | ||||
| 
 | ||||
| docker $daemonOpts --log-level=debug --storage-driver="$DOCKER_GRAPHDRIVER" | ||||
|  | @ -5,49 +5,52 @@ | |||
| set -e | ||||
| set -x | ||||
| 
 | ||||
| source helpers.bash | ||||
| 
 | ||||
| if [ `uname` = "Linux" ]; then | ||||
| 	tmpdir_template="$TMPDIR/docker-versions.XXXXX" | ||||
| else | ||||
| 	# /tmp isn't available for mounting in boot2docker | ||||
| 	tmpdir_template="`pwd`/../../../docker-versions.XXXXX" | ||||
| fi | ||||
| 
 | ||||
| tmpdir=`mktemp -d "$tmpdir_template"` | ||||
| trap "rm -rf $tmpdir" EXIT | ||||
| DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) | ||||
| 
 | ||||
| if [ "$1" == "-d" ]; then | ||||
| 	start_daemon | ||||
|        # Drivers to use for Docker engines the tests are going to create. | ||||
|        STORAGE_DRIVER=${STORAGE_DRIVER:-overlay} | ||||
| 
 | ||||
|        docker daemon --log-level=panic --storage-driver="$STORAGE_DRIVER" & | ||||
|        DOCKER_PID=$! | ||||
| 
 | ||||
|        # Wait for it to become reachable. | ||||
|        tries=10 | ||||
|        until docker version &> /dev/null; do | ||||
|                (( tries-- )) | ||||
|                if [ $tries -le 0 ]; then | ||||
|                        echo >&2 "error: daemon failed to start" | ||||
|                        exit 1 | ||||
|                fi | ||||
|                sleep 1 | ||||
|        done | ||||
| 
 | ||||
|        trap "kill $DOCKER_PID" EXIT | ||||
| fi | ||||
| 
 | ||||
| # Released versions | ||||
| distimage=$(docker build -q $DIR/../..) | ||||
| fullversion=$(git describe --match 'v[0-9]*' --dirty='.m' --always) | ||||
| distversion=${fullversion:1} | ||||
| 
 | ||||
| versions="1.6.1 1.7.1 1.8.3 1.9.1" | ||||
| echo "Testing image $distimage with distribution version $distversion" | ||||
| 
 | ||||
| for v in $versions; do | ||||
| 	echo "Extracting Docker $v from dind image" | ||||
| 	binpath="$tmpdir/docker-$v/docker" | ||||
| 	ID=$(docker create dockerswarm/dind:$v) | ||||
| 	docker cp "$ID:/usr/local/bin/docker" "$tmpdir/docker-$v" | ||||
| # Pull needed images before invoking golem to get pull time | ||||
| # These images are defined in golem.conf | ||||
| time docker pull nginx:1.9 | ||||
| time docker pull golang:1.6 | ||||
| time docker pull registry:0.9.1 | ||||
| time docker pull dmcgowan/token-server:simple | ||||
| time docker pull dmcgowan/token-server:oauth | ||||
| time docker pull distribution/golem-runner:0.1-bats | ||||
| 
 | ||||
| 	echo "Running tests with Docker $v" | ||||
| 	DOCKER_BINARY="$binpath" DOCKER_VOLUME="$DOCKER_VOLUME" DOCKER_GRAPHDRIVER="$DOCKER_GRAPHDRIVER" ./run.sh | ||||
| time docker pull docker:1.9.1-dind | ||||
| time docker pull docker:1.10.3-dind | ||||
| time docker pull dockerswarm/dind:1.11.0-rc2 | ||||
| 
 | ||||
| 	# Cleanup. | ||||
| 	docker rm -f "$ID" | ||||
| done | ||||
| golem \ | ||||
| 	-i "golem-distribution:latest,$distimage,$distversion" \ | ||||
| 	-i "golem-dind:latest,docker:1.9.1-dind,1.9.1" \ | ||||
| 	-i "golem-dind:latest,docker:1.10.3-dind,1.10.3" \ | ||||
| 	-i "golem-dind:latest,dockerswarm/dind:1.11.0-rc2,1.11.0" \ | ||||
| 	$DIR | ||||
| 
 | ||||
| # Latest experimental version | ||||
| 
 | ||||
| echo "Extracting Docker master from dind image" | ||||
| binpath="$tmpdir/docker-master/docker" | ||||
| docker pull dockerswarm/dind-master | ||||
| ID=$(docker create dockerswarm/dind-master) | ||||
| docker cp "$ID:/usr/local/bin/docker" "$tmpdir/docker-master" | ||||
| 
 | ||||
| echo "Running tests with Docker master" | ||||
| DOCKER_BINARY="$binpath" DOCKER_VOLUME="$DOCKER_VOLUME" ./run.sh | ||||
| 
 | ||||
| # Cleanup. | ||||
| docker rm -f "$ID" | ||||
|  |  | |||
|  | @ -1,18 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| set -e | ||||
| 
 | ||||
| cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" | ||||
| 
 | ||||
| TESTS=${@:-.} | ||||
| 
 | ||||
| function execute() { | ||||
| 	>&2 echo "++ $@" | ||||
| 	eval "$@" | ||||
| } | ||||
| 
 | ||||
| execute time docker-compose build | ||||
| 
 | ||||
| execute docker-compose up -d | ||||
| 
 | ||||
| # Run the tests. | ||||
| execute time bats -p $TESTS | ||||
|  | @ -1,44 +1,26 @@ | |||
| #!/usr/bin/env bats | ||||
| 
 | ||||
| # Registry host name, should be set to non-localhost address and match | ||||
| # DNS name in nginx/ssl certificates and what is installed in /etc/docker/cert.d | ||||
| hostname="localregistry" | ||||
| 
 | ||||
| image="hello-world:latest" | ||||
| load helpers | ||||
| 
 | ||||
| hostname="localregistry" | ||||
| base="hello-world" | ||||
| image="${base}:latest" | ||||
| 
 | ||||
| # Login information, should match values in nginx/test.passwd | ||||
| user="testuser" | ||||
| password="passpassword" | ||||
| user=${TEST_USER:-"testuser"} | ||||
| password=${TEST_PASSWORD:-"passpassword"} | ||||
| email="distribution@docker.com" | ||||
| 
 | ||||
| function setup() { | ||||
| 	docker pull $image | ||||
| } | ||||
| 
 | ||||
| # skip basic auth tests with Docker 1.6, where they don't pass due to | ||||
| # certificate issues | ||||
| function basic_auth_version_check() { | ||||
| 	run sh -c 'docker version | fgrep -q "Client version: 1.6."' | ||||
| 	if [ "$status" -eq 0 ]; then | ||||
| 		skip "Basic auth tests don't support 1.6.x" | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| # has_digest enforces the last output line is "Digest: sha256:..." | ||||
| # the input is the name of the array containing the output lines | ||||
| function has_digest() { | ||||
| 	filtered=$(echo "$1" |sed -rn '/[dD]igest\: sha(256|384|512)/ p') | ||||
| 	[ "$filtered" != "" ] | ||||
| } | ||||
| 
 | ||||
| function login() { | ||||
| 	run docker login -u $user -p $password -e $email $1 | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	# First line is WARNING about credential save | ||||
| 	[ "${lines[1]}" = "Login Succeeded" ] | ||||
| 	tempImage $image | ||||
| } | ||||
| 
 | ||||
| @test "Test valid certificates" { | ||||
| 	docker tag -f $image $hostname:5440/$image | ||||
| 	run docker push $hostname:5440/$image | ||||
| 	docker_t tag -f $image $hostname:5440/$image | ||||
| 	run docker_t push $hostname:5440/$image | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| } | ||||
|  | @ -46,57 +28,82 @@ function login() { | |||
| @test "Test basic auth" { | ||||
| 	basic_auth_version_check | ||||
| 	login $hostname:5441 | ||||
| 	docker tag -f $image $hostname:5441/$image | ||||
| 	run docker push $hostname:5441/$image | ||||
| 	docker_t tag -f $image $hostname:5441/$image | ||||
| 	run docker_t push $hostname:5441/$image | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| } | ||||
| 
 | ||||
| @test "Test basic auth with build" { | ||||
| 	basic_auth_version_check | ||||
| 	login $hostname:5441 | ||||
| 
 | ||||
| 	image1=$hostname:5441/$image-build | ||||
| 	image2=$hostname:5441/$image-build-2 | ||||
| 
 | ||||
| 	tempImage $image1 | ||||
| 
 | ||||
| 	run docker_t push $image1 | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	docker_t rmi $image1 | ||||
| 
 | ||||
| 	run build $image2 $image1 | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	run docker_t push $image2 | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| } | ||||
| 
 | ||||
| @test "Test TLS client auth" { | ||||
| 	docker tag -f $image $hostname:5442/$image | ||||
| 	run docker push $hostname:5442/$image | ||||
| 	docker_t tag -f $image $hostname:5442/$image | ||||
| 	run docker_t push $hostname:5442/$image | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| } | ||||
| 
 | ||||
| @test "Test TLS client with invalid certificate authority fails" { | ||||
| 	docker tag -f $image $hostname:5443/$image | ||||
| 	run docker push $hostname:5443/$image | ||||
| 	docker_t tag -f $image $hostname:5443/$image | ||||
| 	run docker_t push $hostname:5443/$image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test basic auth with TLS client auth" { | ||||
| 	basic_auth_version_check | ||||
| 	login $hostname:5444 | ||||
| 	docker tag -f $image $hostname:5444/$image | ||||
| 	run docker push $hostname:5444/$image | ||||
| 	docker_t tag -f $image $hostname:5444/$image | ||||
| 	run docker_t push $hostname:5444/$image | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| } | ||||
| 
 | ||||
| @test "Test unknown certificate authority fails" { | ||||
| 	docker tag -f $image $hostname:5445/$image | ||||
| 	run docker push $hostname:5445/$image | ||||
| 	docker_t tag -f $image $hostname:5445/$image | ||||
| 	run docker_t push $hostname:5445/$image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test basic auth with unknown certificate authority fails" { | ||||
| 	run login $hostname:5446 | ||||
| 	[ "$status" -ne 0 ] | ||||
| 	docker tag -f $image $hostname:5446/$image | ||||
| 	run docker push $hostname:5446/$image | ||||
| 	docker_t tag -f $image $hostname:5446/$image | ||||
| 	run docker_t push $hostname:5446/$image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test TLS client auth to server with unknown certificate authority fails" { | ||||
| 	docker tag -f $image $hostname:5447/$image | ||||
| 	run docker push $hostname:5447/$image | ||||
| 	docker_t tag -f $image $hostname:5447/$image | ||||
| 	run docker_t push $hostname:5447/$image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test failure to connect to server fails to fallback to SSLv3" { | ||||
| 	docker tag -f $image $hostname:5448/$image | ||||
| 	run docker push $hostname:5448/$image | ||||
| 	docker_t tag -f $image $hostname:5448/$image | ||||
| 	run docker_t push $hostname:5448/$image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,119 @@ | |||
| #!/usr/bin/env bats | ||||
| 
 | ||||
| # This tests contacting a registry using a token server | ||||
| 
 | ||||
| load helpers | ||||
| 
 | ||||
| user="testuser" | ||||
| password="testpassword" | ||||
| email="a@nowhere.com" | ||||
| base="hello-world" | ||||
| 
 | ||||
| @test "Test token server login" { | ||||
| 	run docker_t login -u $user -p $password -e $email localregistry:5554 | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	# First line is WARNING about credential save or email deprecation | ||||
| 	[ "${lines[2]}" = "Login Succeeded" -o "${lines[1]}" = "Login Succeeded" ] | ||||
| } | ||||
| 
 | ||||
| @test "Test token server bad login" { | ||||
| 	run docker_t login -u "testuser" -p "badpassword" -e $email localregistry:5554 | ||||
| 	[ "$status" -ne 0 ] | ||||
| 
 | ||||
| 	run docker_t login -u "baduser" -p "testpassword" -e $email localregistry:5554 | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test push and pull with token auth" { | ||||
| 	login localregistry:5555 | ||||
| 	image="localregistry:5555/testuser/token" | ||||
| 	build $image "$base:latest" | ||||
| 
 | ||||
| 	run docker_t push $image | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	docker_t rmi $image | ||||
| 
 | ||||
| 	docker_t pull $image | ||||
| } | ||||
| 
 | ||||
| @test "Test push and pull with token auth wrong namespace" { | ||||
| 	login localregistry:5555 | ||||
| 	image="localregistry:5555/notuser/token" | ||||
| 	build $image "$base:latest" | ||||
| 
 | ||||
| 	run docker_t push $image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test oauth token server login" { | ||||
| 	version_check docker "$GOLEM_DIND_VERSION" "1.11.0" | ||||
| 
 | ||||
| 	login_oauth localregistry:5557 | ||||
| } | ||||
| 
 | ||||
| @test "Test oauth token server bad login" { | ||||
| 	version_check docker "$GOLEM_DIND_VERSION" "1.11.0" | ||||
| 
 | ||||
| 	run docker_t login -u "testuser" -p "badpassword" -e $email localregistry:5557 | ||||
| 	[ "$status" -ne 0 ] | ||||
| 
 | ||||
| 	run docker_t login -u "baduser" -p "testpassword" -e $email localregistry:5557 | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
| 
 | ||||
| @test "Test oauth push and pull with token auth" { | ||||
| 	version_check docker "$GOLEM_DIND_VERSION" "1.11.0" | ||||
| 
 | ||||
| 	login_oauth localregistry:5558 | ||||
| 	image="localregistry:5558/testuser/token" | ||||
| 	build $image "$base:latest" | ||||
| 
 | ||||
| 	run docker_t push $image | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	docker_t rmi $image | ||||
| 
 | ||||
| 	docker_t pull $image | ||||
| } | ||||
| 
 | ||||
| @test "Test oauth push and build with token auth" { | ||||
| 	version_check docker "$GOLEM_DIND_VERSION" "1.11.0" | ||||
| 
 | ||||
| 	login_oauth localregistry:5558 | ||||
| 	image="localregistry:5558/testuser/token-build" | ||||
| 	tempImage $image | ||||
| 
 | ||||
| 	run docker_t push $image | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| 	docker_t rmi $image | ||||
| 
 | ||||
| 	image2="localregistry:5558/testuser/token-build-2" | ||||
| 	run build $image2 $image | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 
 | ||||
| 	run docker_t push $image2 | ||||
| 	echo $output | ||||
| 	[ "$status" -eq 0 ] | ||||
| 	has_digest "$output" | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| @test "Test oauth push and pull with token auth wrong namespace" { | ||||
| 	version_check docker "$GOLEM_DIND_VERSION" "1.11.0" | ||||
| 
 | ||||
| 	login_oauth localregistry:5558 | ||||
| 	image="localregistry:5558/notuser/token" | ||||
| 	build $image "$base:latest" | ||||
| 
 | ||||
| 	run docker_t push $image | ||||
| 	[ "$status" -ne 0 ] | ||||
| } | ||||
|  | @ -0,0 +1 @@ | |||
| testuser:$2y$05$T2MlBvkN1R/yICNnLuf1leOlOfAY0DvybctbbWUFKlojfkShVgn4m | ||||
|  | @ -0,0 +1,8 @@ | |||
| FROM dmcgowan/token-server:oauth | ||||
| 
 | ||||
| WORKDIR / | ||||
| 
 | ||||
| COPY ./.htpasswd /.htpasswd | ||||
| COPY ./certs/auth.localregistry.cert /tls.cert | ||||
| COPY ./certs/auth.localregistry.key /tls.key | ||||
| COPY ./certs/signing.key /sign.key | ||||
|  | @ -0,0 +1,19 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDHDCCAgagAwIBAgIRAKhhQMnqZx+hkOmoUYgPb+kwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw | ||||
| MDQyMzFaFw0xOTAxMTIwMDQyMzFaMDAxETAPBgNVBAoTCFF1aWNrVExTMRswGQYD | ||||
| VQQDExJhdXRoLmxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw | ||||
| ggEKAoIBAQD1tUf1EghBlIRrE83yF4zDgRu7vH2Jo0kygKJUWtQQe+DfXyjjE/fg | ||||
| FdKnnoEjsIeF9hxNbTt0ldDz7/n97pbMhoiXULi9iq4jlgSzVL2XEAgrON0YSY/c | ||||
| Lmmd1KSa/pOUZr2WMAYPZ+FdQfE1W7SMNbErPefBqYdFzpZ+esAtvbajYwIjl8Vy | ||||
| 9c4bidx4vgnNrR9GcFYibjC5sj8syh/OtbzzqiVGT8YcPpmMG6KNRkausa4gqpon | ||||
| NKYG8C3WDaiPCLYKcvFrFfdEWF/m2oj14eXACXT9iwp8r4bsLgXrZwqcpKOWfVRu | ||||
| qHC8aV476EYgxWCAOANExUdUaRt5wL/jAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIA | ||||
| oDAMBgNVHRMBAf8EAjAAMB0GA1UdEQQWMBSCEmF1dGgubG9jYWxyZWdpc3RyeTAL | ||||
| BgkqhkiG9w0BAQsDggEBABxPGK9FdGDxcLowNsExKnnZvmQT3H0u+Dux1gkp0AhH | ||||
| KOrmx3LUENUKLSgotzx133tgOgR5lzAWVFy7bhLwlPhOslxf2oEfztsAMd/tY8rW | ||||
| PrG2ZqYqlzEQQ9INbAc3woo5A3slN07uhP3F16jNqoMM4zRmw6Ba70CluGKT7x5+ | ||||
| xVjKoWITLjWDXT5m35PnsN8CpBaFzXYcod/5p9XwCFp0s+aNxfpZECCV/3yqIr+J | ||||
| ALzroPh43FAlG96o4NyYZ2Msp63newN19R2+TgpV4nXuw2mLVDpvetP7RRqnpvj/ | ||||
| qwRgt5j4hFjJWb61M0ELL7A9fA71h1ImdGCvnArdBQs= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEpAIBAAKCAQEA9bVH9RIIQZSEaxPN8heMw4Ebu7x9iaNJMoCiVFrUEHvg318o | ||||
| 4xP34BXSp56BI7CHhfYcTW07dJXQ8+/5/e6WzIaIl1C4vYquI5YEs1S9lxAIKzjd | ||||
| GEmP3C5pndSkmv6TlGa9ljAGD2fhXUHxNVu0jDWxKz3nwamHRc6WfnrALb22o2MC | ||||
| I5fFcvXOG4nceL4Jza0fRnBWIm4wubI/LMofzrW886olRk/GHD6ZjBuijUZGrrGu | ||||
| IKqaJzSmBvAt1g2ojwi2CnLxaxX3RFhf5tqI9eHlwAl0/YsKfK+G7C4F62cKnKSj | ||||
| ln1UbqhwvGleO+hGIMVggDgDRMVHVGkbecC/4wIDAQABAoIBAQCrsjXKRwOF8CZo | ||||
| PLqZBWPT6hBbK+f9miC4LbNBhwbRTf9hl7mWlImOCTHe95/+NIk/Ty+P21jEqzwM | ||||
| ehETJPoziX9BXaL6sEHnlBlMx1aEjStoKKA3LJBeqAAdzk4IEQVHmlO4824IreqJ | ||||
| pF7Njnunzo0zTlr4tWJVoXsAfv5z9tNtdkxYBbIa0fjfGtlqXU3gLq58FCON3mB/ | ||||
| NGc0AyA1UFGp0FzpdEcwTGD4InsXbcmsl2l/VPBJuZbryITRqWs6BbK++80DRhNt | ||||
| afMhP+IzKrWSCp0rBYrqqz6AevtlKdEfQK1yXPEjN/63QLMevt8mF/1JCp//TQnf | ||||
| Z6bIQbAhAoGBAP7vFA0PcvoXt9MXvvAwrKY1s6pNw4nWPG27qY1/m+DkBwP8IQms | ||||
| 4AWGv1wscZzXJYTvaLO5/qjmGUj50ohcVEvyZJioh1pKXA8Chxvd6rBA/O/Lj5E0 | ||||
| 3MOSA5Q0gxJ0Mhv0zGbbyN5fY8D8zhxoqQP4LoW+UdZG2Oi6JxsQ9c9dAoGBAPa8 | ||||
| U3bGuM5OGA9EWP7mkB/VnjDTL1aEIN3cOHbHIKwH/loxdYcNMBE7vwxV1CzgIzXT | ||||
| wsL0iE15fQdK938u0+um8aH5QtbWNI8tdk1XVjEC/i3C7N6WVUutneCKUDb4QxiB | ||||
| 9OvWCbNNiN+xTKBBM93YlwO3GYfrW9Pmm9q1+hg/AoGBALJlUS22gun50PxaIJZq | ||||
| KVcCO2DQnCYHki/j48mN4+HjD/m85M2lePrFCYIR48syTyIQer9SR5+frVAA6k/b | ||||
| 9G1VCQo+3MDVSkiCp1Nb3tBKGfYgB65ARMBinDiI6rPuNeaUTrkn0g+yxtaU0hLV | ||||
| Nnj9omia/x+oYj+xjI4HN0xNAoGARy92dSJIV104m88ATip/EnAzP6ruUWu1f8z1 | ||||
| jW9OAdQckjEK03f+kjpGmGx61qekAPejjVO3r4KJi/0ZAtyjz61OsYiUvB748wYO | ||||
| x6mW+HUAmHtQk7eTzE2+6vV8xx9BXGTCIPiTu+N2xfMFRIcLS8odZ7j/6LMCv1Qd | ||||
| SzCNg0kCgYBaNlEs4pK1VxZZpEWwVmFpgIxfEfxLIaGrek6wBTcCn/VA2M0oHuez | ||||
| mlMio8VY0yWPBJz30JflDiTmYIvteLPMHT0N0J6isiXLhzJSFI4+cAMLE2Q5v8rz | ||||
| W+W5/L8YZeierW0qJat1BrgStaf5ZLpiOc9pKBSwycydPH5BfVdK/A== | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,19 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDETCCAfugAwIBAgIQN7rT95eAy75c4n6/AsDJODALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMloXDTE5MDExMjAwNDIzMlowKzERMA8GA1UEChMIUXVpY2tUTFMxFjAUBgNV | ||||
| BAMTDWxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB | ||||
| AQDLi75QEkl/qekcoOJlNv9y1IXvrbU2ssl4ViJiZRjWx+/CkyCCOyf9YUpAgRLr | ||||
| Pskqde2mwhuNP8yBlOBb17Sapz7N3+hJi5j9vLBAFcamPeF3PqxjFv7j5TKkRmSI | ||||
| dFYQclREwMUd3qEH322KkqOnsEEfdmCgFqWORe+QR5AxzxQP3Pnd4OYH1yZCh0MQ | ||||
| P2pJgrxxf2I5I/m1AUgoHV1cdBbCv9LGohJPpMtwPC0dJpgMFcnf6hT37At236AY | ||||
| V437HiRruY7iPWkYFrSPWpwdslJ32MZvRN5RS163jZXjiZ7qWnQOiiDJfXe4evB/ | ||||
| yQLN4m0qVQxsMz7rkY7OsqaXAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIAoDAMBgNV | ||||
| HRMBAf8EAjAAMBgGA1UdEQQRMA+CDWxvY2FscmVnaXN0cnkwCwYJKoZIhvcNAQEL | ||||
| A4IBAQAyUb3EuMaOylBeV8+4KeBiE4lxykDOwLLSk3jXRsVVtfJpX3v8l5vwo/Jf | ||||
| iG8tzzz+7uiskI96u3TsekUtVkUxujfKevMP+369K/59s7NRmwwlFMyB2fvL14B2 | ||||
| oweVjWvM/8fZl6irtFdbJFXXRm7paKso5cmfImxhojAwohgcd4XTVLE/7juYa582 | ||||
| AaBdRuIiyL71MU9qa1mC5+57AaSLPYaPKpahemgYYkV1Z403Kd6rXchxdQ8JIAL8 | ||||
| +0oYTSC+svnz1tUU/V5E5id9LQaTmDN5iIVFhNpqAaZmR45UI86woWvnkMb8Ants | ||||
| 4aknwTwY3300PuTqBdQufvOFDRN5 | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEpAIBAAKCAQEAy4u+UBJJf6npHKDiZTb/ctSF7621NrLJeFYiYmUY1sfvwpMg | ||||
| gjsn/WFKQIES6z7JKnXtpsIbjT/MgZTgW9e0mqc+zd/oSYuY/bywQBXGpj3hdz6s | ||||
| Yxb+4+UypEZkiHRWEHJURMDFHd6hB99tipKjp7BBH3ZgoBaljkXvkEeQMc8UD9z5 | ||||
| 3eDmB9cmQodDED9qSYK8cX9iOSP5tQFIKB1dXHQWwr/SxqIST6TLcDwtHSaYDBXJ | ||||
| 3+oU9+wLdt+gGFeN+x4ka7mO4j1pGBa0j1qcHbJSd9jGb0TeUUtet42V44me6lp0 | ||||
| DoogyX13uHrwf8kCzeJtKlUMbDM+65GOzrKmlwIDAQABAoIBAF6vFMp+lz4RteSh | ||||
| Wm8m1FGAVwWVUpStOlcGClynFpTi0L88XYT3K7UMStQSttBDlqRv0ysdZF+ia+lj | ||||
| bbKLdvHyFp8CJzX/AB4YZgyJlKzEYFtuBhbaHZu5hIMyU5W+OELSTCznV0p7w4C8 | ||||
| CGLLr+FTdhfCo1QU9NJn6fa9s2/XRdSClBBalAHYs0ZS7ZckaF/sPiC/VapfBMet | ||||
| qjJXNYiO6pXYriGWKF9zdAMfk2CM0BVWbnwQZkMSEQirrTcJwm3ezyloXCv2nywK | ||||
| /VzbUT1HJVyzo5oAwTd0MwDc2oEMiFzlfO028zY4LDltpia+SyWvFi5NaIqzFESc | ||||
| yLgJacECgYEA3jvH+ZQHQf42Md8TCciokaYvwWIKJdk4WRjbvE5cBZekyXAm7/3b | ||||
| /1VFDKsy2RPlfmfHP3wy9rlnjzsRveB5qaclgS8aI67AYsWd/yRgfRatl7Ve9bHl | ||||
| LY6VM5L/DZTxykcqivwjc77XoDuBfUKs6tyuSLQku+FOTbLtNYlUCHECgYEA6nkR | ||||
| lkXufyLmDhNb3093RsYvPcs1kGaIIGTnz3cxWNh485DgsyLBuYQ5ugupQkzM8YSt | ||||
| ohDTmVpggqjlXQxCg0Zw8gkEV0v8KsLGjn1CuTJg/mBArXlelq1FEeRAYC9/YfOz | ||||
| ocXegHV7wDKKtcraNZFsEc7Z0LwbC9wtzSFG44cCgYASkMX1CLPOhJE8e1lY0OWc | ||||
| PVjx++HDJbF6aAQ7aARyBygiF/d4xylw3EvHcinuTqY2eC8CE7siN3z6T0H9Ldqc | ||||
| HLWaZDf30SqLVd0MKprQ+GsKKIHFXtY5hxbZ1ybtmIrWjjl0oPnJOqFC5pW7xC0z | ||||
| 9bmtozcKZxkmjpMYjN9zUQKBgQCqV6KLRerqunPgLfhE1/qTlE+l2QflDFhBEI3I | ||||
| j5NuNHZKnSphehK7sHAv1WD2Jc2OeRGb+BWCB8Ktqf5YBxwbOwW7EQnyUeW1OyP9 | ||||
| SMs8uHj21P6oCNDLLr5LLUQHnPoyM1aBZLstICzziMR1JhY5bJjSpzBfEQmlKCSu | ||||
| LkrN6QKBgQCRXrBJRUxeJj7wCnCSq0Clf9NhCpQnwo4bEx8sKlj8K8ku8MvwQwoM | ||||
| 3KfWc7bOl6A2/mM/k4yoHtBMM9X9xqYtsgeFhxuiWBcfTmTxWh73LQ48Kgbrgodt | ||||
| 6yTccnjr7OtBidD85c6lgjAUgcL43QY8mlw0OhzXAZ2R5HWFp4ht+w== | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIRAJ6IIisIZxL86oe3oeoAgWUwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw | ||||
| MDQyMzNaFw0xOTAxMTIwMDQyMzNaMBMxETAPBgNVBAoTCFF1aWNrVExTMIIBIjAN | ||||
| BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVnt | ||||
| QCQQWjkWVpOz8L2A29BRvv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40r | ||||
| Xd/MNKAn0kFsSb6BIKmUwPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH3 | ||||
| 9mAmV+x0kTzFR/78ZDD5CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+K | ||||
| IY8FQ6yN6l27MK56wlj4hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTA | ||||
| NwpsIBfdoUVbI+j2ivn+ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQAB | ||||
| ozUwMzAOBgNVHQ8BAf8EBAMCAKAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDAYDVR0T | ||||
| AQH/BAIwADALBgkqhkiG9w0BAQsDggEBAJq3JzTLrIWCF8rHLTTm1icE9PjOO0sV | ||||
| a1wrmdJ6NwRbJ66dLZ/4G/NZjVOnce9WFHYLFSEG+wx5YVUPuJXpJaSdy0h8F0Uw | ||||
| hiJwgeVsGg7vcf4G6mWHrsauDOhylnD31UtYPX1Ao/jcntyyf+gCQpY1J/B8l1yU | ||||
| LNOwvWLVLpZwZ4ehbKA/UnDXgA+3uHvpzl//cPe0cnt+Mhrgzk5mIMwVR6zCZw1G | ||||
| oVutAHpv2PXxRwTMu51J+QtSL2b2w3mGHxDLpmz8UdXOtkxdpmDT8kIOtX0T5yGL | ||||
| 29F3fa81iZPs02GWjSGOfOzmCCvaA4C5KJvY/WulF7OOgwvrBpQwqTI= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEowIBAAKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVntQCQQWjkWVpOz8L2A29BR | ||||
| vv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40rXd/MNKAn0kFsSb6BIKmU | ||||
| wPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH39mAmV+x0kTzFR/78ZDD5 | ||||
| CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+KIY8FQ6yN6l27MK56wlj4 | ||||
| hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTANwpsIBfdoUVbI+j2ivn+ | ||||
| ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQABAoIBAD2tiNZv6DImSXo+ | ||||
| sq0qQomEf/OBvWPFMnWppd/NK/TXa+UPHO4I0MjoDJqIEC6zCU+fC4d2St1MmlrT | ||||
| /X85vPFRw8mGwGxfHeRSLxEVj04I5GDYTWy0JQUrJUk/cTKp2/Bwm/RaylTyFAM0 | ||||
| caYrSpvD69vjuTDFr7PDxM6iaqM53zK/vD8kCe81z+wN0UbAKsLlUOKztjH6SzL9 | ||||
| uVOkekIT/j3L2xxyQhjmhfA3TuCP4uNK/+6/4ovl9Nj4pQsFomsCk4phgqy9SOm1 | ||||
| 4yufmVd8k7J3cppMlMPNc+7tqe2Xn593Y8QT95y3yhtkFECF70yBw64HMDDpA22p | ||||
| 5b/JV9ECgYEA9H4RBXOwbdjcpCa9H3mFjHqUQCqNme1vOSGiflZh9KBCDKgdqugm | ||||
| KHpvAECADie0p6XRHpxRvufKnGFkJwedfeiKz51T+0dqgPxWncYT1TC+cAjOSzfM | ||||
| wBpUOcAyvTTviwGbg4bLanHo4remzCbcnRvHQX4YfPFCjT9GhsU+XEUCgYEA5ubz | ||||
| IlSu1wwFJpoO24ZykGUyqGUQXzR0NrXiLrpF0764qjmHyF8SPJPv1XegSxP/nUTz | ||||
| SjVfJ7wye/X9qlOpBY8mzy9qQMMKc1cQBV1yVW8IRZ7pMYQZO7qmrZD/DWTa5qWt | ||||
| pqSbIH2FKedELsKJA/SBtczKjspOdDKyh0UelsMCgYA7DyTfc0XAEy2hPXZb3wgC | ||||
| mi2rnlvcPf2rCFPvPsCkzf2GfynDehaVmpWrsuj8Al1iTezI/yvD+Mv5oJEH2JAT | ||||
| tROq+S8rOOIiTFJEBHAQBJlMCOSESPNdyD5mQOZAzEO9CWNejzYd/WwrL//Luut5 | ||||
| zBcC3AngTIsuAYXw0j6xHQKBgQDamkAJep7k3W5q82OplgoUhpqFLtlnKSP1QBFZ | ||||
| J+U/6Mqv7jONEeUUEQL42H6bVd2kqUikMw9ZcSVikquLfBUDPFoDwOIZWg4k0IJM | ||||
| cgHyvGHad+5SgLva/oUawbGWnqtXvfc/U4vCINPXrimxE1/grLW4xp/mu8W24OCA | ||||
| jIG/PQKBgD/Apl+sfqiB/6ONBjjIswA4yFkEXHSZNpAgcPwhA+cO5D0afEWz2HIx | ||||
| VeOh5NjN1EL0hX8clFW4bfkK1Vr0kjvbMUXnBWaibUgpiVQl9O9WjaKQLZrp4sRu | ||||
| x2kJ07Qn6ri7f/lsqOELZwBy95iHWRdePptaAKkRGxJstHI7dgUt | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| version: 0.1 | ||||
| loglevel: debug | ||||
| storage: | ||||
|     cache: | ||||
|         blobdescriptor: inmemory | ||||
|     filesystem: | ||||
|         rootdirectory: /tmp/registry-dev | ||||
| http: | ||||
|     addr: 0.0.0.0:5000 | ||||
|     tls: | ||||
|         certificate: "/etc/docker/registry/localregistry.cert" | ||||
|         key: "/etc/docker/registry/localregistry.key" | ||||
| auth: | ||||
|     token: | ||||
|         realm: "https://auth.localregistry:5559/token/" | ||||
|         issuer: "registry-test" | ||||
|         service: "registry-test" | ||||
|         rootcertbundle: "/etc/docker/registry/tokenbundle.pem" | ||||
|  | @ -0,0 +1 @@ | |||
| testuser:$2y$05$T2MlBvkN1R/yICNnLuf1leOlOfAY0DvybctbbWUFKlojfkShVgn4m | ||||
|  | @ -0,0 +1,8 @@ | |||
| FROM dmcgowan/token-server:simple | ||||
| 
 | ||||
| WORKDIR / | ||||
| 
 | ||||
| COPY ./.htpasswd /.htpasswd | ||||
| COPY ./certs/auth.localregistry.cert /tls.cert | ||||
| COPY ./certs/auth.localregistry.key /tls.key | ||||
| COPY ./certs/signing.key /sign.key | ||||
|  | @ -0,0 +1,19 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDHDCCAgagAwIBAgIRAKhhQMnqZx+hkOmoUYgPb+kwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw | ||||
| MDQyMzFaFw0xOTAxMTIwMDQyMzFaMDAxETAPBgNVBAoTCFF1aWNrVExTMRswGQYD | ||||
| VQQDExJhdXRoLmxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw | ||||
| ggEKAoIBAQD1tUf1EghBlIRrE83yF4zDgRu7vH2Jo0kygKJUWtQQe+DfXyjjE/fg | ||||
| FdKnnoEjsIeF9hxNbTt0ldDz7/n97pbMhoiXULi9iq4jlgSzVL2XEAgrON0YSY/c | ||||
| Lmmd1KSa/pOUZr2WMAYPZ+FdQfE1W7SMNbErPefBqYdFzpZ+esAtvbajYwIjl8Vy | ||||
| 9c4bidx4vgnNrR9GcFYibjC5sj8syh/OtbzzqiVGT8YcPpmMG6KNRkausa4gqpon | ||||
| NKYG8C3WDaiPCLYKcvFrFfdEWF/m2oj14eXACXT9iwp8r4bsLgXrZwqcpKOWfVRu | ||||
| qHC8aV476EYgxWCAOANExUdUaRt5wL/jAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIA | ||||
| oDAMBgNVHRMBAf8EAjAAMB0GA1UdEQQWMBSCEmF1dGgubG9jYWxyZWdpc3RyeTAL | ||||
| BgkqhkiG9w0BAQsDggEBABxPGK9FdGDxcLowNsExKnnZvmQT3H0u+Dux1gkp0AhH | ||||
| KOrmx3LUENUKLSgotzx133tgOgR5lzAWVFy7bhLwlPhOslxf2oEfztsAMd/tY8rW | ||||
| PrG2ZqYqlzEQQ9INbAc3woo5A3slN07uhP3F16jNqoMM4zRmw6Ba70CluGKT7x5+ | ||||
| xVjKoWITLjWDXT5m35PnsN8CpBaFzXYcod/5p9XwCFp0s+aNxfpZECCV/3yqIr+J | ||||
| ALzroPh43FAlG96o4NyYZ2Msp63newN19R2+TgpV4nXuw2mLVDpvetP7RRqnpvj/ | ||||
| qwRgt5j4hFjJWb61M0ELL7A9fA71h1ImdGCvnArdBQs= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEpAIBAAKCAQEA9bVH9RIIQZSEaxPN8heMw4Ebu7x9iaNJMoCiVFrUEHvg318o | ||||
| 4xP34BXSp56BI7CHhfYcTW07dJXQ8+/5/e6WzIaIl1C4vYquI5YEs1S9lxAIKzjd | ||||
| GEmP3C5pndSkmv6TlGa9ljAGD2fhXUHxNVu0jDWxKz3nwamHRc6WfnrALb22o2MC | ||||
| I5fFcvXOG4nceL4Jza0fRnBWIm4wubI/LMofzrW886olRk/GHD6ZjBuijUZGrrGu | ||||
| IKqaJzSmBvAt1g2ojwi2CnLxaxX3RFhf5tqI9eHlwAl0/YsKfK+G7C4F62cKnKSj | ||||
| ln1UbqhwvGleO+hGIMVggDgDRMVHVGkbecC/4wIDAQABAoIBAQCrsjXKRwOF8CZo | ||||
| PLqZBWPT6hBbK+f9miC4LbNBhwbRTf9hl7mWlImOCTHe95/+NIk/Ty+P21jEqzwM | ||||
| ehETJPoziX9BXaL6sEHnlBlMx1aEjStoKKA3LJBeqAAdzk4IEQVHmlO4824IreqJ | ||||
| pF7Njnunzo0zTlr4tWJVoXsAfv5z9tNtdkxYBbIa0fjfGtlqXU3gLq58FCON3mB/ | ||||
| NGc0AyA1UFGp0FzpdEcwTGD4InsXbcmsl2l/VPBJuZbryITRqWs6BbK++80DRhNt | ||||
| afMhP+IzKrWSCp0rBYrqqz6AevtlKdEfQK1yXPEjN/63QLMevt8mF/1JCp//TQnf | ||||
| Z6bIQbAhAoGBAP7vFA0PcvoXt9MXvvAwrKY1s6pNw4nWPG27qY1/m+DkBwP8IQms | ||||
| 4AWGv1wscZzXJYTvaLO5/qjmGUj50ohcVEvyZJioh1pKXA8Chxvd6rBA/O/Lj5E0 | ||||
| 3MOSA5Q0gxJ0Mhv0zGbbyN5fY8D8zhxoqQP4LoW+UdZG2Oi6JxsQ9c9dAoGBAPa8 | ||||
| U3bGuM5OGA9EWP7mkB/VnjDTL1aEIN3cOHbHIKwH/loxdYcNMBE7vwxV1CzgIzXT | ||||
| wsL0iE15fQdK938u0+um8aH5QtbWNI8tdk1XVjEC/i3C7N6WVUutneCKUDb4QxiB | ||||
| 9OvWCbNNiN+xTKBBM93YlwO3GYfrW9Pmm9q1+hg/AoGBALJlUS22gun50PxaIJZq | ||||
| KVcCO2DQnCYHki/j48mN4+HjD/m85M2lePrFCYIR48syTyIQer9SR5+frVAA6k/b | ||||
| 9G1VCQo+3MDVSkiCp1Nb3tBKGfYgB65ARMBinDiI6rPuNeaUTrkn0g+yxtaU0hLV | ||||
| Nnj9omia/x+oYj+xjI4HN0xNAoGARy92dSJIV104m88ATip/EnAzP6ruUWu1f8z1 | ||||
| jW9OAdQckjEK03f+kjpGmGx61qekAPejjVO3r4KJi/0ZAtyjz61OsYiUvB748wYO | ||||
| x6mW+HUAmHtQk7eTzE2+6vV8xx9BXGTCIPiTu+N2xfMFRIcLS8odZ7j/6LMCv1Qd | ||||
| SzCNg0kCgYBaNlEs4pK1VxZZpEWwVmFpgIxfEfxLIaGrek6wBTcCn/VA2M0oHuez | ||||
| mlMio8VY0yWPBJz30JflDiTmYIvteLPMHT0N0J6isiXLhzJSFI4+cAMLE2Q5v8rz | ||||
| W+W5/L8YZeierW0qJat1BrgStaf5ZLpiOc9pKBSwycydPH5BfVdK/A== | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIQNS9SaFSFBN7Zvwjalrf2DDALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMFoXDTE5MDExMjAwNDIzMFowJjERMA8GA1UEChMIUXVpY2tUTFMxETAPBgNV | ||||
| BAMTCFF1aWNrVExTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu/Pf | ||||
| fQ7VUTSXs12PRyrLDVDz7kPDbGNTt0vF7FYDmTTGOU3i62xZNOGuxBezAiVSV5A3 | ||||
| lopwsv4OH7DRtSaPn+XCt1JDALna2WrjT0MshypMd5o2c3jmGUfAKf5gjizgIoEl | ||||
| d4e5aqEBuOQP+QCEde+8p8N1buQW+zMy9srM2O/7BFMIaQ07CWLlj3hIiF+L5rKD | ||||
| L6dWtKT7INRmRwpuZZnThEWnBSNgayrWek6G0i3y8QYTfVA1SwA+H3grJxy5NrLp | ||||
| GYXSmu2509mu0QAHhx05t1rJhwhFz/4sG7j8AggYeDXEqfQ/VIb/bvnW9bD+vrQ2 | ||||
| ZnICvxnzNMYBx23BkQIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAKQwDwYDVR0TAQH/ | ||||
| BAUwAwEB/zALBgkqhkiG9w0BAQsDggEBALvTi6E44Fltu83dFLVEj0kLtusI/TTH | ||||
| Tw6upoB5pRG+7A75w0Ii8bvvd2tNpBOg+L+80xyIFqaNkXhLKTN4lgtd7WiCuyb/ | ||||
| w1BEuF/+RjCXhu6wQ/63ab46d6ctaQ1zjxlU2rQLQXQFALI8ntyn/TELc01HYkr2 | ||||
| x3NHlbnBNlgI2CKXPeUBzvBylTCcdYGwoa+2ZPdIsFjle2aCIBoZ+WNZlIbFwgLh | ||||
| XCHwcbviC+thjqOneJpJZmRW9AxQ638ki6iGItdrJewCN/1dcL2KKjxnC5VHbpne | ||||
| SOjEPNXihY08Brl8myhFNtRRKZ55MJIYzDtVQSkCaT91Q3XX9tSZadY= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,19 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIDETCCAfugAwIBAgIQN7rT95eAy75c4n6/AsDJODALBgkqhkiG9w0BAQswJjER | ||||
| MA8GA1UEChMIUXVpY2tUTFMxETAPBgNVBAMTCFF1aWNrVExTMB4XDTE2MDEyODAw | ||||
| NDIzMloXDTE5MDExMjAwNDIzMlowKzERMA8GA1UEChMIUXVpY2tUTFMxFjAUBgNV | ||||
| BAMTDWxvY2FscmVnaXN0cnkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB | ||||
| AQDLi75QEkl/qekcoOJlNv9y1IXvrbU2ssl4ViJiZRjWx+/CkyCCOyf9YUpAgRLr | ||||
| Pskqde2mwhuNP8yBlOBb17Sapz7N3+hJi5j9vLBAFcamPeF3PqxjFv7j5TKkRmSI | ||||
| dFYQclREwMUd3qEH322KkqOnsEEfdmCgFqWORe+QR5AxzxQP3Pnd4OYH1yZCh0MQ | ||||
| P2pJgrxxf2I5I/m1AUgoHV1cdBbCv9LGohJPpMtwPC0dJpgMFcnf6hT37At236AY | ||||
| V437HiRruY7iPWkYFrSPWpwdslJ32MZvRN5RS163jZXjiZ7qWnQOiiDJfXe4evB/ | ||||
| yQLN4m0qVQxsMz7rkY7OsqaXAgMBAAGjOjA4MA4GA1UdDwEB/wQEAwIAoDAMBgNV | ||||
| HRMBAf8EAjAAMBgGA1UdEQQRMA+CDWxvY2FscmVnaXN0cnkwCwYJKoZIhvcNAQEL | ||||
| A4IBAQAyUb3EuMaOylBeV8+4KeBiE4lxykDOwLLSk3jXRsVVtfJpX3v8l5vwo/Jf | ||||
| iG8tzzz+7uiskI96u3TsekUtVkUxujfKevMP+369K/59s7NRmwwlFMyB2fvL14B2 | ||||
| oweVjWvM/8fZl6irtFdbJFXXRm7paKso5cmfImxhojAwohgcd4XTVLE/7juYa582 | ||||
| AaBdRuIiyL71MU9qa1mC5+57AaSLPYaPKpahemgYYkV1Z403Kd6rXchxdQ8JIAL8 | ||||
| +0oYTSC+svnz1tUU/V5E5id9LQaTmDN5iIVFhNpqAaZmR45UI86woWvnkMb8Ants | ||||
| 4aknwTwY3300PuTqBdQufvOFDRN5 | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEpAIBAAKCAQEAy4u+UBJJf6npHKDiZTb/ctSF7621NrLJeFYiYmUY1sfvwpMg | ||||
| gjsn/WFKQIES6z7JKnXtpsIbjT/MgZTgW9e0mqc+zd/oSYuY/bywQBXGpj3hdz6s | ||||
| Yxb+4+UypEZkiHRWEHJURMDFHd6hB99tipKjp7BBH3ZgoBaljkXvkEeQMc8UD9z5 | ||||
| 3eDmB9cmQodDED9qSYK8cX9iOSP5tQFIKB1dXHQWwr/SxqIST6TLcDwtHSaYDBXJ | ||||
| 3+oU9+wLdt+gGFeN+x4ka7mO4j1pGBa0j1qcHbJSd9jGb0TeUUtet42V44me6lp0 | ||||
| DoogyX13uHrwf8kCzeJtKlUMbDM+65GOzrKmlwIDAQABAoIBAF6vFMp+lz4RteSh | ||||
| Wm8m1FGAVwWVUpStOlcGClynFpTi0L88XYT3K7UMStQSttBDlqRv0ysdZF+ia+lj | ||||
| bbKLdvHyFp8CJzX/AB4YZgyJlKzEYFtuBhbaHZu5hIMyU5W+OELSTCznV0p7w4C8 | ||||
| CGLLr+FTdhfCo1QU9NJn6fa9s2/XRdSClBBalAHYs0ZS7ZckaF/sPiC/VapfBMet | ||||
| qjJXNYiO6pXYriGWKF9zdAMfk2CM0BVWbnwQZkMSEQirrTcJwm3ezyloXCv2nywK | ||||
| /VzbUT1HJVyzo5oAwTd0MwDc2oEMiFzlfO028zY4LDltpia+SyWvFi5NaIqzFESc | ||||
| yLgJacECgYEA3jvH+ZQHQf42Md8TCciokaYvwWIKJdk4WRjbvE5cBZekyXAm7/3b | ||||
| /1VFDKsy2RPlfmfHP3wy9rlnjzsRveB5qaclgS8aI67AYsWd/yRgfRatl7Ve9bHl | ||||
| LY6VM5L/DZTxykcqivwjc77XoDuBfUKs6tyuSLQku+FOTbLtNYlUCHECgYEA6nkR | ||||
| lkXufyLmDhNb3093RsYvPcs1kGaIIGTnz3cxWNh485DgsyLBuYQ5ugupQkzM8YSt | ||||
| ohDTmVpggqjlXQxCg0Zw8gkEV0v8KsLGjn1CuTJg/mBArXlelq1FEeRAYC9/YfOz | ||||
| ocXegHV7wDKKtcraNZFsEc7Z0LwbC9wtzSFG44cCgYASkMX1CLPOhJE8e1lY0OWc | ||||
| PVjx++HDJbF6aAQ7aARyBygiF/d4xylw3EvHcinuTqY2eC8CE7siN3z6T0H9Ldqc | ||||
| HLWaZDf30SqLVd0MKprQ+GsKKIHFXtY5hxbZ1ybtmIrWjjl0oPnJOqFC5pW7xC0z | ||||
| 9bmtozcKZxkmjpMYjN9zUQKBgQCqV6KLRerqunPgLfhE1/qTlE+l2QflDFhBEI3I | ||||
| j5NuNHZKnSphehK7sHAv1WD2Jc2OeRGb+BWCB8Ktqf5YBxwbOwW7EQnyUeW1OyP9 | ||||
| SMs8uHj21P6oCNDLLr5LLUQHnPoyM1aBZLstICzziMR1JhY5bJjSpzBfEQmlKCSu | ||||
| LkrN6QKBgQCRXrBJRUxeJj7wCnCSq0Clf9NhCpQnwo4bEx8sKlj8K8ku8MvwQwoM | ||||
| 3KfWc7bOl6A2/mM/k4yoHtBMM9X9xqYtsgeFhxuiWBcfTmTxWh73LQ48Kgbrgodt | ||||
| 6yTccnjr7OtBidD85c6lgjAUgcL43QY8mlw0OhzXAZ2R5HWFp4ht+w== | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIIC9TCCAd+gAwIBAgIRAJ6IIisIZxL86oe3oeoAgWUwCwYJKoZIhvcNAQELMCYx | ||||
| ETAPBgNVBAoTCFF1aWNrVExTMREwDwYDVQQDEwhRdWlja1RMUzAeFw0xNjAxMjgw | ||||
| MDQyMzNaFw0xOTAxMTIwMDQyMzNaMBMxETAPBgNVBAoTCFF1aWNrVExTMIIBIjAN | ||||
| BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVnt | ||||
| QCQQWjkWVpOz8L2A29BRvv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40r | ||||
| Xd/MNKAn0kFsSb6BIKmUwPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH3 | ||||
| 9mAmV+x0kTzFR/78ZDD5CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+K | ||||
| IY8FQ6yN6l27MK56wlj4hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTA | ||||
| NwpsIBfdoUVbI+j2ivn+ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQAB | ||||
| ozUwMzAOBgNVHQ8BAf8EBAMCAKAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwDAYDVR0T | ||||
| AQH/BAIwADALBgkqhkiG9w0BAQsDggEBAJq3JzTLrIWCF8rHLTTm1icE9PjOO0sV | ||||
| a1wrmdJ6NwRbJ66dLZ/4G/NZjVOnce9WFHYLFSEG+wx5YVUPuJXpJaSdy0h8F0Uw | ||||
| hiJwgeVsGg7vcf4G6mWHrsauDOhylnD31UtYPX1Ao/jcntyyf+gCQpY1J/B8l1yU | ||||
| LNOwvWLVLpZwZ4ehbKA/UnDXgA+3uHvpzl//cPe0cnt+Mhrgzk5mIMwVR6zCZw1G | ||||
| oVutAHpv2PXxRwTMu51J+QtSL2b2w3mGHxDLpmz8UdXOtkxdpmDT8kIOtX0T5yGL | ||||
| 29F3fa81iZPs02GWjSGOfOzmCCvaA4C5KJvY/WulF7OOgwvrBpQwqTI= | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -0,0 +1,27 @@ | |||
| -----BEGIN RSA PRIVATE KEY----- | ||||
| MIIEowIBAAKCAQEA3IXUwqSdO2QTj2ET6fJPGe+KWVntQCQQWjkWVpOz8L2A29BR | ||||
| vv9z6lYNf9sOM0Xb5IUAgoZ/s3U6LNYT/RWYFBfeo40rXd/MNKAn0kFsSb6BIKmU | ||||
| wPqFeqc8wiPX6yY4SbF1sUTkCTkw3yFHg/AIlwmhpFH39mAmV+x0kTzFR/78ZDD5 | ||||
| CUNS59bbu+7UqB06YrJuVEwPY98YixSPXTcaKimsUe+KIY8FQ6yN6l27MK56wlj4 | ||||
| hw2gYz+cyBUBCExCgYMQlOSg2ilH4qYyFvccSDUH7jTANwpsIBfdoUVbI+j2ivn+ | ||||
| ZGD614LtIStGgUu0mDDVxVOWnRvq/z7LMaa2jwIDAQABAoIBAD2tiNZv6DImSXo+ | ||||
| sq0qQomEf/OBvWPFMnWppd/NK/TXa+UPHO4I0MjoDJqIEC6zCU+fC4d2St1MmlrT | ||||
| /X85vPFRw8mGwGxfHeRSLxEVj04I5GDYTWy0JQUrJUk/cTKp2/Bwm/RaylTyFAM0 | ||||
| caYrSpvD69vjuTDFr7PDxM6iaqM53zK/vD8kCe81z+wN0UbAKsLlUOKztjH6SzL9 | ||||
| uVOkekIT/j3L2xxyQhjmhfA3TuCP4uNK/+6/4ovl9Nj4pQsFomsCk4phgqy9SOm1 | ||||
| 4yufmVd8k7J3cppMlMPNc+7tqe2Xn593Y8QT95y3yhtkFECF70yBw64HMDDpA22p | ||||
| 5b/JV9ECgYEA9H4RBXOwbdjcpCa9H3mFjHqUQCqNme1vOSGiflZh9KBCDKgdqugm | ||||
| KHpvAECADie0p6XRHpxRvufKnGFkJwedfeiKz51T+0dqgPxWncYT1TC+cAjOSzfM | ||||
| wBpUOcAyvTTviwGbg4bLanHo4remzCbcnRvHQX4YfPFCjT9GhsU+XEUCgYEA5ubz | ||||
| IlSu1wwFJpoO24ZykGUyqGUQXzR0NrXiLrpF0764qjmHyF8SPJPv1XegSxP/nUTz | ||||
| SjVfJ7wye/X9qlOpBY8mzy9qQMMKc1cQBV1yVW8IRZ7pMYQZO7qmrZD/DWTa5qWt | ||||
| pqSbIH2FKedELsKJA/SBtczKjspOdDKyh0UelsMCgYA7DyTfc0XAEy2hPXZb3wgC | ||||
| mi2rnlvcPf2rCFPvPsCkzf2GfynDehaVmpWrsuj8Al1iTezI/yvD+Mv5oJEH2JAT | ||||
| tROq+S8rOOIiTFJEBHAQBJlMCOSESPNdyD5mQOZAzEO9CWNejzYd/WwrL//Luut5 | ||||
| zBcC3AngTIsuAYXw0j6xHQKBgQDamkAJep7k3W5q82OplgoUhpqFLtlnKSP1QBFZ | ||||
| J+U/6Mqv7jONEeUUEQL42H6bVd2kqUikMw9ZcSVikquLfBUDPFoDwOIZWg4k0IJM | ||||
| cgHyvGHad+5SgLva/oUawbGWnqtXvfc/U4vCINPXrimxE1/grLW4xp/mu8W24OCA | ||||
| jIG/PQKBgD/Apl+sfqiB/6ONBjjIswA4yFkEXHSZNpAgcPwhA+cO5D0afEWz2HIx | ||||
| VeOh5NjN1EL0hX8clFW4bfkK1Vr0kjvbMUXnBWaibUgpiVQl9O9WjaKQLZrp4sRu | ||||
| x2kJ07Qn6ri7f/lsqOELZwBy95iHWRdePptaAKkRGxJstHI7dgUt | ||||
| -----END RSA PRIVATE KEY----- | ||||
|  | @ -0,0 +1,18 @@ | |||
| version: 0.1 | ||||
| loglevel: debug | ||||
| storage: | ||||
|     cache: | ||||
|         blobdescriptor: inmemory | ||||
|     filesystem: | ||||
|         rootdirectory: /tmp/registry-dev | ||||
| http: | ||||
|     addr: 0.0.0.0:5000 | ||||
|     tls: | ||||
|         certificate: "/etc/docker/registry/localregistry.cert" | ||||
|         key: "/etc/docker/registry/localregistry.key" | ||||
| auth: | ||||
|     token: | ||||
|         realm: "https://auth.localregistry:5556/token/" | ||||
|         issuer: "registry-test" | ||||
|         service: "registry-test" | ||||
|         rootcertbundle: "/etc/docker/registry/tokenbundle.pem" | ||||
		Loading…
	
		Reference in New Issue