tripleo-docs/doc/source/install/containers_deployment/overcloud.rst
Steve Baker 241fef3167 Document "openstack tripleo container image prepare"
This documents container image prepare for the undercloud and
overcloud as currently implemented. This means prepare occurs during
undercloud install, but overcloud still requires calling the new
command "openstack tripleo container image prepare". There will be a
futher docs change when blueprint container-prepare-workflow is
complete, but these docs are ready to land now.

Change-Id: I88353551ac9e07484ad585ef6c17415645d13121
Blueprint: container-prepare-workflow
2018-07-31 02:59:53 +00:00

4.0 KiB

Containers based Overcloud Deployment

This documentation explains how to deploy a fully containerized overcloud on Docker. This feature is now the default in Queens.

The requirements for a containerized overcloud are the same as for any other overcloud deployment. The real difference is in where the overcloud services will be deployed (containers vs base OS).

Architecture

The docker-based overcloud architecture is not very different from the baremetal/VM based one. The services deployed in the traditional baremetal overcloud are also deployed in the docker-based one.

One obvious difference between these two types of deployments is that the Openstack services are deployed as containers in a container runtime rather than directly on the host operating system. This reduces the required packages in the host to the bare minimum for running the container runtime and managing the base network layer.

Manual overcloud deployment

This section explains how to deploy a containerized overcloud manually. For an automated overcloud deployment, please follow the steps in the Using TripleO Quickstart section below.

Preparing overcloud images

As part of the undercloud install, an image registry is configured on port 8787. This is used to increase reliability of overcloud image pulls, and minimise overall network transfers. The undercloud registry will be populated with images required by the overcloud deploy by generating the following containers-prepare-parameter.yaml file and using that for the prepare call:

openstack tripleo container image prepare default \
  --local-push-destination \
  --output-env-file containers-prepare-parameter.yaml

Note

The file containers-prepare-parameter.yaml may have already been created during install_undercloud. It is encouraged to share the same containers-prepare-parameter.yaml file for undercloud install and overcloud deploy.

See prepare-environment-containers for details on using containers-prepare-parameter.yaml to control what can be done during container image preparation.

Running container image prepare

The openstack tripleo container image prepare command performs all of the required prepare tasks as specified by ~/containers-prepare-parameter.yaml. This generates the environment file ~/containers-default-parameters.yaml which contains all of the container image parameters needed for the overcloud deploy. The prepare is run with the command:

openstack tripleo container image prepare \
  -e ~/containers-prepare-parameter.yaml
  --roles-file /usr/share/openstack-tripleo-heat-templates/roles_data.yaml \
  --output-env-file ~/containers-default-parameters.yaml

Deploying the containerized Overcloud

A containerized overcloud deployment follows all the steps described in the baremetal deploy-the-overcloud documentation with the exception that it requires an extra environment file to be added to the openstack overcloud deploy command:

-e ~/containers-default-parameters.yaml

If deploying with highly available controller nodes, include the following extra environment file in addition to the above and in place of the environments/puppet-pacemaker.yaml file:

-e /usr/share/openstack-tripleo-heat-templates/environments/docker-ha.yaml

Using TripleO Quickstart

Note

Please refer to the TripleO Quickstart docs for more info about quickstart, the minimum requirements, the setup process and the available plugins.

The command below will deploy a containerized overcloud on top of a baremetal undercloud:

bash quickstart.sh --config=~/.quickstart/config/general_config/containers_minimal.yml $VIRTHOST