From 295f22bf84e5660052b21c4ffc1954049caa4310 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Wed, 7 Mar 2018 21:55:43 +0100 Subject: [PATCH] kernel: make ExtraKernelModules and ExtraSysctlSettings role-specific Allow to configure extra Kernel modules and extra sysctl settings per role and not only global to the whole deployment. The two parameters that can be role-specific are ExtraKernelModules and ExtraSysctlSettings. Depends-On: I2b26ce4f9d19dbf66da1b4382d7ffd653e67a92e Change-Id: Iaafd0133df7ecd01a338f1b4deb3b159c2d9c6f1 (cherry picked from commit da1ed3d19c54b5f60fdc883fd4f11f613914c854) --- puppet/services/kernel.yaml | 24 +++++++++++++++++-- .../kernel_sysctl_role-d4f6a50d08b7a388.yaml | 7 ++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/kernel_sysctl_role-d4f6a50d08b7a388.yaml diff --git a/puppet/services/kernel.yaml b/puppet/services/kernel.yaml index 821106cd53..1810ed4861 100644 --- a/puppet/services/kernel.yaml +++ b/puppet/services/kernel.yaml @@ -72,11 +72,31 @@ parameters: default: {} description: Hash of extra Kernel modules to load. type: json + tags: + - role_specific ExtraSysctlSettings: default: {} description: Hash of extra sysctl settings to apply. type: json + tags: + - role_specific +resources: + # Merging role-specific parameters (RoleParameters) with the default parameters. + # RoleParameters will have the precedence over the default parameters. + RoleParametersValue: + type: OS::Heat::Value + properties: + type: json + value: + map_replace: + - map_replace: + - extra_kernel_modules: ExtraKernelModules + extra_sysctl_settings: ExtraSysctlSettings + - values: {get_param: [RoleParameters]} + - values: + ExtraKernelModules: {get_param: ExtraKernelModules} + ExtraSysctlSettings: {get_param: ExtraSysctlSettings} outputs: role_data: @@ -88,7 +108,7 @@ outputs: map_merge: - nf_conntrack: {} nf_conntrack_proto_sctp: {} - - {get_param: ExtraKernelModules} + - {get_attr: [RoleParametersValue, value, extra_kernel_modules]} sysctl_settings: map_merge: - net.ipv4.tcp_keepalive_intvl: @@ -155,7 +175,7 @@ outputs: # set inotify value for neutron/dnsmasq scale fs.inotify.max_user_instances: value: {get_param: InotifyIntancesMax} - - {get_param: ExtraSysctlSettings} + - {get_attr: [RoleParametersValue, value, extra_sysctl_settings]} step_config: | include ::tripleo::profile::base::kernel diff --git a/releasenotes/notes/kernel_sysctl_role-d4f6a50d08b7a388.yaml b/releasenotes/notes/kernel_sysctl_role-d4f6a50d08b7a388.yaml new file mode 100644 index 0000000000..22cfaff205 --- /dev/null +++ b/releasenotes/notes/kernel_sysctl_role-d4f6a50d08b7a388.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Allow to configure extra Kernel modules and extra sysctl settings per role + and not only global to the whole deployment. + The two parameters that can be role-specific are ExtraKernelModules and + ExtraSysctlSettings.