mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 21:00:22 -07:00
Add feature to expose vars/defaults with include/import_role (#41330)
* First pass at making 'private' work on include_role, imports are always public * Prevent dupe task execution and overwriting handlers * New functionality will use public instead of deprecated private * Add tests for public exposure * Validate vars before import/include to ensure they don't expose too early * Add porting guide docs about public argument and change to import_role * Add additional docs about public and vars exposure to module docs * Insert role handlers at parse time, exposing them globally
This commit is contained in:
parent
5864871fc1
commit
27b4d7ed31
23 changed files with 145 additions and 9 deletions
|
@ -56,6 +56,9 @@ options:
|
|||
default: 'no'
|
||||
notes:
|
||||
- Handlers are made available to the whole play.
|
||||
- Variables defined in C(vars) and C(default) for the role are exposed at playbook parsing time. Due to this,
|
||||
these variables will be accessible to roles and tasks executed before the the location of the C(import_role) task.
|
||||
- Unlike C(include_role) variable exposure is not configurable, and will always be exposed.
|
||||
'''
|
||||
|
||||
EXAMPLES = """
|
||||
|
|
|
@ -55,8 +55,15 @@ options:
|
|||
description:
|
||||
- This option is a no op, and the functionality described in previous versions was not implemented. This
|
||||
option will be removed in Ansible v2.8.
|
||||
public:
|
||||
description:
|
||||
- This option dictates whether the role's C(vars) and C(defaults) are exposed to the playbook. If set to C(yes)
|
||||
the variables will be available to tasks following the C(include_role) task. This functionality differs from
|
||||
standard variable exposure for roles listed under the C(roles) header or C(import_role) as they are exposed at
|
||||
playbook parsing time, and available to earlier roles and tasks as well.
|
||||
type: bool
|
||||
default: 'no'
|
||||
version_added: '2.7'
|
||||
notes:
|
||||
- Handlers are made available to the whole play.
|
||||
- Before Ansible 2.4, as with C(include), this task could be static or dynamic, If static, it implied that it won't
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue