Steven Webster d74a25a7e7 Use IP address over FQDN for dcmanager rabbit/db connections
In the past few months, _most_ StarlingX services have moved
from static IP addressing to FQDN resolution, in support of
the management network reconfig feature.

While doing DC scalability testing, it was found that a transient
domain resolution (controller.internal) issue was found after
adding approximately 250 subclouds to the system and involved
the rabbitmq/RPC subsystem.

The error message returned was similar to:

"OSError: failed to resolve broker hostname"

The rabbitmq/amqp library is calling a _connect() function,
which in turn calls the python socket getaddrinfo()

Multiple attemps were made to reproduce the scenario in a
non-scaled lab by stressing the getaddrinfo(), getting
dnsmasq up to ~40 CPU usage, but the same error was not
returned.

Testing was done on the DC scale lab by manually changing the
rabbit and DB config files and this confirmed that using the static
floating IP (avoiding domain name resolution all-together
resolved the issue)

It was decided to revert the FQDN aspect of the dcmanager
and dcorch modules for now, as the management network
reconfiguration feature would not even apply to an
AIO-DX system controller at this time.  This may be
re-evaluated in the future at which point a deeper dive
into the rabbit/RPC usage should be considered.

Testing:

- Install an AIO-DX system controller and install a subcloud.
  Ensure the subcloud is managed and online.
- Ensure the dcmanager.conf and dcorch.conf commands use an IP
  address in their transport_url and database connection
  parameters.

Depends-On: https://review.opendev.org/c/starlingx/config/+/932013

Story: 2010722
Task: 48447

Change-Id: Icd067441dd08321936eb03498ff65241fac0010e
2024-10-09 22:24:03 -04:00
2019-09-09 14:52:12 -05:00
2023-04-28 12:38:53 -04:00
2021-02-19 12:14:38 -06:00
2019-09-09 14:52:12 -05:00
2019-09-09 14:52:12 -05:00

stx-puppet

The starlingx/stx-puppet repository handles the Puppet service1.

The Puppet service runs during bootstrap, and at every reboot, to provide a consistent configuration across the StarlingX system nodes.

This repository is not intended to be developed standalone, but rather as part of the StarlingX Source System, which is defined by the StarlingX manifest2.

References


  1. https://www.puppet.com↩︎

  2. https://opendev.org/starlingx/manifest.git↩︎

Description
StarlingX Puppet modules and manifests
Readme 20 MiB
Languages
Puppet 58.6%
Python 21.6%
HTML 7.5%
Shell 7%
Ruby 4.7%
Other 0.6%