blob: 1e8921ba298194728c0e1d490761946d792946e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
---
heat_template_version: 2014-10-16
description: >
This is an example showing how you can do firstboot configuration
of the nodes via cloud-init. To enable this, replace the default
mapping of OS::TripleO::NodeUserData in ../overcloud_resource_registry*
parameters:
ComputeKernelArgs:
description: >
Space seprated list of Kernel args to be update to grub.
The given args will be appended to existing args of
GRUB_CMDLINE_LINUX in file /etc/default/grub
Example:
"intel_iommu=on default_hugepagesz=2MB hugepagesz=2MB hugepages=2048"
type: string
default: ""
resources:
userdata:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: compute_kernel_args}
# Verify the logs on /var/log/cloud-init.log on the overcloud node
compute_kernel_args:
type: OS::Heat::SoftwareConfig
properties:
config:
str_replace:
template: |
#!/bin/bash
set -x
sed 's/^\(GRUB_CMDLINE_LINUX=".*\)"/\1 $KERNEL_ARGS"/g' \
-i /etc/default/grub ;
grub2-mkconfig -o /etc/grub2.cfg
hugepage_count=$(echo $KERNEL_ARGS | \
grep -oP ' ?hugepages=\K[0-9]+')
if [ -z "$hugepage_count" ]; then
hugepage_count=1024
fi
echo vm.hugetlb_shm_group=0 >> /usr/lib/sysctl.d/00-system.conf
HPAGE_CT=$(printf "%.0f" $(echo 2.2*$hugepage_count | bc))
echo vm.max_map_count=$HPAGE_CT >> /usr/lib/sysctl.d/00-system.conf
HPAGE_CT=$(($hugepage_count * 2 * 1024 * 1024))
echo kernel.shmmax=$HPAGE_CT >> /usr/lib/sysctl.d/00-system.conf
reboot
params:
$KERNEL_ARGS: {get_param: ComputeKernelArgs}
outputs:
OS::stack_id:
value: {get_resource: userdata}
|