RETIRED, Heat templates for deploying OpenStack
Go to file
Ben Nemec f572b764f1 Add validation check for divergent parameter definitions
Many of our parameters are defined in multiple templates, but
currently there is no easy way of checking that all of those
definitions match.  It can be confusing when a parameter is defined
one way in one file and another way in a different file.  For example,
the NovaWorkers description is:

Number of workers for Nova API service.

and

Number of workers for Nova Placement API service.

and

Number of workers for Nova Conductor service.

Which is it actually?  All of them.  That one parameter controls
the workers for all of the nova services, and its description should
reflect that, no matter which template you happen to look at.

This change adds a check to yaml-validate.py to catch these sorts of
inconsistencies and allow us to eventually prevent new ones from
getting into the templates.

An exclusion mechanism is included because there are some parameter
definitions we probably can't/shouldn't change.  In particular, this
includes the network cidrs which are defaulted to ipv4 addresses in
the ipv4 net-iso templates and ipv6 in the ipv6 templates.  It's
possible a user would be relying on one of those defaults in their
configuration, so if we change it they might break.

To get around that, the tool explicitly ignores the default field of
those parameters, while still checking the description and type fields
so we maintain some sanity.  There may be other parameters where this
is an issue, but those can be added later as they are found.

For the moment any inconsistencies are soft-fails.  A failure message
will be printed, but the return value will not be affected so we can
add the tool without first having to fix every divergent parameter
definition in tripleo-heat-templates (and there appear to be plenty).
This will allow us to gradually fix the parameters over time, and
once that is done we can make this a hard-fail.

Change-Id: Ib8b2cb5e610022d2bbcec9f2e2d30d9a7c2be511
Partial-Bug: 1700664
2017-06-27 11:26:01 -05:00
ci Merge "scenario004: containerize services for CI" 2017-06-23 22:28:04 +00:00
common Remove duplicate docker/puppet services.yaml 2017-06-09 17:10:43 +01:00
deployed-server Add DeploymentSwiftDataMap parameter 2017-06-15 14:45:11 -04:00
docker Provides a list of per-service ctlplane IPs to the workflows env 2017-06-26 16:32:02 +02:00
environments Merge "Add split-stack environments" 2017-06-26 23:59:05 +00:00
extraconfig Enable DPDK on boot using PreNetworkConfig 2017-06-23 11:19:23 +05:30
firstboot Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
network Merge "Provides a list of per-service ctlplane IPs to the workflows env" 2017-06-27 10:04:14 +00:00
plan-samples Providing parameters specific to a workflow via plan-environment 2017-06-12 11:59:14 +05:30
puppet Merge "Provides a list of per-service ctlplane IPs to the workflows env" 2017-06-27 10:04:14 +00:00
releasenotes Merge "Add flag to enable/disable the HAProxy stats interface" 2017-06-27 06:01:25 +00:00
roles Merge "Add an example IronicConductor role" 2017-06-19 15:26:20 +00:00
sample-env-generator Add nested sample environments for inject-trust-anchor 2017-06-12 15:02:50 -05:00
scripts Avoid awk error in hosts-config.sh for large deployments 2017-04-07 10:50:39 +01:00
tools Add validation check for divergent parameter definitions 2017-06-27 11:26:01 -05:00
tripleo_heat_templates Add nested sample environments for inject-trust-anchor 2017-06-12 15:02:50 -05:00
validation-scripts Validate NTP servers 2017-04-13 19:54:56 +00:00
.gitignore Sample environment generator 2017-06-12 15:02:50 -05:00
.gitreview Update stackforge references to openstack 2013-08-17 22:57:57 -04:00
.testr.conf Sample environment generator 2017-06-12 15:02:50 -05:00
LICENSE Add license file 2014-01-20 11:58:20 +01:00
MANIFEST.in Add release configuration. 2013-10-22 17:49:35 +01:00
README.rst Standardize example role definitions 2017-06-07 20:20:03 +00:00
all-nodes-validation.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
babel.cfg Add release configuration. 2013-10-22 17:49:35 +01:00
bindep.txt Add bindep support 2017-03-13 12:11:46 -04:00
bootstrap-config.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
capabilities-map.yaml Add l2gw neutron agent support 2017-05-18 16:36:12 +08:00
default_passwords.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
hosts-config.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
j2_excludes.yaml Add generic template for custom roles. 2016-10-06 02:13:36 +00:00
net-config-bond.yaml Fix descriptions on bonding templates 2017-06-21 17:09:29 -07:00
net-config-bridge.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
net-config-linux-bridge.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
net-config-noop.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
net-config-static-bridge-with-external-dhcp.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
net-config-static-bridge.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
net-config-static.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
net-config-undercloud.yaml Update the template_version alias for all the templates to pike. 2017-05-19 09:58:07 +02:00
network_data.yaml Add network_data.yaml to encapsulate list of networks for j2 2017-03-05 03:20:42 +00:00
overcloud-resource-registry-puppet.j2.yaml Merge "Add split-stack environments" 2017-06-26 23:59:05 +00:00
overcloud.j2.yaml Merge "Provides a list of per-service ctlplane IPs to the workflows env" 2017-06-27 10:04:14 +00:00
plan-environment.yaml Add name and description fields to plan-environment.yaml 2017-04-12 17:25:40 +02:00
requirements.txt Updated from global requirements 2017-04-24 20:36:13 +00:00
roles_data.yaml Merge "Move iscsid to a container" 2017-06-14 01:00:01 +00:00
roles_data_undercloud.yaml Merge "Add templates to configure Ironic inspector" 2017-06-16 15:48:15 +00:00
services.yaml Allows use of Mistral workflows during deployment steps 2017-06-26 16:28:23 +02:00
setup.cfg Drop deprecated templates/Makefile/merge.py 2015-11-25 15:00:13 -05:00
setup.py Updated from global requirements 2017-03-28 13:03:01 +00:00
test-requirements.txt Updated from global requirements 2017-06-19 05:49:19 +00:00
tox.ini Support config dir for env generator input files 2017-06-12 15:02:50 -05:00

