kayobe/setup.cfg
Mark Goddard 2648f48746 Make setup module arguments configurable
Ansible facts can have a large impact on the performance of the Ansible
control host. This patch introduces some control over which facts are
gathered (kayobe_ansible_setup_gather_subset) and which facts are stored
(kayobe_ansible_setup_filter). By default we do not change the default
values of these arguments to the setup module. The flexibility of these
arguments is limited, but they do provide enough for a large performance
improvement in a typical moderate to large OpenStack cloud.

In particular, the large complex dict fact for each interface has a
large effect, and on an OpenStack controller or hypervisor there may be
many virtual interfaces. We can use the kayobe_ansible_setup_filter
variable to help:

    kayobe_ansible_setup_filter: 'ansible_[!qt]*'

This causes Ansible to collect but not store facts matching that
pattern, which includes the virtual interface facts. Currently we are
not referencing other facts matching the pattern within Kayobe.
Note that including the 'ansible_' prefix causes meta facts module_setup
and gather_subset to be filtered, but this seems to be the only way to
get a good match on the interface facts. To work around this, we use
ansible_facts rather than module_setup to detect whether facts exist in
the cache.

The exact improvement will vary, but has been reported to be as large as
18x on systems with many virtual interfaces.

This change also introduces a new command to gather facts for Kayobe &
Kolla Ansible on demand, 'kayobe overcloud facts gather'. This can be
used to populate a fact cache.

Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/794610
Story: 2007993
Task: 42586

Change-Id: I5ce3c734433e1682ee942867505468c57440e689
2021-09-27 09:31:09 +00:00

208 lines
10 KiB
INI

