Feature #18253
closedrepo search for docker image repos using the results of docker search
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1268026
Description of problem:
For yum repositories we offer a feature called "repo discovery" which makes it easier to identify and configure repositories if they are coming from one source and are available for different RHEL versions and architectures.
Until we ship docker images in CDN and can just select and enable these repos inside the Docker Images tab under Content -> Red Hat repositories we need to manually configure each invidual container image (repo) we want to sync into Sat6.
Docker search provides all required information to browse and filter the available docker images inside a registry.
This is even more relevant for ISV images inside our federated registry where we use registry.access.redhat.com as an index and provide back the url to the deviating ISV registry in rhcloud:
[root@dherrman ~]# docker search nginx
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
redhat.com registry-nginxinc.rhcloud.com/nginx/rhel7-nginx:1.9.2 Run by the busiest web sites on the Intern... 0
redhat.com registry.access.redhat.com/rhscl_beta/nginx-16-rhel7 Nginx 1.6 server and a reverse proxy server 0
This would make it significantly easier to identify, select and configure (Sat6 repo and product) multiple container image repositories at once and would include ISV images in our federated registry as well.
Version-Release number of selected component (if applicable):
N/A
How reproducible:
N/A
Steps to Reproduce:
N/A
Actual results:
currently repo discovery only works for yum repos
Expected results:
Repo discovery works for docker images if I provide the registry (and maybe additionally a search term since a blind search listing all images seems to not work)
Additional info:
Workaround using hammer CLI:
for RESULT in $(docker search ${SEARCH} | grep -vi INDEX | sed -e 's/^redhat.com:blank:*\(:graph:*\):blank:*.*/\1/')
do
# divide between registry and upstream repo name
REGISTRY_URL=$(echo $RESULT | cut d'/' -f1))
REPO_NAME=$(echo $RESULT | cut -d'/' -f2
echo "Adding REPO: $REPO_NAME REGISTRY: $REGISTRY_URL "
hammer repository create --name="${REPO_NAME}" \
--product='Container Images' --content-type='docker' \
--url="https://${REGISTRY_URL}" \
--docker-upstream-name="${REPO_NAME}" \
--publish-via-http="true" \
--organization="$ORG"
done