Since we can't rely on comments in the sample env file anymore we need formal documentation of the various options available.
2.6 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 environments/base-role.yaml
for a starting point when writing these role files.
Note
Each extra role consists of exactly one environment file. This means that the standalone option environments cannot be used with roles. To override the options specified for the primary role in a secondary role, the parameter_defaults and resource_registry entries from the option environment must be copied into the role environment.
However, note that most resource_registry entries are filtered out of role environments anyway since they are not relevant for a secondary stack.
Steps for deploying the environment:
Customize the environment files. Make sure all environments have a
role
key in theparameter_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.).Deploy with both roles:
bin/deploy.py --quintupleo --env env-control.yaml --role env-compute.yaml
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.
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.