Ask Your Question

Revision history [back]

Hi, @NarasimhaSV

All Kolla images have a base image, this image include common tasks for the child images. Almost every project (at this case heat) has more than one image, usually one per service as can be heat-engine, heat-api, etc.

Base images include tasks as installation of base packages for the role, install the source code when install_type == source , create home folder, etc.

For instance, heat-api image configure specific things to make run heat-api service as bootstraping heat database, create heat domains and users, etc.

When installing heat-base from source code at master branch, kolla-build downloads heat-master tarball, which is a zipped version of kolla's github repository in a specific point in the time (EG: when a tag is created at a milestone[0]).

Then, kolla-build will untar the package and install requirements in a similar way to a manual installation from source code.

See example:

ADD heat-base-archive /heat-base-source
RUN ln -s heat-base-source/* heat \
    && useradd --user-group heat \
    && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /heat \
    && mkdir -p /etc/heat /home/heat \
    && cp -r /heat/etc/heat/* /etc/heat/ \
    && chown -R heat: /etc/heat /home/heat

[0][https://wiki.openstack.org/wiki/Branch_Model](https://wiki.openstack.org/wiki/Branch_Model)

Regards, Eduardo

Hi, @NarasimhaSV

All Kolla images have a base image, this image include common tasks for the child images. Almost every project (at this case heat) has more than one image, usually one per service as can be heat-engine, heat-api, etc.

Base images include tasks as installation of base packages for the role, install the source code when install_type == source , create home folder, etc.

For instance, heat-api image configure specific things to make run heat-api service as bootstraping heat database, create heat domains and users, etc.

When installing heat-base from source code at master branch, kolla-build downloads heat-master tarball, which is a zipped version of kolla's github repository in a specific point in the time (EG: when a tag is created at a milestone[0]).

Then, kolla-build will untar the package and install requirements in a similar way to a manual installation from source code.

See example:

ADD heat-base-archive /heat-base-source
RUN ln -s heat-base-source/* heat \
    && useradd --user-group heat \
    && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /heat \
    && mkdir -p /etc/heat /home/heat \
    && cp -r /heat/etc/heat/* /etc/heat/ \
    && chown -R heat: /etc/heat /home/heat

[heat] calls the folder on which Heat has the heat-<SERVICE>/Dockerfile.j2 for all the services[1]

[0][https://wiki.openstack.org/wiki/Branch_Model](https://wiki.openstack.org/wiki/Branch_Model)

[1][https://github.com/openstack/kolla/tree/master/docker/heat](https://github.com/openstack/kolla/tree/master/docker/heat)

Regards, Eduardo

Hi, @NarasimhaSV

All Kolla images have a base image, this image include common tasks for the child images. Almost every project (at this case heat) has more than one image, usually one per service as can be heat-engine, heat-api, etc.

Base images include tasks as installation of base packages for the role, install the source code when install_type == source , create home folder, etc.

For instance, heat-api image configure specific things to make run heat-api service as bootstraping heat database, create heat domains and users, etc.

When installing heat-base from source code at master branch, kolla-build downloads heat-master tarball, which is a zipped version of kolla's github repository in a specific point in the time (EG: when a tag is created at a milestone[0]).

Then, kolla-build will untar the package and install requirements in a similar way to a manual installation from source code.

See example:

ADD heat-base-archive /heat-base-source
RUN ln -s heat-base-source/* heat \
    && useradd --user-group heat \
    && /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /heat \
    && mkdir -p /etc/heat /home/heat \
    && cp -r /heat/etc/heat/* /etc/heat/ \
    && chown -R heat: /etc/heat /home/heat

[heat] calls the folder on which Heat has the heat-<SERVICE>/Dockerfile.j2 for all the services[1]

[0][https://wiki.openstack.org/wiki/Branch_Model](https://wiki.openstack.org/wiki/Branch_Model)

[1][https://github.com/openstack/kolla/tree/master/docker/heat](https://github.com/openstack/kolla/tree/master/docker/heat)[0] [https://wiki.openstack.org/wiki/Branch_Model](https://wiki.openstack.org/wiki/Branch_Model)

[1] [https://github.com/openstack/kolla/tree/master/docker/heat](https://github.com/openstack/kolla/tree/master/docker/heat)

Regards, Eduardo