[metadata]
name = kayobe
summary = Deployment of OpenStack to bare metal using OpenStack kolla and bifrost
description_file =
README.rst
author = OpenStack
author_email = openstack-discuss@lists.openstack.org
home_page = https://docs.openstack.org/kayobe/latest/
python_requires = >=3.6
license = Apache License, Version 2.0
classifier =
Environment :: OpenStack
Intended Audience :: Information Technology
Intended Audience :: System Administrators
License :: OSI Approved :: Apache Software License
Operating System :: POSIX :: Linux
Programming Language :: Python
Programming Language :: Python :: Implementation :: CPython
Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.7
Programming Language :: Python :: 3.8
[files]
packages =
kayobe
data_files =
share/kayobe/ansible = ansible/*
share/kayobe/doc = doc/*
share/kayobe/etc_examples = etc/*
share/kayobe = setup.cfg
share/kayobe = requirements.yml
[entry_points]
console_scripts=
kayobe = kayobe.cmd.kayobe:main
kayobe-vault-password-helper = kayobe.cmd.kayobe_vault_password_helper:main
kayobe.cli=
baremetal_compute_inspect = kayobe.cli.commands:BaremetalComputeInspect
baremetal_compute_manage = kayobe.cli.commands:BaremetalComputeManage
baremetal_compute_provide = kayobe.cli.commands:BaremetalComputeProvide
baremetal_compute_rename = kayobe.cli.commands:BaremetalComputeRename
baremetal_compute_update_deployment_image = kayobe.cli.commands:BaremetalComputeUpdateDeploymentImage
baremetal_compute_serial_console_enable = kayobe.cli.commands:BaremetalComputeSerialConsoleEnable
baremetal_compute_serial_console_disable = kayobe.cli.commands:BaremetalComputeSerialConsoleDisable
control_host_bootstrap = kayobe.cli.commands:ControlHostBootstrap
control_host_upgrade = kayobe.cli.commands:ControlHostUpgrade
configuration_dump = kayobe.cli.commands:ConfigurationDump
environment_create = kayobe.cli.commands:EnvironmentCreate
kolla_ansible_run = kayobe.cli.commands:KollaAnsibleRun
network_connectivity_check = kayobe.cli.commands:NetworkConnectivityCheck
overcloud_bios_raid_configure = kayobe.cli.commands:OvercloudBIOSRAIDConfigure
overcloud_container_image_build = kayobe.cli.commands:OvercloudContainerImageBuild
overcloud_container_image_pull = kayobe.cli.commands:OvercloudContainerImagePull
overcloud_database_backup = kayobe.cli.commands:OvercloudDatabaseBackup
overcloud_database_recover = kayobe.cli.commands:OvercloudDatabaseRecover
overcloud_deployment_image_build = kayobe.cli.commands:OvercloudDeploymentImageBuild
overcloud_deprovision = kayobe.cli.commands:OvercloudDeprovision
overcloud_facts_gather = kayobe.cli.commands:OvercloudFactsGather
overcloud_hardware_inspect = kayobe.cli.commands:OvercloudHardwareInspect
overcloud_host_configure = kayobe.cli.commands:OvercloudHostConfigure
overcloud_host_package_update = kayobe.cli.commands:OvercloudHostPackageUpdate
overcloud_host_command_run = kayobe.cli.commands:OvercloudHostCommandRun
overcloud_host_upgrade = kayobe.cli.commands:OvercloudHostUpgrade
overcloud_introspection_data_save = kayobe.cli.commands:OvercloudIntrospectionDataSave
overcloud_inventory_discover = kayobe.cli.commands:OvercloudInventoryDiscover
overcloud_post_configure = kayobe.cli.commands:OvercloudPostConfigure
overcloud_provision = kayobe.cli.commands:OvercloudProvision
overcloud_service_configuration_save = kayobe.cli.commands:OvercloudServiceConfigurationSave
overcloud_service_configuration_generate = kayobe.cli.commands:OvercloudServiceConfigurationGenerate
overcloud_service_deploy = kayobe.cli.commands:OvercloudServiceDeploy
overcloud_service_deploy_containers = kayobe.cli.commands:OvercloudServiceDeployContainers
overcloud_service_destroy = kayobe.cli.commands:OvercloudServiceDestroy
overcloud_service_prechecks = kayobe.cli.commands:OvercloudServicePrechecks
overcloud_service_reconfigure = kayobe.cli.commands:OvercloudServiceReconfigure
overcloud_service_stop = kayobe.cli.commands:OvercloudServiceStop
overcloud_service_upgrade = kayobe.cli.commands:OvercloudServiceUpgrade
overcloud_swift_rings_generate = kayobe.cli.commands:OvercloudSwiftRingsGenerate
physical_network_configure = kayobe.cli.commands:PhysicalNetworkConfigure
playbook_run = kayobe.cli.commands:PlaybookRun
seed_container_image_build = kayobe.cli.commands:SeedContainerImageBuild
seed_deployment_image_build = kayobe.cli.commands:SeedDeploymentImageBuild
seed_host_configure = kayobe.cli.commands:SeedHostConfigure
seed_host_package_update = kayobe.cli.commands:SeedHostPackageUpdate
seed_host_command_run = kayobe.cli.commands:SeedHostCommandRun
seed_host_upgrade = kayobe.cli.commands:SeedHostUpgrade
seed_hypervisor_host_configure = kayobe.cli.commands:SeedHypervisorHostConfigure
seed_hypervisor_host_command_run = kayobe.cli.commands:SeedHypervisorHostCommandRun
seed_hypervisor_host_package_update = kayobe.cli.commands:SeedHypervisorHostPackageUpdate
seed_hypervisor_host_upgrade = kayobe.cli.commands:SeedHypervisorHostUpgrade
seed_service_deploy = kayobe.cli.commands:SeedServiceDeploy
seed_service_upgrade = kayobe.cli.commands:SeedServiceUpgrade
seed_vm_deprovision = kayobe.cli.commands:SeedVMDeprovision
seed_vm_provision = kayobe.cli.commands:SeedVMProvision
kayobe.cli.baremetal_compute_inspect =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.baremetal_compute_manage =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.baremetal_compute_provide =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.baremetal_compute_rename =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.baremetal_compute_update_deployment_image =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.baremetal_compute_serial_console_enable =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.baremetal_compute_serial_console_disable =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.control_host_bootstrap =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.control_host_upgrade =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.configuration_dump =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.kolla_ansible_run =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.network_connectivity_check =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_bios_raid_configure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_container_image_build =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_container_image_pull =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_database_backup =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_database_recover =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_deployment_image_build =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_deprovision =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_facts_gather =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_hardware_inspect =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_host_configure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_host_package_update =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_host_command_run =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_host_upgrade =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_introspection_data_save =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_inventory_discover =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_post_configure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_provision =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_configuration_save =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_configuration_generate =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_deploy =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_deploy_containers =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_destroy =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_prechecks =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_reconfigure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_stop =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_service_upgrade =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.overcloud_swift_rings_generate =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.physical_network_configure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.playbook_run =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_container_image_build =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_deployment_image_build =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_host_configure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_host_package_update =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_host_command_run =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_host_upgrade =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_hypervisor_host_configure =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_hypervisor_host_command_run =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_hypervisor_host_package_update =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_hypervisor_host_upgrade =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_service_deploy =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_service_upgrade =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_vm_deprovision =
hooks = kayobe.cli.commands:HookDispatcher
kayobe.cli.seed_vm_provision =
hooks = kayobe.cli.commands:HookDispatcher