Add documentation for split-stack
implements blueprint split-stack-default Depends-On: Id4b8c939fa7b26205609819b66e76bf73c9890d0 Change-Id: I9997bd685f8f79537dfc377f9f1eb0c7446c3289
This commit is contained in:
parent
45b718677c
commit
3209fab21b
@ -21,3 +21,4 @@ Documentation on how to enable and configure various features available in
|
|||||||
api_policies
|
api_policies
|
||||||
disable_telemetry
|
disable_telemetry
|
||||||
server_blacklist
|
server_blacklist
|
||||||
|
split_stack
|
||||||
|
140
doc/source/install/advanced_deployment/split_stack.rst
Normal file
140
doc/source/install/advanced_deployment/split_stack.rst
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
Splitting the Overcloud stack into multiple independent Heat stacks
|
||||||
|
===================================================================
|
||||||
|
|
||||||
|
split-stack is a feature in TripleO that splits the overcloud stack into
|
||||||
|
multiple independent stacks in Heat.
|
||||||
|
|
||||||
|
The ``overcloud`` stack is split into an ``overcloud-baremetal`` and
|
||||||
|
``overcloud-services`` stack. This allows for independent and isolated
|
||||||
|
management of the baremetal and services part of the Overcloud deployment. It
|
||||||
|
is a more modular design than deploying a single ``overcloud`` stack in that it
|
||||||
|
allows either the baremetal or services stack to be replaced by tooling that is
|
||||||
|
external to TripleO if desired.
|
||||||
|
|
||||||
|
The ``overcloud-services`` stack makes extensive use of the deployed-server
|
||||||
|
feature, documented at :doc:`deployed_server` in order to orchestrate the
|
||||||
|
deployment and configuration of the services separate from the baremetal
|
||||||
|
deployment.
|
||||||
|
|
||||||
|
|
||||||
|
split-stack allows for mixing baremetal systems deployed by TripleO and those
|
||||||
|
deployed by external tooling when creating the services stack. Since the
|
||||||
|
baremetal resources are completely abstracted behind the deployed-server
|
||||||
|
interface when deploying the services stack, it does not matter whether the
|
||||||
|
servers were actually created with TripleO or not.
|
||||||
|
|
||||||
|
|
||||||
|
split-stack Requirements
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
A default split-stack deployment (detailed in the later steps) can be deployed
|
||||||
|
without any special requirements.
|
||||||
|
|
||||||
|
More advanced deployments where baremetal servers provisioned by TripleO will
|
||||||
|
be mixed with those not provisioned by TripleO will want to pay attention to
|
||||||
|
the requirements around using already deployed servers from
|
||||||
|
:doc:`deployed_server`. The requirements for using deployed servers will apply
|
||||||
|
when not using servers provisioned by TripleO.
|
||||||
|
|
||||||
|
Default split-stack deployment
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
split-stack will be deployed by running 2 separate ``openstack overcloud
|
||||||
|
deploy`` commands to deploy the separate stacks.
|
||||||
|
|
||||||
|
If applicable, prepare the custom roles files and any custom environments
|
||||||
|
initially. The custom roles file and an environment setting the role counts
|
||||||
|
should be passed to both deployment commands so that enough baremetal nodes are
|
||||||
|
deployed per what the ``overcloud-services`` stack expects.
|
||||||
|
|
||||||
|
Baremetal Deployment Command
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Run the deployment command to deploy the ``overcloud-baremetal`` stack.
|
||||||
|
An additional environment file, ``overcloud-baremetal.yaml``, is passed to the
|
||||||
|
deployment to enable deploying just the baremetal stack.
|
||||||
|
|
||||||
|
Enough baremetal nodes should be deployed to match how many nodes per role will
|
||||||
|
be needed when the services stack is deployed later. Be sure that the
|
||||||
|
environment file being used to set the role counts is passed to the baremetal
|
||||||
|
deployment command::
|
||||||
|
|
||||||
|
openstack overcloud deploy \
|
||||||
|
<other cli arguments> \
|
||||||
|
--stack overcloud-baremetal \
|
||||||
|
-r roles-data.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/overcloud-baremetal.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/split-stack-consistent-hostname-format.yaml
|
||||||
|
|
||||||
|
The ``--stack`` argument sets the name of the Heat stack to
|
||||||
|
``overcloud-baremetal``. This will also be the name of the Swift container that
|
||||||
|
stores the stack's plan (templates) and of the Mistral environment.
|
||||||
|
|
||||||
|
The ``roles-data.yaml`` roles file illustrates passing a custom roles file to
|
||||||
|
the deployment command. It is not necessary to use custom roles when using
|
||||||
|
split stack, however if custom roles are used, the same roles file should be
|
||||||
|
used for both stacks.
|
||||||
|
|
||||||
|
The ``overcloud-baremetal.yaml`` environment will set the parameters for the
|
||||||
|
deployment such that no services will be deployed.
|
||||||
|
|
||||||
|
The ``split-stack-consistent-hostname-format.yaml`` environment will set the
|
||||||
|
respective ``<role-name>HostnameFormat`` parameters for each role defined in
|
||||||
|
the role files used. The server hostnames for the 2 stacks must be the same,
|
||||||
|
otherwise the servers will not be able to pull their deployment metadata from
|
||||||
|
Heat.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Do not pass any network isolation templates or NIC config templates to the
|
||||||
|
``overcloud-baremetal`` stack deployment command. These will only be passed
|
||||||
|
to the ``overcloud-services`` stack deployment command.
|
||||||
|
|
||||||
|
An output on the ``overcloud-baremetal`` stack produces the contents of an
|
||||||
|
environment file that needs to be passed to the ``overcloud-services`` command.
|
||||||
|
Use the following command to save the output value::
|
||||||
|
|
||||||
|
openstack stack output show overcloud-baremetal DeployedServerEnvironment -f value -c output_value > deployed-server-environment-output.json
|
||||||
|
|
||||||
|
Services Deployment Command
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The services stack, ``overcloud-services`` will now be deployed with a separate
|
||||||
|
deployment command::
|
||||||
|
|
||||||
|
openstack overcloud deploy \
|
||||||
|
<other cli arguments> \
|
||||||
|
--stack overcloud-services \
|
||||||
|
--disable-validations \
|
||||||
|
-r roles-data.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-environment.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-deployed-neutron-ports.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-bootstrap-environment-centos.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/overcloud-services.yaml \
|
||||||
|
-e /usr/share/openstack-tripleo-heat-templates/environments/split-stack-consistent-hostname-format.yaml
|
||||||
|
-e deployed-server-environment-output.json
|
||||||
|
|
||||||
|
The ``overcloud-services`` stack makes use of the "deployed-server" feature.
|
||||||
|
The additional environments needed are shown in the above command. See
|
||||||
|
:doc:`deployed_server` for more information on how to fully configure the
|
||||||
|
feature.
|
||||||
|
|
||||||
|
The roles file, ``roles-data.yaml`` is again passed to the services stack as
|
||||||
|
the same roles file should be used for both stacks.
|
||||||
|
|
||||||
|
Also, instead of passing the ``overcloud-baremetal.yaml`` environment,
|
||||||
|
``overcloud-services.yaml`` is now passed.
|
||||||
|
|
||||||
|
The ``split-stack-consistent-hostname-format.yaml`` environment is again
|
||||||
|
passed, so that the hostnames used for the server resources created by Heat are
|
||||||
|
the same as were created in the previous baremetal stack.
|
||||||
|
|
||||||
|
Pass the ``deployed-server-environment-output.json`` environment file that was
|
||||||
|
generated from the value of the ``DeployedServerEnvironment`` output
|
||||||
|
of the ``overcloud-baremetal`` stack.
|
||||||
|
|
||||||
|
During this deployment, any network isolation environments and/or NIC config
|
||||||
|
templates should be passed for the desired network configuration.
|
||||||
|
|
||||||
|
The stack should complete and the generated ``overcloudrc`` can be used to
|
||||||
|
interact with the Overcloud.
|
Loading…
Reference in New Issue
Block a user