config/sysinv/sysinv/sysinv/sysinv/puppet
Don Penney c138575062 Ceph initialization on AIO is done only in 'controller' manifests
On AIO deployments puppet is run twice with two different manifests:
1. 'controller': to configure controller services
2. 'worker': to configure worker services.

Ceph is configured when 'controller' manifests are applied, there is
no need to run them a second time, when 'worker' set is applied.

Commit adds new puppet classes to encapsulate ceph configuration
based on node personality and adds a check to not apply it a 2nd
time on controllers.

If the ceph manifests are executed a second time then we get into
a racing issue between SM's process monitoring and 'worker' puppet
manifests triggering a restart of ceph-mon as part of reconfiguration

After a reboot on AIO, SM takes control of ceph-mon monitoring
after 'controller' puppet manifests finish applying. As part of this,
SM monitors processes death notification and gets the pid from the
.pid file. And periodically executes '/etc/init.d/ceph status
mon.controller' for a more advanced monitoring.

When the 'worker' manifests are executed, they trigger a restart
of ceph-mon through /etc/init.d/ceph restart that has two steps: 'stop'
in which ceph-mon is stopped, and 'start' in which it is restarted.

In the first step, stopping ceph-mon leads to the death of ceph-mon
process and removal of its PID file. This is promptly detected by
SM which immediately triggers a start of ceph-mon that creates a
new pid file. Problem is that ceph-mon was already in a restart,
and at the end of the 'stop' step the init script cleans up the
new pid file instead of the old.

This leads to controllers swacting a couple of times before the system
gets rid of the rogue process.

Change-Id: I2a0df3bab716a553e71e322e1515bee2bb2f700d
Co-authored-by: Ovidiu Poncea <ovidiu.poncea@windriver.com>
Story: 2002844
Task: 29214
Signed-off-by: Ovidiu Poncea <ovidiu.poncea@windriver.com>
2019-02-10 21:22:41 +02:00
..
__init__.py Open vSwitch integration with host and configuration framework 2018-06-14 16:03:52 -05:00
aodh.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
barbican.py Add Barbican bootstrap and runtime manifests 2019-01-11 13:33:00 -05:00
base.py Kubernetes Cluster Network Configuration 2019-01-09 12:41:25 -05:00
ceilometer.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
ceph.py Ceph initialization on AIO is done only in 'controller' manifests 2019-02-10 21:22:41 +02:00
cinder.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
common.py Ceph for standard: System Inventory CLI, API, DB 2019-01-16 18:12:15 +02:00
dcmanager.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
dcorch.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
device.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
fm.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
glance.py Enable python3.5 sysinv unit test 2019-01-30 08:51:07 +08:00
gnocchi.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
heat.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
horizon.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
interface.py Fix multi-net interface configuration 2019-02-01 09:21:26 -05:00
inventory.py Add Barbican bootstrap and runtime manifests 2019-01-11 13:33:00 -05:00
ironic.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
keystone.py Enable python3.5 sysinv unit test 2019-01-30 08:51:07 +08:00
kubernetes.py Kubernetes Cluster Network Configuration 2019-01-09 12:41:25 -05:00
ldap.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
magnum.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
mtce.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
murano.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
networking.py Fix mtu configuration for dns and nfs 2019-02-01 09:54:44 -05:00
neutron.py Create DataNetworks modelling in System Configuration 2019-01-22 17:43:45 -05:00
nfv.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
nova.py Create DataNetworks modelling in System Configuration 2019-01-22 17:43:45 -05:00
openstack.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
ovs.py Create DataNetworks modelling in System Configuration 2019-01-22 17:43:45 -05:00
panko.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
patching.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
platform.py Fix mtu configuration for dns and nfs 2019-02-01 09:54:44 -05:00
puppet.py Store puppet config in context 2018-12-18 10:45:13 -05:00
service_parameter.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
smapi.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
storage.py Create docker-lv in the automatically created ctgs-vg volume group 2019-01-07 20:03:07 -05:00
swift.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00