As a cloud operator, I need to be able to manage which and how many container images are stored in/on my cloud. This will allow me to conserve disk space and control which image versions are available for deployment/rollback For example: - List images in the registry - Delete/cleanup images from the registry Existing approaches to cleaning up the registry are: systemctl stop docker-distribution ; rm -rf /var/lib/registry/docker ; systemctl start docker-distribution remove /var/lib/docker We want to provide a way for operators to manage images via the Director.
Removed from 14 due to status lower than POST at the beginning of milestone-3.
Previously closed in error; this should be in POST.
[cloud-user@undercloud ~]$ rpm -qa | grep tripleoclient python3-tripleoclient-heat-installer-12.3.1-0.20191210041625.9c4b3e7.el8ost.noarch python3-tripleoclient-12.3.1-0.20191210041625.9c4b3e7.el8ost.noarch Pushing image from remote repo to the repository: [cloud-user@undercloud ~]$ sudo openstack tripleo container image push docker.io/library/centos Show the contents of the repository: [cloud-user@undercloud ~]$ openstack tripleo container image list +--------------------------------------------------------------------------------------------------------------+ | Image Name | +--------------------------------------------------------------------------------------------------------------+ | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-conductor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-executor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-account:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-haproxy:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-l3-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-server:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-glance-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-openvswitch-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-dhcp-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-event-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-tempest:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-neutron-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-conductor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-iscsid:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-pxe:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mariadb:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-rabbitmq:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-container:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-memcached:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-compute-ironic:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-proxy-server:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-object:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-scheduler:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-zaqar-wsgi:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keystone:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-qdrouterd:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keepalived:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-placement-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-inspector:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-cron:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/library/centos:latest | +--------------------------------------------------------------------------------------------------------------+ Show metadata for an image: [cloud-user@undercloud ~]$ openstack tripleo container image show docker://undercloud.ctlplane.localdomain:8787/library/centos:latest { "Name": "undercloud.ctlplane.localdomain:8787/library/centos", "Architecture": "amd64", "Created": "2019-10-01T23:19:57.105928163Z", "Digest": "sha256:6ab380c5a5acf71c1b6660d645d2cd79cc8ce91b38e0352cbf9561e050427baf", "DockerVersion": "18.06.1-ce", "Labels": { "org.label-schema.build-date": "20190927", "org.label-schema.license": "GPLv2", "org.label-schema.name": "CentOS Base Image", "org.label-schema.schema-version": "1.0", "org.label-schema.vendor": "CentOS" }, "Layers": [ "sha256:729ec3a6ada3a6d26faca9b4779a037231f1762f759ef34c08bdd61bf52cd704" ], "Os": "linux", "RepoTags": [ "latest" ], "Tag": "latest" } Delete image: [cloud-user@undercloud ~]$ sudo openstack tripleo container image delete docker://undercloud.ctlplane.localdomain:8787/library/centos:latest Are you sure you want to delete this image [y/N]? y Show the image has been removed: [cloud-user@undercloud ~]$ openstack tripleo container image list +--------------------------------------------------------------------------------------------------------------+ | Image Name | +--------------------------------------------------------------------------------------------------------------+ | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-conductor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-executor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-account:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-haproxy:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-l3-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-server:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-glance-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-openvswitch-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-dhcp-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-event-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-tempest:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-neutron-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-conductor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-iscsid:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-pxe:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mariadb:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-rabbitmq:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-container:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-memcached:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-compute-ironic:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-proxy-server:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-object:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-scheduler:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-zaqar-wsgi:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keystone:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-qdrouterd:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keepalived:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-placement-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-inspector:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-cron:20191213.1 | +--------------------------------------------------------------------------------------------------------------+ Pushing an image that is already in local container storage: [cloud-user@undercloud ~]$ sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-glance-api 20191213.1 d2d9fe5e6b7b 2 days ago 1.02 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-api 20191213.1 79423c799c28 2 days ago 865 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-conductor 20191213.1 e43ba0493907 2 days ago 909 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-dhcp-agent 20191213.1 b299f73a9e80 2 days ago 1.04 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-object 20191213.1 89518e8bb9ba 2 days ago 769 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-server 20191213.1 83269fdd3f3d 3 days ago 909 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-api 20191213.1 3ca151ba806d 3 days ago 1.09 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-l3-agent 20191213.1 715622fdd3ee 3 days ago 1.04 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-openvswitch-agent 20191213.1 556b6148c5dc 3 days ago 896 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-zaqar-wsgi 20191213.1 b3fbc343e803 3 days ago 718 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-scheduler 20191213.1 49e64c932942 3 days ago 1.19 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-api 20191213.1 47e1840dc94d 3 days ago 1.12 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keystone 20191213.1 e8c1df3a39ac 3 days ago 767 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-proxy-server 20191213.1 4e81c830393d 3 days ago 816 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-pxe 20191213.1 e7ebf0d955d1 3 days ago 792 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-engine 20191213.1 f865d2f05a0a 3 days ago 1.07 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-engine 20191213.1 0e430ea818b8 3 days ago 865 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-account 20191213.1 82c447087a22 3 days ago 769 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-neutron-agent 20191213.1 a69d30f3c988 3 days ago 896 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-api 20191213.1 27edc6b3cf2d 3 days ago 786 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-container 20191213.1 eb5e952f38f6 3 days ago 769 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-executor 20191213.1 5fda17e006d5 3 days ago 1.45 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-conductor 20191213.1 d039e4090aef 3 days ago 1.02 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-compute-ironic 20191213.1 51270c224b6b 3 days ago 1.96 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-event-engine 20191213.1 809fbca91c3e 3 days ago 1.07 GB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-inspector 20191213.1 1f514a2c9855 3 days ago 692 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-placement-api 20191213.1 e20a67332727 3 days ago 641 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-tempest 20191213.1 7a78dc7767d3 3 days ago 914 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-rabbitmq 20191213.1 10bb0d557540 3 days ago 596 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-haproxy 20191213.1 aeb678879bad 3 days ago 553 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keepalived 20191213.1 930b6eaeac84 3 days ago 429 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-memcached 20191213.1 50f982c2fa5d 3 days ago 436 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-cron 20191213.1 2ec7bf63fa90 3 days ago 415 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-iscsid 20191213.1 4bb5856e84c0 3 days ago 434 MB undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mariadb 20191213.1 7031fca8e1e6 3 days ago 768 MB docker.io/library/centos latest 0f3e07c0138f 2 months ago 227 MB [cloud-user@undercloud ~]$ sudo openstack tripleo container image push --local docker.io/library/centos:latest INFO[0010] created - from /var/lib/containers/storage/overlay/9e607bb861a7d58bece26dd2c02874beedd6a097c1b6eca5255d5eb0d2236983/diff and /var/lib/containers/storage/overlay-layers/9e607bb861a7d58bece26dd2c02874beedd6a097c1b6eca5255d5eb0d2236983.tar-split.gz (wrote 227444736 bytes) [cloud-user@undercloud ~]$ openstack tripleo container image list +--------------------------------------------------------------------------------------------------------------+ | Image Name | +--------------------------------------------------------------------------------------------------------------+ | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-conductor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-executor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-account:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-haproxy:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-l3-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-server:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-glance-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-openvswitch-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-neutron-dhcp-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mistral-event-engine:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-tempest:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-neutron-agent:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-conductor:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-iscsid:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-pxe:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-mariadb:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-rabbitmq:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-container:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-memcached:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-compute-ironic:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-proxy-server:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-swift-object:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-nova-scheduler:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-zaqar-wsgi:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keystone:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-qdrouterd:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-keepalived:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-placement-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-ironic-inspector:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-heat-api:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/rh-osbs/rhosp16-openstack-cron:20191213.1 | | docker://undercloud.ctlplane.localdomain:8787/library/centos:latest | +--------------------------------------------------------------------------------------------------------------+
Hi David, I have edited the contents of the Doc Text field (below) which will appear in the RHOSP 16.0 GA Relesae Notes. Please review and make any necessary changes. Thanks for your help with this, --Greg PROPOSED DOC TEXT ----------------- In Red Hat OpenStack Platform 16.0, you are now able to push, list, delete, and show (show metadata) images on the local registry. - To push images from remote repository to the main repository: $ sudo openstack tripleo container image push docker.io/library/centos - To list the contents of the repository: $ openstack tripleo container image list - To delete images: $ sudo openstack tripleo container image delete - To show metadata for an image: $ openstack tripleo container image show
Looks good - thanks a lot Greg. :-) Cheers, David
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2020:0283