Add new node attribute 'classes:'
'classes:' allow to attach additional classes from 'system'
and 'service' models; or from 'cluster' model in the following
format:
- cluster.${_param:cluster_name}....
Change-Id: I357c5ed3f06d666a4c5f9e7318d651c404eca139
diff --git a/README.md b/README.md
index 70b50c1..d22da9b 100644
--- a/README.md
+++ b/README.md
@@ -152,6 +152,21 @@
role: bond1_ab_ovs_floating
```
+Extra classes example:
+```
+nodes:
+ cfg01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: infra_config_node01
+ classes:
+ - cluster.${_param:cluster_name}.infra.config
+ - system.openssh.client.lab
+
+ ctl01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_control_node01
+ classes:
+ - system.openssh.server.team.lab
+```
+
TODO
----
* Address plan: ability to specify L3 network pools and generate address metadata for nodes from specified pools
diff --git a/inventory_examples/reduced_footprint_with_cfg01.yaml b/inventory_examples/reduced_footprint_with_cfg01.yaml
new file mode 100644
index 0000000..290e515
--- /dev/null
+++ b/inventory_examples/reduced_footprint_with_cfg01.yaml
@@ -0,0 +1,167 @@
+nodes:
+ cfg01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: infra_config_node01
+ roles:
+ - infra_config
+ - linux_system_codename_xenial
+ classes:
+ - system.openssh.client.lab
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ ctl01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_control_node01
+ roles:
+ - infra_kvm
+ - openstack_control_leader
+ - openstack_database_leader
+ - openstack_message_queue
+ - features_designate_pool_manager_database
+ - features_designate_pool_manager
+ - features_designate_pool_manager_keystone
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ ctl02.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_control_node02
+ roles:
+ - infra_kvm
+ - openstack_control
+ - openstack_database
+ - openstack_message_queue
+ - features_designate_pool_manager_database
+ - features_designate_pool_manager
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ ctl03.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_control_node03
+ roles:
+ - infra_kvm
+ - openstack_control
+ - openstack_database
+ - openstack_message_queue
+ - features_designate_pool_manager_database
+ - features_designate_pool_manager
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ prx01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_proxy_node01
+ roles:
+ - openstack_proxy
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ mon01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: stacklight_server_node01
+ roles:
+ - stacklightv2_server_leader
+ - stacklight_telemetry_leader
+ - stacklight_log_leader_v2
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ mon02.mcp11-ovs-dpdk.local:
+ reclass_storage_name: stacklight_server_node02
+ roles:
+ - stacklightv2_server
+ - stacklight_telemetry
+ - stacklight_log
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ mon03.mcp11-ovs-dpdk.local:
+ reclass_storage_name: stacklight_server_node03
+ roles:
+ - stacklightv2_server
+ - stacklight_telemetry
+ - stacklight_log
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+
+ # Generator-based computes. For compatibility only
+ cmp<<count>>.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_compute_rack01
+ roles:
+ - openstack_compute
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+ ens5:
+ role: bond0_ab_ovs_vxlan_mesh
+ ens6:
+ role: bond1_ab_ovs_floating
+
+ gtw01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_gateway_node01
+ roles:
+ - openstack_gateway
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+ ens5:
+ role: bond0_ab_ovs_vxlan_mesh
+ ens6:
+ role: bond1_ab_ovs_floating
+
+ dns01.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_dns_node01
+ roles:
+ - features_designate_pool_manager_dns
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+ single_address: ${_param:openstack_dns_node01_address}
+
+ dns02.mcp11-ovs-dpdk.local:
+ reclass_storage_name: openstack_dns_node02
+ roles:
+ - features_designate_pool_manager_dns
+ - linux_system_codename_xenial
+ interfaces:
+ ens3:
+ role: single_dhcp
+ ens4:
+ role: single_ctl
+ single_address: ${_param:openstack_dns_node02_address}
diff --git "a/\173\043 roles \043\175/_classes" "b/\173\043 roles \043\175/_classes"
new file mode 100644
index 0000000..34a02f5
--- /dev/null
+++ "b/\173\043 roles \043\175/_classes"
@@ -0,0 +1,12 @@
+{#-
+parameters:
+ reclass:
+ storage:
+ node:
+ <reclass_storage_node_name>:
+ classes:
+ # list of extra classes provided from the context file
+#}
+ {%- for class in node.get('classes', []) %}
+ - {{ class }}
+ {%- endfor %}
\ No newline at end of file
diff --git "a/\173\173 cookiecutter._env_name \175\175/init.yml" "b/\173\173 cookiecutter._env_name \175\175/init.yml"
index b2d4978..948c765 100644
--- "a/\173\173 cookiecutter._env_name \175\175/init.yml"
+++ "b/\173\173 cookiecutter._env_name \175\175/init.yml"
@@ -2,7 +2,7 @@
{%- 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', '_overrides'] %}
+{%- set common_roles = ['_linux_network_interface', '_metadata_process', '_classes', '_overrides'] %}
parameters:
_param:
_esc: $
@@ -31,7 +31,7 @@
{%- endmacro %}
{#-#}
classes:
- {#- Default roles are added to each node #}
+ {#- 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) %}