config/sysinv/sysinv/sysinv/sysinv/puppet
Alyson Deives Pereira c6a41c20a9 Add ZeroMQ RPC backend
This feature adds a new RPC backend for communication between
sysinv-api, sysinv-conductor and sysinv-agent processes.
This backend is implemented using a patched zerorpc library [1],
which is built on top of ZeroMQ and message-pack.
The motivation behind this change is to decouple sysinv from RabbitMQ,
and use a brokerless solution for RPC instead.

The key points are:
- All imports of rpcapi.py are replaced by rpcapiproxy.py, which
  decides the backend to use (rabbitmq or zeromq) according to
  configuration.
- During an upgrade process the rpc service listens to both rabbitmq
  and zeromq. For communication between hosts, the client backend api
  is chosen according to host software version.
- In future versions, the usage of RabbitMQ will no longer be
  necessary and its usage can be removed. I have marked these parts of
  code with "TODO(RPCHybridMode)" to easily track it.

[1] https://review.opendev.org/c/starlingx/integ/+/864310

TEST PLAN:
PASS: Bootstrap and host-unlock on AIO-SX, AIO-Duplex, Standard
PASS: Bootstrap and host-unlock on DC system-controller and subcloud
PASS: Verify sysinv.log and confirm no error occurs in RPC communication
PASS: Perform system cli commands that interacts with sysinv RPCs:
  - system host-cpu-max-frequency-modify
  - system license-install
  - system storage-backend-add ceph-external
  - system host-swact
PASS: Backup & Restore on AIO-SX
PASS: Bootstrap replay (updating mgmt and cluster subnet) on AIO-SX
PASS: Platform upgrade on AIO-DX (22.06 -> 22.12)
PASS: Platform upgrade on AIO-DX+ (22.06 -> 22.12)
PASS: Platform upgrade on AIO-SX (22.06 -> 22.12)

Depends-On: https://review.opendev.org/c/starlingx/tools/+/859576
Depends-On: https://review.opendev.org/c/starlingx/stx-puppet/+/859575
Depends-On: https://review.opendev.org/c/starlingx/ansible-playbooks/+/862609

Story: 2010087
Task: 46444

Change-Id: I5cd61b541a6d8c62628a0f99db0e35af1eae5961
Signed-off-by: Alyson Deives Pereira <alyson.deivespereira@windriver.com>
Signed-off-by: Eduardo Juliano Alberti <eduardo.alberti@windriver.com>
2022-11-24 13:28:01 -03:00
..
__init__.py Open vSwitch integration with host and configuration framework 2018-06-14 16:03:52 -05:00
barbican.py Generate admin_url to enable https for admin endpoints 2020-04-20 17:46:47 -04:00
base.py Expose the Hyper-Threading (HT) processor feature 2022-10-10 10:57:32 -03:00
ceph.py Non applicable nautilus upgrade code removed 2022-08-09 11:40:01 +00:00
certalarm.py Add cert-alarm service 2021-07-22 08:29:23 -04:00
certmon.py Setup certmon service configuration 2020-07-20 13:16:54 -04:00
common.py Add runtime reconfiguration of kubelet 2022-06-09 17:59:35 -04:00
dcdbsync.py Copy hieradata on openstack when upgrading 2022-03-03 19:39:42 +00:00
dcmanager.py Configure dcmanager user for endpoint_cache 2020-06-18 22:00:20 -04:00
dcorch.py Configure internal/admin endpoints for vim on DC 2022-11-10 00:56:54 +00:00
device.py Fix yaml generation for fpga_fec_device_config 2022-05-06 11:02:31 -04:00
dockerdistribution.py Support authenticated registries 2019-10-02 11:30:43 -04:00
fm.py Merge "Remove puppet entry related to host-based snmp" 2021-01-25 16:32:22 +00:00
helm.py Configure SQL as helm storage backend 2021-01-08 01:05:07 -05:00
horizon.py Fix: "import" issue for Python 2/3 compatible code 2018-12-25 08:58:03 +08:00
interface.py Debian: fix VLAN creation in duplex-direct mode 2022-10-14 11:36:51 +00:00
inventory.py Add ZeroMQ RPC backend 2022-11-24 13:28:01 -03:00
keystone.py Removing unnecessary IP for platform-nfs. 2022-10-20 13:32:22 +00:00
kubernetes.py Add retry during k8s api server down 2022-11-22 13:11:28 -03:00
ldap.py Configure sssd for subcloud to access central openldap 2022-10-18 20:26:28 -04:00
mtce.py Cleanup ceilometer from bare metal code 2019-06-13 10:29:18 -05:00
networking.py Removing unnecessary IP for platform-nfs. 2022-10-20 13:32:22 +00:00
nfv.py Copy hieradata on openstack when upgrading 2022-03-03 19:39:42 +00:00
openstack.py Configure SQL as helm storage backend 2021-01-08 01:05:07 -05:00
ovs.py Modify OVS puppet plugin and host vswitch hugepages allocation logic 2021-12-14 14:23:32 -03:00
patching.py Generate admin_url to enable https for admin endpoints 2020-04-20 17:46:47 -04:00
platform.py Merge "Implementation of cli command and API to enable/disable apparmor module" 2022-11-07 22:28:03 +00:00
puppet.py Copy hieradata on openstack when upgrading 2022-03-03 19:39:42 +00:00
rook.py Introduce rook ceph 2021-01-27 06:46:02 +08:00
service_parameter.py Kubernetes custom configuration support: runtime. 2022-09-13 15:50:22 -04:00
smapi.py Removing rpm as a dependency for sysinv 2021-11-04 11:37:15 -04:00
sssd.py Merge "Enable enumerate for local openldap domain" 2022-11-14 18:51:58 +00:00
storage.py sysinv: Add support for mpath device 2022-05-24 08:25:18 -04:00