Add template_dir
to config
Allow global environment contain global template files. This can lead to further access to global template files. For example a template file `my_tmpl.yaml` under global template directory (`/etc/heat/templates` by default) can be directly accessed in stack with `get_file`. Partial-Bug: #1454401 Change-Id: I0a1c9d50441f88144980214fbc8e6757193cfb41
This commit is contained in:
parent
5b2bcd8b2e
commit
83966b7bde
@ -70,6 +70,28 @@ If the :file:`my_env.yaml` file from the example above had been put in the
|
|||||||
|
|
||||||
heat stack-create my_stack -P "some_parm=bla" -f my_tmpl.yaml
|
heat stack-create my_stack -P "some_parm=bla" -f my_tmpl.yaml
|
||||||
|
|
||||||
|
Global templates
|
||||||
|
----------------
|
||||||
|
A global template directory allows files to be pre-loaded in the global
|
||||||
|
environment. A global template is determined by your cloud operator.
|
||||||
|
An entry in the user template takes precedence over the global environment.
|
||||||
|
OpenStack includes a default global template, but your cloud operator
|
||||||
|
can add additional template entries.
|
||||||
|
|
||||||
|
The cloud operator can add new global templates by putting template
|
||||||
|
files in a configurable directory wherever the Orchestration engine runs.
|
||||||
|
The configuration variable is named ``template_dir`` and is found in the
|
||||||
|
``[DEFAULT]`` section of :file:`/etc/heat/heat.conf`. The default for
|
||||||
|
that directory is :file:`/etc/heat/templates`. Its contents are
|
||||||
|
combined in whatever order the shell delivers them when the service
|
||||||
|
starts up, which is the time when these files are read.
|
||||||
|
If the :file:`my_tmpl.yaml` file from the example below has been put in the
|
||||||
|
``template_dir``, other templates which we used to create stacks could
|
||||||
|
contain following way to include `my_tmpl.yaml` in it::
|
||||||
|
|
||||||
|
resourceA:
|
||||||
|
type: {get_file: "my_tmpl.yaml"}
|
||||||
|
|
||||||
Usage examples
|
Usage examples
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -96,6 +96,9 @@ engine_opts = [
|
|||||||
cfg.StrOpt('environment_dir',
|
cfg.StrOpt('environment_dir',
|
||||||
default='/etc/heat/environment.d',
|
default='/etc/heat/environment.d',
|
||||||
help=_('The directory to search for environment files.')),
|
help=_('The directory to search for environment files.')),
|
||||||
|
cfg.StrOpt('template_dir',
|
||||||
|
default='/etc/heat/templates',
|
||||||
|
help=_('The directory to search for template files.')),
|
||||||
cfg.StrOpt('deferred_auth_method',
|
cfg.StrOpt('deferred_auth_method',
|
||||||
choices=['password', 'trusts'],
|
choices=['password', 'trusts'],
|
||||||
default='trusts',
|
default='trusts',
|
||||||
|
@ -102,9 +102,12 @@ class HeatTestCase(testscenarios.WithScenarios,
|
|||||||
project_dir = os.path.abspath(os.path.join(mod_dir, '../../'))
|
project_dir = os.path.abspath(os.path.join(mod_dir, '../../'))
|
||||||
env_dir = os.path.join(project_dir, 'etc', 'heat',
|
env_dir = os.path.join(project_dir, 'etc', 'heat',
|
||||||
'environment.d')
|
'environment.d')
|
||||||
|
template_dir = os.path.join(project_dir, 'etc', 'heat',
|
||||||
|
'templates')
|
||||||
|
|
||||||
cfg.CONF.set_default('environment_dir', env_dir)
|
cfg.CONF.set_default('environment_dir', env_dir)
|
||||||
cfg.CONF.set_override('error_wait_time', None, enforce_type=True)
|
cfg.CONF.set_override('error_wait_time', None, enforce_type=True)
|
||||||
|
cfg.CONF.set_default('template_dir', template_dir)
|
||||||
self.addCleanup(cfg.CONF.reset)
|
self.addCleanup(cfg.CONF.reset)
|
||||||
|
|
||||||
messaging.setup("fake://", optional=True)
|
messaging.setup("fake://", optional=True)
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Add `template_dir` to config. Normally heat has template directory
|
||||||
|
`/etc/heat/templates`. This change makes it more official. In the future,
|
||||||
|
it is possible to implement features like access templates directly from
|
||||||
|
global template environment.
|
Loading…
Reference in New Issue
Block a user