| # BareMetalHostProfile resource allows you to define how the storage |
| # devices and the operating system are provisioned and configured. |
| apiVersion: metal3.io/v1alpha1 |
| metadata: |
| namespace: default |
| name: default-simple-since-2-24 |
| labels: |
| kaas.mirantis.com/defaultBMHProfile: 'true' |
| kind: BareMetalHostProfile |
| spec: |
| # List of definitions of the physical storage devices. To configure more |
| # storage devices per host, add additional devices to this list. |
| # Each section in the list allows you to define disk parameters and |
| # restrictions in the 'device' field, and a list of partitions to be |
| # created on the device in the 'paritions' field. |
| devices: |
| # Define configuration of the first device on the host. This device |
| # will be partitioned and used as a system boot device. Minimal size |
| # for this device is 60Gib. If your device is smaller, change |
| # the 'minSize' parameter in the device definition appropriately. |
| # Use of a system device smaller than 60Gib is not recommended. |
| - device: |
| # Use the appropriate name of the device in the system. '/dev/sda' |
| # typically defines the first device on a system with 2 disks. |
| #byName: /dev/sda |
| minSize: 60Gi |
| # Deprecated. 'wipe' field, if set to 'true', forces the Container Cloud |
| # bare metal provisioning system to erase the contents of the device before using it. |
| #wipe: true |
| wipeDevice: |
| eraseMetadata: |
| enabled: true |
| # eraseDevice: |
| # timeout: 3600 |
| # blkdiscard: |
| # enabled: false |
| # zeroout: "fallback" |
| # userDefined: |
| # enabled: false |
| # command: "" |
| # script: "" |
| # Do not change the names of partitions in this section. |
| # They are defined as expected by the Ubuntu operating system that |
| # will be installed. |
| partitions: |
| - name: bios_grub |
| # 4Mb boot partition is required for legacy (non-UEFI) systems. |
| size: 4Mi |
| partflags: ['bios_grub'] |
| - name: uefi |
| partflags: ['esp'] |
| size: 200Mi |
| - name: config-2 |
| # Size of this partition is limited to 64Mb. |
| size: 64Mi |
| - name: lvm_root_part |
| # The 0 size for the partition means that this partition will |
| # use all remaining space on the device. Change it only if |
| # you want to have a root file system of specific size. |
| # WARNING: only last one partition on disk could be set as "0" size. |
| size: 0 |
| # Define configuration of the second device on the host. This device |
| # will be used to store application data for management services of |
| # Container Cloud. |
| # The application data is stored in directories on this device, |
| # mounted as volumes to the application pods. |
| - device: |
| # Use the appropriate name of the device in the system. Typically, |
| # '/dev/sdb' defines the second device on a system with 3 disks. |
| #byName: /dev/sdb |
| minSize: 30Gi |
| # Deprecated. 'wipe' field, if set to 'true', forces the Container Cloud |
| # bare metal provisioning system to erase the contents of the device before using it. |
| #wipe: true |
| wipeDevice: |
| eraseMetadata: |
| enabled: true |
| # eraseDevice: |
| # timeout: 3600 |
| # blkdiscard: |
| # enabled: false |
| # zeroout: "fallback" |
| # userDefined: |
| # enabled: false |
| # command: "" |
| # script: "" |
| # This device is partitioned for use by local volume provisioner. |
| partitions: |
| - name: lvm_lvp_part |
| # The 0 size for the partition means that this partition will |
| # use all remaining space on the device. |
| # WARNING: only last one partition on disk could be set as "0" size. |
| size: 0 |
| volumeGroups: |
| - name: lvm_root |
| devices: |
| - partition: lvm_root_part |
| - name: lvm_lvp |
| devices: |
| - partition: lvm_lvp_part |
| logicalVolumes: |
| - name: root |
| vg: lvm_root |
| # If you set the size to 0, the logical volume will use all available |
| # space in its volume group. |
| # WARNING: only last one partition on disk could be set as "0" size. |
| size: 0 |
| - name: lvp |
| vg: lvm_lvp |
| # If you set the size to 0, the logical volume will use all available |
| # space in its volume group. |
| # WARNING: only last one partition on disk could be set as "0" size. |
| size: 0 |
| fileSystems: |
| - fileSystem: vfat |
| partition: config-2 |
| - fileSystem: vfat |
| partition: uefi |
| mountPoint: /boot/efi |
| - fileSystem: ext4 |
| logicalVolume: root |
| mountPoint: / |
| - fileSystem: ext4 |
| logicalVolume: lvp |
| mountPoint: /mnt/local-volumes/ |
| preDeployScript: | |
| #!/bin/bash -ex |
| echo $(date) 'pre_deploy_script done' >> /root/pre_deploy_done |
| postDeployScript: | |
| #!/bin/bash -ex |
| echo $(date) 'post_deploy_script done' >> /root/post_deploy_done |
| grubConfig: |
| defaultGrubOptions: |
| - 'GRUB_DISABLE_RECOVERY="true"' |
| - 'GRUB_PRELOAD_MODULES=lvm' |
| - 'GRUB_TIMEOUT=20' |
| # 'kernelParameters' section defines parameters of the operating system. |
| # See comments for the individual options for more information. |
| kernelParameters: |
| sysctl: |
| # Please check list of prohibited to change options: |
| # https://docs.mirantis.com/mke/3.6/install/predeployment/set-up-kernel-default-protections.html |
| # With this setting, kernel logs will be available only to the 'root' |
| # user. |
| kernel.dmesg_restrict: "1" |
| # Controls whether core dumps will append the PID to the core filename |
| # useful for debugging multi-threaded applications. |
| kernel.core_uses_pid: "1" |
| # Increase system file descriptor limit up to |
| # 9223372036854775807 (0x7fffffffffffffff) on a 64-bit system. |
| # Linux kernel documentation suggests that inode-max should be 3-4 times |
| # larger than this value. |
| fs.file-max: "9223372036854775807" |
| # The Linux kernel provides the Asynchronous non-blocking I/O (AIO) feature that allows a |
| # process to initiate multiple I/O operations simultaneously without having to wait for any of them to complete. |
| # This helps boost performance for applications that are able to overlap processing and I/O. |
| fs.aio-max-nr: "1048576" |
| # The inotify API provides a mechanism for monitoring file system events. |
| # Inotify can be used to monitor individual files, or to monitor directories. |
| # When a directory is monitored, inotify will return events for the directory itself, and for files inside the directory. |
| fs.inotify.max_user_instances: "4096" |
| # This file contains the maximum number of memory map areas a process may have. |
| # Memory map areas are used as a side-effect of calling malloc, directly by mmap and mprotect, and also when loading shared libraries. |
| # While most applications need less than a thousand maps, certain programs, |
| # particularly malloc debuggers, may consume lots of them, e.g., up to one or two maps per allocation. |
| vm.max_map_count: "262144" |
| # This option enables "Loose mode" assymetric-routing between k8s-lcm (LCM network) and bond0 (PXE network). |
| # Required only during bootstrap process, since bootstrap-seed node might not |
| # contain all required networks. (For example, when only pxe network configured on seed node) |
| # For details, see |
| # https://docs.mirantis.com/container-cloud/latest/deployment-guide/deploy-bm-mgmt.html |
| net.ipv4.conf.all.rp_filter: "2" |
| net.ipv4.conf.k8s-lcm.rp_filter: "2" |
| net.ipv4.conf.bond0.rp_filter: "2" |
| fs.inotify.max_user_watches: "81920" |
| # 'modules' field contains a list of files to be created in the |
| # '/etc/modprobe.d/' directory and the contents of the files. |
| # Use them to configure specific kernel modules on your system. |
| #modules: |
| # - filename: kvm_intel.conf |
| # content: | |
| # options kvm_intel nested=1 |