openstack-virtual-baremetal/doc/source/deploy/heterogeneous.rst
Ben Nemec 4634a916b7 Move note about multiple stacks with role deployments
It's better to have this early so if an initial deployment fails,
the user has the necessary details about deleting the stack up
front.  Otherwise they had to get all the way to the end of the
doc.
2017-02-01 11:03:27 -06:00

2.0 KiB

Deploying Heterogeneous Environments

It is possible to deploy an OVB environment with multiple "baremetal" node types. The QuintupleO <quintupleo> deployment method must be used, so it would be best to start with a working configuration for that before moving on to heterogeneous deployments.

Each node type will be identified as a role. A simple QuintupleO deployment can be thought of as a single-role deployment. To deploy multiple roles, additional environment files describing the extra roles are required. These environments are simplified versions of the standard environment file. See templates/env-role.yaml.example for a starting point when writing these role files.

Steps for deploying the environment:

  1. Customize the environment files. Make sure all environments have a role key in the parameter_defaults section. When building nodes.json, this role will be automatically assigned to the node, so it is simplest to use one of the default TripleO roles (control, compute, cephstorage, etc.).

  2. Deploy with both roles:

    bin/deploy.py --quintupleo --env env-control.yaml --role env-compute.yaml
  3. One Heat stack will be created for each role being deployed. Wait for them all to complete before proceeding.

    Note

    Be aware that the extra role stacks will be connected to networks in the primary role stack, so the extra stacks must be deleted before the primary one or the neutron subnets will not delete cleanly.

  4. Build a nodes.json file that can be imported into Ironic:

    bin/build-nodes-json --env env-control.yaml

    Note

    Only the primary environment file needs to be passed here. The resources deployed as part of the secondary roles will be named such that they appear to be part of the primary environment.

    Note

    If --id was used when deploying, remember to pass the generated environment file to this command instead of the original.