README.rst

Team and repository tags

image

tripleo-heat-templates

Heat templates to deploy OpenStack using OpenStack.

Features

The ability to deploy a multi-node, role based OpenStack deployment using OpenStack Heat. Notable features include:

  • Choice of deployment/configuration tooling: puppet, (soon) docker
  • Role based deployment: roles for the controller, compute, ceph, swift, and cinder storage
  • physical network configuration: support for isolated networks, bonding, and standard ctlplane networking

Directories

A description of the directory layout in TripleO Heat Templates.

  • environments: contains heat environment files that can be used with -e

    on the command like to enable features, etc.

  • extraconfig: templates used to enable 'extra' functionality. Includes

    functionality for distro specific registration and upgrades.

  • firstboot: example first_boot scripts that can be used when initially

    creating instances.

  • network: heat templates to help create isolated networks and ports
  • puppet: templates mostly driven by configuration with puppet. To use these

    templates you can use the overcloud-resource-registry-puppet.yaml.

  • validation-scripts: validation scripts useful to all deployment

    configurations

  • roles: example roles that can be used with the tripleoclient to generate

    a roles_data.yaml for a deployment See the roles/README.rst for additional details.

Service testing matrix

The configuration for the CI scenarios will be defined in tripleo-heat-templates/ci/ and should be executed according to the following table:

- scenario001 scenario002 scenario003 scenario004 multinode-nonha
keystone

X

X

X

X

X

glance

rbd

swift

file

swift + rbd

swift

cinder

rbd

iscsi

iscsi

heat

X

X

X

X

X

mysql

X

X

X

X

X

neutron

ovs

ovs

ovs

ovs

X

neutron-bgpvpn

X

neutron-l2gw

X

rabbitmq

X

X

X

X

X

mongodb

X

X

redis

X

haproxy

X

X

X

X

X

keepalived

X

X

X

X

X

memcached

X

X

X

X

X

pacemaker

X

X

X

X

X

nova

qemu

qemu

qemu

qemu

X

ntp

X

X

X

X

X

snmp

X

X

X

X

X

timezone

X

X

X

X

X

sahara

X

mistral

X

swift

X

X

aodh

X

ceilometer

X

gnocchi

X

panko

X

barbican

X

zaqar

X

ec2api

X

cephrgw

X

X

tacker

X

congress

X

cephmds

X

manila

X

collectd

X

fluentd

X

sensu-client

X