Metadata-Version: 2.4
Name: os-collect-config
Version: 14.0.2.dev8
Summary: Collect and cache metadata, run hooks on changes.
Home-page: https://opendev.org/openstack/os-collect-config
Author: OpenStack
Author-email: openstack-discuss@lists.openstack.org
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
License-File: LICENSE
Requires-Dist: pbr>=2.0.0
Requires-Dist: python-keystoneclient>=3.8.0
Requires-Dist: python-heatclient>=1.10.0
Requires-Dist: python-zaqarclient>=1.0.0
Requires-Dist: requests>=2.14.2
Requires-Dist: lxml>=3.4.1
Requires-Dist: oslo.config>=5.2.0
Requires-Dist: oslo.log>=3.36.0
Requires-Dist: dogpile.cache>=0.6.2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

=================
os-collect-config
=================

.. image:: https://governance.openstack.org/tc/badges/os-collect-config.svg

.. Change things from this point on

-------------------------------------------------
Collect configuration from cloud metadata sources
-------------------------------------------------

What does it do?
================

It collects data from defined configuration sources and runs a defined
hook whenever the metadata has been changed.

.. image:: os-collect-config-and-friends.svg

[#update_svg]_

Usage
=====

You must define what sources to collect configuration data from in
*/etc/os-collect-config.conf*.

The format of this file is::

  [DEFAULT]
  command=os-refresh-config

  [cfn]
  metadata_url=http://192.0.2.99:8000/v1/
  access_key_id = ABCDEFGHIJLMNOP01234567890
  secret_access_key = 01234567890ABCDEFGHIJKLMNOP
  path = MyResource
  stack_name = my.stack

These sources will be polled and whenever any of them is changed,
*default.command* will be run. A file will be written to the cache
dir, os_config_files.json, which will be a json list of the file paths
to the current copy of each metadata source. This list will also be
set as a colon separated list in the environment variable
*OS_CONFIG_FILES* for the command that is run. So in the example
above, *os-refresh-config* would be executed with something like this
in *OS_CONFIG_FILES*::

  /var/lib/os-collect-config/ec2.json:/var/lib/os-collect-config/cfn.json

The previous version of the metadata from a source (if available) is present at $FILENAME.last.

When run without a command, the metadata sources are printed as a json document.

Quick Start
===========

Install::

  sudo pip install -U git+https://opendev.org/openstack/os-collect-config.git

Run it on an OpenStack instance with access to ec2 metadata::

  os-collect-config

That should print out a json representation of the entire ec2 metadata tree.

.. [#update_svg] Recommend using LibreOffice draw to edit os-collect-config-and-friends.odg and regenerate the svg file. Alternatively edit the svg directly, but remove the .odg file if that is done.

