Thursday, November 9, 2017

Containers based openstack overcloud deploy with RDO registry

I was trying to deploy Containers based openstack overcloud by following this document https://docs.openstack.org/tripleo-docs/latest/install/containers_deployment/overcloud.html and found out I couldn't get conatiners images from RDO registry with tag mentioned in the document.

The document shows how to copy pre-built images from rdoproject registry to the local  repository.

openstack overcloud container image prepare \
  --namespace trunk.registry.rdoproject.org/master \
  --tag tripleo-ci-testing \
  --push-destination 192.168.24.1:8787 \
  --output-images-file overcloud_containers.yaml

If you try to follow the above steps,  it will create overcloud_containers but when you actually use the file to deploy will  result in 404 error
docker pull failed: Error: image master/centos-binary-aodh-api:tripleo-passed-ci not found
retrying pulling image: trunk.registry.rdoproject.org/master/centos-binary-aodh-api
docker pull failed: Error: image master/centos-binary-aodh-api:tripleo-passed-ci not found
retrying pulling image: trunk.registry.rdoproject.org/master/centos-binary-aodh-api
docker pull failed: Error: image master/centos-binary-aodh-api:tripleo-passed-ci not found


This is because the tag used is invalid outside CI environment.
The short term solution for this is to get the hash from last passed-ci RDO trunk and use it as tag
Step 1. get the has tag
$  python -c 'import urllib2;import \
yaml;c=yaml.load(urllib2.urlopen("https://trunk.rdoproject.org/centos7-master/current-tripleo/commit.yaml")) \
["commits"][0];print  "%s_%s" % (c["commit_hash"],c["distro_hash"][0:8])'
This will return hash tag 3b85715c6488a692fcdf4e4c6a589d77c60eb5a6_a3792c8d

# a quick test that container image is there:
$ skopeo inspect docker://trunk.registry.rdoproject.org/master/centos-binary-nova-api:3b85715c6488a692fcdf4e4c6a589d77c60eb5a6_a3792c8d
Now use it to populate overcloud_conatiners.yaml

openstack overcloud container image prepare \
  --namespace trunk.registry.rdoproject.org/master \
  --tag 3b85715c6488a692fcdf4e4c6a589d77c60eb5a6_a3792c8d \
  --push-destination 172.16.0.1:8787 \
  --output-images-file overcloud_containers.yaml
Then upload the images to the local registry using the generated file:

openstack overcloud container image upload --config-file overcloud_containers.yaml


No comments:

Post a Comment

Openshift on Openstack : Resize attached docker volumes for Openshift nodes  Recently I deployed Openshift 3.9 on Openstack 10z and had ...