blob: 948c76543adaebd6836aa543df3936fe202fbf72 [file] [log] [blame]
{#- 'infra_config_classes' list object is dynamically generated from 'roles' to add on the cfg node #}
{%- set infra_config_classes = [] %}
{#- 'global_metadata' is a global collection of objects shared between nodes #}
{%- set global_metadata = {} %}
{%- set common_roles = ['_linux_network_interface', '_metadata_process', '_classes', '_overrides'] %}
parameters:
_param:
_esc: $
reclass:
storage:
node:
{%- for inventory_node_name, node in nodes.items()|sort %}
{%- set node_name = inventory_node_name.split('.')[0] %}
{{ node['reclass_storage_name'] }}:
{#-#}
{#- 'local_metadata' is to collect the data from different roles in a single place inside the node #}
{%- set local_metadata = {} %}
{#- 'params' dict object is dynamically generated from 'roles' to add on the node #}
{%- set params = {} %}
{#-#}
{%- macro register_metaparam(param_name, role_name) %}
{#- Add the <role_name> into the list attached to <param_name> #}
{#- to control that the <param_name> is not spreaded across incompatible roles #}
{%- set _ = local_metadata.update({param_name: local_metadata.get(param_name, []) + [role_name]}) %}
{%- endmacro %}
{#-#}
{%- macro set_param(param_name, param_value) %}
{#- Set a parameter for '_param' dict for the node #}
{%- set _ = params.update({param_name: param_value}) %}
{%- endmacro %}
{#-#}
classes:
{#- Common dynamic roles are added to each node #}
{#- 'overrides' must be the very last role for each node #}
{%- for role in node.get('roles', []) + common_roles %}
{%- include ("{# roles #}/" + role) %}
{%- endfor %}
{%- if params %}
params:
{%- for param_name, param in params.items() %}
{{ param_name }}: {{ param }}
{%- endfor %}
{%- endif %}
name: {{ node_name }}
domain: ${_param:cluster_domain}
{%- endfor %}
classes:
# Enable root and *ALL* users access
- system.openssh.server.team.all
{%- for infra_config_class in infra_config_classes %}
- {{ infra_config_class }}
{%- endfor %}