tripleo-image-elements/elements/os-refresh-config
Jon-Paul Sullivan 1c998eb93f Create pip manifest files of installed packages
Create the pip-manifest element to encapsulate the saving and use
of pip manifest files.

Ensure that it installs prior to any elements that should be able
to use it.

Write pip manifest files for installs in:
    * os-svc-install
    * os-apply-config
    * os-collect-config
    * os-refresh-config
    * openstack-clients

Enable using a manifest file to reinstall exact versions of
packages in a subsequent run through the DIB_PIP_MANIFEST_*
environment variables.

Change-Id: I4d4ab5921c534727b48cb9969ec8ecfd2c26e6ed
2014-03-25 12:22:59 +00:00
..
install.d Create pip manifest files of installed packages 2014-03-25 12:22:59 +00:00
os-refresh-config Add default to metadata in 99-refresh-completed 2013-11-26 13:26:24 +00:00
element-deps Create pip manifest files of installed packages 2014-03-25 12:22:59 +00:00
README.md Correct os-refresh-config README.md typo and format 2013-11-28 09:44:04 +08:00

Install os-refresh-config

os-refresh-config uses dib-run-parts to run scripts in a pre-defined set of directories. Its intended purpose is to quiesce (pre-configure.d), configure (configure.d), migrate (migration.d), and then activate (post-configure.d) a configuration on first boot or in response to Heat Metadata changes.

To cause a script to be run on every os-refresh-config run, install it into one of the following directories:

/opt/stack/os-config-refresh/pre-configure.d
/opt/stack/os-config-refresh/configure.d
/opt/stack/os-config-refresh/migration.d
/opt/stack/os-config-refresh/post-configure.d

If you want to have os-refresh-config run on any updates to a particular Resource in the heat stack, you will need at the minimum the following snippet of json in this instance's Metadata:

{
    "OpenStack::Config": {
        "heat": {
            "access_key_id": {"Ref": "ApiKeyResource"},
            "secret_key": {"Fn::GetAtt": [ "ApiKeyResource", "SecretAccessKey" ]},
            "refresh": [ {"resource": "SomeResource"} ],
            "stack": {Ref: 'AWS::Stack'},
            "region": {Ref: 'AWS::Region'}
        }
    }
}

If you would like to signal a wait condition at the end of post-configure.d, a generic name of 'completion-handle' can be used like so:

{
    "completion-handle": {"Ref": "CompletionHandleName"}
}