diff --git a/hack/test-cmd.sh b/hack/test-cmd.sh index 00d82366b629..781fc4aee364 100755 --- a/hack/test-cmd.sh +++ b/hack/test-cmd.sh @@ -301,12 +301,6 @@ os::cmd::expect_success_and_text 'oc config view' "current-context.+/${API_HOST} os::cmd::expect_success 'oc logout' os::cmd::expect_failure_and_text 'oc get pods' '"system:anonymous" cannot list pods' -# log in as an image-pruner and test that oadm prune images works against the atomic binary -os::cmd::expect_success "oadm policy add-cluster-role-to-user system:image-pruner pruner --config='${MASTER_CONFIG_DIR}/admin.kubeconfig'" -os::cmd::expect_success "oc login --server=${KUBERNETES_MASTER} --certificate-authority='${MASTER_CONFIG_DIR}/ca.crt' -u pruner -p anything" -# this shouldn't fail but instead output "Dry run enabled - no modifications will be made. Add --confirm to remove images" -os::cmd::expect_success 'oadm prune images' - # make sure we handle invalid config file destination os::cmd::expect_failure_and_text "oc login '${KUBERNETES_MASTER}' -u test -p test --config=/src --insecure-skip-tls-verify" 'KUBECONFIG is set to a file that cannot be created or modified' echo "login warnings: ok" diff --git a/test/cmd/admin.sh b/test/cmd/admin.sh index dc3d3d3598d0..746059adc5f0 100755 --- a/test/cmd/admin.sh +++ b/test/cmd/admin.sh @@ -481,4 +481,20 @@ os::cmd::expect_success_and_text 'oc describe identity test-idp:test-uid' 'test- os::cmd::expect_success_and_text 'oc describe user test-cmd-user' 'test-idp:test-uid' os::test::junit::declare_suite_end +# images +os::test::junit::declare_suite_start "cmd/admin/images" + +# import image and check its information +os::cmd::expect_success "oc create -f ${OS_ROOT}/test/testdata/stable-busybox.yaml" +os::cmd::expect_success_and_text "oadm top images" "sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6\W+default/busybox \(latest\)\W+yes\W+0.65MiB" +os::cmd::expect_success_and_text "oadm top imagestreams" "default/busybox\W+0.65MiB\W+1\W+1" + +# log in as an image-pruner and test that oadm prune images works against the atomic binary +os::cmd::expect_success "oadm policy add-cluster-role-to-user system:image-pruner pruner --config='${MASTER_CONFIG_DIR}/admin.kubeconfig'" +os::cmd::expect_success "oc login --server=${KUBERNETES_MASTER} --certificate-authority='${MASTER_CONFIG_DIR}/ca.crt' -u pruner -p anything" +os::cmd::expect_success_and_text "oadm prune images" "Dry run enabled - no modifications will be made. Add --confirm to remove images" + +echo "images: ok" +os::test::junit::declare_suite_end + os::test::junit::declare_suite_end diff --git a/test/testdata/stable-busybox.yaml b/test/testdata/stable-busybox.yaml new file mode 100644 index 000000000000..dc754da74d6f --- /dev/null +++ b/test/testdata/stable-busybox.yaml @@ -0,0 +1,89 @@ +kind: List +apiVersion: v1 +metadata: {} +items: + - apiVersion: v1 + dockerImageConfig: '{"architecture":"amd64","config":{"Hostname":"55cd1f8f6e5b","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["sh"],"Image":"sha256:e732471cb81a564575aad46b9510161c5945deaf18e9be3db344333d72f0b4b2","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":{}},"container":"764ef4448baa9a1ce19e4ae95f8cdd4eda7a1186c512773e56dc634dff208a59","container_config":{"Hostname":"55cd1f8f6e5b","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"],"Cmd":["/bin/sh","-c","#(nop) + CMD [\"sh\"]"],"Image":"sha256:e732471cb81a564575aad46b9510161c5945deaf18e9be3db344333d72f0b4b2","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":{}},"created":"2016-06-23T23:23:37.198943461Z","docker_version":"1.10.3","history":[{"created":"2016-06-23T23:23:36.73131105Z","created_by":"/bin/sh + -c #(nop) ADD file:9ca60502d646bdd815bb51e612c458e2d447b597b95cf435f9673f0966d41c1a + in /"},{"created":"2016-06-23T23:23:37.198943461Z","created_by":"/bin/sh -c #(nop) + CMD [\"sh\"]","empty_layer":true}],"os":"linux","rootfs":{"type":"layers","diff_ids":["sha256:8ac8bfaff55af948c796026ee867448c5b5b5d9dd3549f4006d9759b25d4a893"]}}' + dockerImageLayers: + - mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip + name: sha256:8ddc19f16526912237dd8af81971d5e4dd0587907234be2b83e249518d5b673f + size: 667590 + dockerImageManifest: |- + { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/octet-stream", + "size": 1459, + "digest": "sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749" + }, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 667590, + "digest": "sha256:8ddc19f16526912237dd8af81971d5e4dd0587907234be2b83e249518d5b673f" + } + ] + } + dockerImageManifestMediaType: application/vnd.docker.distribution.manifest.v2+json + dockerImageMetadata: + Architecture: amd64 + Config: + Cmd: + - sh + Env: + - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + Hostname: 55cd1f8f6e5b + Image: sha256:e732471cb81a564575aad46b9510161c5945deaf18e9be3db344333d72f0b4b2 + Container: 764ef4448baa9a1ce19e4ae95f8cdd4eda7a1186c512773e56dc634dff208a59 + ContainerConfig: + Cmd: + - /bin/sh + - -c + - '#(nop) CMD ["sh"]' + Env: + - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + Hostname: 55cd1f8f6e5b + Image: sha256:e732471cb81a564575aad46b9510161c5945deaf18e9be3db344333d72f0b4b2 + Created: 2016-06-23T23:23:37Z + DockerVersion: 1.10.3 + Id: sha256:2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749 + Size: 669049 + apiVersion: "1.0" + kind: DockerImage + dockerImageMetadataVersion: "1.0" + dockerImageReference: busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6 + kind: Image + metadata: + creationTimestamp: 2016-07-27T15:12:10Z + name: sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6 + resourceVersion: "504" + selfLink: /oapi/v1/images/sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6 + uid: 7d6849b4-540c-11e6-809f-525400f25e34 + - apiVersion: v1 + kind: ImageStream + metadata: + annotations: + openshift.io/image.dockerRepositoryCheck: 2016-07-27T16:08:39Z + generation: 1 + name: busybox + namespace: default + resourceVersion: "505" + selfLink: /oapi/v1/namespaces/default/imagestreams/busybox + uid: 7d687e72-540c-11e6-809f-525400f25e34 + - apiVersion: v1 + kind: ImageStreamMapping + metadata: + name: busybox + namespace: default + tag: latest + image: + apiVersion: v1 + kind: Image + metadata: + name: sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6 + dockerImageReference: busybox@sha256:a59906e33509d14c036c8678d687bd4eec81ed7c4b8ce907b888c607f6a1e0e6