Collect and cache metadata, run hooks on changes.
Go to file
Charles Short 48f03e53dc Change python3.5 job to python3.7 job on Stein+
python3.5 was the only supported python3 version on Xenial, now that we have
Bionic Beaver nodes that support python3.7, lets switch to testing with
python3.7 in addition with python3.6 in Stein and beyond.
See ML discussion here [1] for context. [

[1] http://lists.openstack.org/pipermail/openstack-dev/2018-October/135632.html

Change-Id: I43ee5f72cd20d8f95f6a258dc9e4da0c799c684b
Signed-off-by: Charles Short <chucks@redhat.com>
Story: #2004073
2019-02-14 15:39:03 +01:00
os_collect_config Don't ignore SIGPIPE 2018-09-28 16:33:11 +00:00
zuul.d Change python3.5 job to python3.7 job on Stein+ 2019-02-14 15:39:03 +01:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:41:46 +00:00
.gitignore Switch to stestr 2018-07-10 18:53:52 +07:00
.gitreview Update stackforge references to openstack 2013-08-17 22:59:30 -04:00
.stestr.conf Switch to stestr 2018-07-10 18:53:52 +07:00
LICENSE Aligned tests with OpenStack standards. 2013-03-28 03:40:38 +01:00
MANIFEST.in Ensure that README file makes it into the tarball 2013-07-07 11:56:08 -04:00
README.rst Update links in README 2018-03-02 18:01:13 +08:00
os-collect-config-and-friends.odg Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
os-collect-config-and-friends.svg Add diagram to os-collect-config README.rst 2014-03-26 09:13:19 -07:00
requirements.txt uncap eventlet 2018-04-11 11:52:27 -04:00
setup.cfg Change openstack-dev to openstack-discuss 2018-12-05 00:06:06 +08:00
setup.py Updated from global requirements 2017-03-06 01:16:53 +00:00
test-requirements.txt Switch to stestr 2018-07-10 18:53:52 +07:00
tox.ini Change python3.5 job to python3.7 job on Stein+ 2019-02-14 15:39:03 +01:00

README.rst

Team and repository tags

image

os-collect-config

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

1

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+git://git.openstack.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.


  1. 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.↩︎