1037786b6c
We currently create /var/lib/docker-puppet/docker-puppet.sh inside the mp_puppet_config() function which then gets invoked in parallel via the following: p = multiprocessing.Pool(process_count) returncodes = list(p.map(mp_puppet_config, process_map)) This is problematic because we have the following potential race: 1) Process A opens /var/lib/docker-puppet/docker-puppet.sh for writing 2) Process B runs docker run and has the following bind mount: /var/lib/docker-puppet/docker-puppet.sh:/var/lib/docker-puppet/docker-puppet.sh:z 3) Process B will fail because an exec of a file being written to will return ETXTBSY The deployment can fail due to the above with the following error: [root@overcloud-controller-2 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a401108cd827 192.168.24.1:8787/tripleoqueens/centos-binary-glance-api:current-tripleo-rdo "/var/lib/docker-p..." 19 minutes ago Exited (1) 19 minutes ago docker-puppet-glance_api [root@overcloud-controller-2 ~]# docker logs docker-puppet-glance_api standard_init_linux.go:178: exec user process caused "text file busy" Since /var/lib/docker-puppet/docker-puppet.sh never changes there is really no need to create it multiple times. Let's just create it once before spawning the multiple docker run commands so we avoid any ETXTBSY errors. Ran 20 successful deployments in sequence with this change applied. Change-Id: I16b19488ce9f1411273459576db76d16b318dacb Closes-Bug: #1760787 |
||
---|---|---|
ci | ||
common | ||
deployed-server | ||
docker | ||
environments | ||
extraconfig | ||
firstboot | ||
network | ||
plan-samples | ||
puppet | ||
releasenotes | ||
roles | ||
sample-env-generator | ||
scripts | ||
tools | ||
tripleo_heat_templates | ||
validation-scripts | ||
zuul.d | ||
.gitignore | ||
.gitreview | ||
.testr.conf | ||
LICENSE | ||
README.rst | ||
all-nodes-validation.yaml | ||
babel.cfg | ||
bindep.txt | ||
bootstrap-config.yaml | ||
capabilities-map.yaml | ||
config-download-software.yaml | ||
config-download-structured.yaml | ||
default_passwords.yaml | ||
hosts-config.yaml | ||
j2_excludes.yaml | ||
lower-constraints.txt | ||
net-config-bond.j2.yaml | ||
net-config-bridge.j2.yaml | ||
net-config-linux-bridge.j2.yaml | ||
net-config-noop.j2.yaml | ||
net-config-static-bridge-with-external-dhcp.j2.yaml | ||
net-config-static-bridge.j2.yaml | ||
net-config-static.j2.yaml | ||
net-config-undercloud.j2.yaml | ||
network_data.yaml | ||
network_data_ganesha.yaml | ||
overcloud-resource-registry-puppet.j2.yaml | ||
overcloud.j2.yaml | ||
plan-environment.yaml | ||
requirements.txt | ||
roles_data.yaml | ||
roles_data_undercloud.yaml | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
README.rst
Team and repository tags
tripleo-heat-templates
Heat templates to deploy OpenStack using OpenStack.
- Free software: Apache License (2.0)
- Documentation: https://docs.openstack.org/tripleo-docs/latest/
- Source: http://git.openstack.org/cgit/openstack/tripleo-heat-templates
- Bugs: https://bugs.launchpad.net/tripleo
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:
- | scn000 | scn001 | scn002 | scn003 | scn004 | scn006 | scn007 | scn009 | non-ha | ovh-ha |
---|---|---|---|---|---|---|---|---|---|---|
openshift |
|
|||||||||
keystone |
|
|
|
|
|
|
|
|
|
|
glance |
|
swift |
|
|
|
|
|
|
||
cinder |
|
iscsi | ||||||||
heat |
|
|
||||||||
ironic |
|
|||||||||
mysql |
|
|
|
|
|
|
|
|
|
|
neutron |
|
|
|
|
|
|
|
|
||
neutron-bgpvpn |
|
|||||||||
ovn |
|
|||||||||
neutron-l2gw |
|
|||||||||
rabbitmq |
|
|
|
|
|
|
|
|
||
mongodb | ||||||||||
redis |
|
|
||||||||
haproxy |
|
|
|
|
|
|
|
|
||
memcached |
|
|
|
|
|
|
|
|
||
pacemaker |
|
|
|
|
|
|
|
|
||
nova |
|
|
|
|
ironic |
|
|
|
||
ntp |
|
|
|
|
|
|
|
|
|
|
snmp |
|
|
|
|
|
|
|
|
|
|
timezone |
|
|
|
|
|
|
|
|
|
|
sahara |
|
|||||||||
mistral |
|
|||||||||
swift |
|
|||||||||
aodh |
|
|
||||||||
ceilometer |
|
|
||||||||
gnocchi |
|
|
||||||||
panko |
|
|
||||||||
barbican |
|
|||||||||
zaqar |
|
|||||||||
ec2api |
|
|||||||||
cephrgw |
|
|||||||||
tacker |
|
|||||||||
congress |
|
|||||||||
cephmds |
|
|||||||||
manila |
|
|||||||||
collectd |
|
|||||||||
fluentd |
|
|||||||||
sensu-client |
|
|||||||||
designate |
|