add "registry" flag to "tools/build.py"

With registry flag,
build image using `tools/build.py --registry 172.22.2.81:4000`
the image name looks like `172.22.2.81:4000/kollaglue/data`
When user use kolla-ansible,
user set `docker_registry` to `172.22.2.81:4000` in `/etc/kolla/globals.yml`.

Build image using `tools/build.py -n abcd`
the image name looks like `abcd/data`
When user use kolla-ansible,
user set `docker_namespace:` to `abcd` in `/etc/kolla/globals.yml`.

build image using `tools/build.py -n abcd --registry 172.22.2.81:4000`
the image name looks like `abcd/data`
When user use kolla-ansible,
user set `docker_namespace:` to `abcd` in `/etc/kolla/globals.yml`.
user set `docker_registry` to `172.22.2.81:4000` in `/etc/kolla/globals.yml`.

With the feature, it will reduce user confusing and mistaking.

Change-Id: I18ac7a3ccec032888e35f5e9a79fc190760cc8a0
Closes-Bug: #1505056
This commit is contained in:
Kuo-tung Kao 2015-10-14 16:19:45 +08:00 committed by Kuo-tung Kao
parent bd010bdee2
commit 52b7253811
4 changed files with 17 additions and 9 deletions

View File

@ -37,7 +37,7 @@ The guide assumes that you have build images using the following command.
:: ::
tools/build.py -n 172.22.2.81:4000/kollaglue --base ubuntu --type source --push tools/build.py --registry 172.22.2.81:4000 --base ubuntu --type source --push
The IP, "172.22.2.81", is the host running private docker registry. The IP, "172.22.2.81", is the host running private docker registry.
To deploy a private docker registry, To deploy a private docker registry,

View File

@ -56,14 +56,12 @@ want to push images to your dockerhub, change the namespace like:
$ tools/build.py -n yourusername --push $ tools/build.py -n yourusername --push
To push images to local registry, change the namespace, too. If the ip To push images to local registry, use ``--registry`` flag like the
of the machine running local registry is ``172.22.2.81`` and the port following command:
which local registry listens to is ``4000``, use the following command
to push images to local registry.
:: ::
tools/build.py --namespace 172.22.2.81:4000/kollaglue --push tools/build.py --registry 172.22.2.81:4000 --push
To trigger buid.py to pull images from local registry, To trigger buid.py to pull images from local registry,
the Docker configuration needs to be modified. See the Docker configuration needs to be modified. See
@ -180,7 +178,7 @@ To build and push images to local registry, use the following command:
:: ::
tools/build.py --namespace 172.22.2.81:4000/kollaglue --push tools/build.py --registry 172.22.2.81:4000 --push
Kolla-ansible with Local Registry Kolla-ansible with Local Registry
+++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++

View File

@ -42,6 +42,8 @@
# Path to custome file to be addded at end of Dockerfiles for final images # Path to custome file to be addded at end of Dockerfiles for final images
#include_footer = /path/to/footer_file #include_footer = /path/to/footer_file
# The registry host. The default registry host is Docker Hub.
#registry = None
# Provide location of sources for source install builds. # Provide location of sources for source install builds.
# Example: # Example:

View File

@ -225,7 +225,8 @@ def merge_args_and_config(settings_from_config_file):
"keep": False, "keep": False,
"push": False, "push": False,
"threads": 8, "threads": 8,
"retries": 3 "retries": 3,
"registry": None
} }
defaults.update(settings_from_config_file.items('kolla-build')) defaults.update(settings_from_config_file.items('kolla-build'))
parser.set_defaults(**defaults) parser.set_defaults(**defaults)
@ -285,6 +286,9 @@ def merge_args_and_config(settings_from_config_file):
parser.add_argument('--template-only', parser.add_argument('--template-only',
help=("Don't build images. Generate Dockerfile only"), help=("Don't build images. Generate Dockerfile only"),
action='store_true') action='store_true')
parser.add_argument('--registry',
help=("the docker registry host"),
type=str)
return vars(parser.parse_args()) return vars(parser.parse_args())
@ -294,6 +298,10 @@ class KollaWorker(object):
self.base_dir = os.path.abspath(find_base_dir()) self.base_dir = os.path.abspath(find_base_dir())
LOG.debug("Kolla base directory: " + self.base_dir) LOG.debug("Kolla base directory: " + self.base_dir)
self.images_dir = os.path.join(self.base_dir, 'docker') self.images_dir = os.path.join(self.base_dir, 'docker')
self.registry = config['registry']
if self.registry:
self.namespace = self.registry + '/' + config['namespace']
else:
self.namespace = config['namespace'] self.namespace = config['namespace']
self.base = config['base'] self.base = config['base']
self.base_tag = config['base_tag'] self.base_tag = config['base_tag']