Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tuning option documentation from Katello to main manual #1576

Draft
wants to merge 1 commit into
base: gh-pages
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions _includes/manuals/nightly/3.2.2_installer_options.md
Original file line number Diff line number Diff line change
Expand Up @@ -2532,6 +2532,69 @@ puppet:

Other examples are given in the next section, or `/usr/share/foreman-installer/README.md`.

#### Tuning options

The Foreman installer supports automatic tuning of your environment using predefined tuning profiles. These tuning profiles are the result of a culmination of extensive learning from Foreman environments deployed at scale in large user environments.

When the foreman-installer is run, it is deployed with a `default` predefined tuning profile. Other than the default tuned profile, foreman-installer supports 4 different tuning profiles:

* medium
* large
* extra-large
* extra-extra-large

Based on your environment needs, use one of the tuning profiles (`medium`, `large`, `extra-large`, `extra-extra-large`) in the installer. For example, `medium` profile can be applied like:

```bash
foreman-installer --tuning medium
```

To reset to the default profile:

```bash
foreman-installer --tuning default
```

Use `foreman-installer --help | grep tuning` to identify the current tuning level.

Sample output for `medium` tuning:

```bash
foreman-installer --help | grep tuning
--tuning INSTALLATION_SIZE Tune for an installation size. Choices: default, medium, large, extra-large, extra-extra-large (default: "medium")
```

Sample output for `default` tuning:

```bash
foreman-installer --help | grep tuning
--tuning INSTALLATION_SIZE Tune for an installation size. Choices: default, medium, large, extra-large, extra-extra-large (default: "default")
```

**Note**

- Definitions of various tuning profiles can be found in this directory `/usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/`. Note that `common.yaml` is always applied and the selected tuning profile (e.g., `medium`) is applied on top and takes precedence.
- Using the `--tuning` option does not update `/etc/foreman-installer/custom-hiera.yml`, instead it directly updates the required configuration as specified in the corresponding tuning profile. You can still use `custom-hiera.yml` to override any configuration if really needed.
- If you had already used `custom-hiera.yml` and starting to use the tuned profiles, you may want to review the definition of tuned profiles (`/usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml` and `/usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/`) and remove the duplicated configuration entries from your `custom-hiera.yml`.
- You can also optionally use `foreman-installer --tuning <profile> --noop` to run the installer in a test mode and identify what configurations will be changed before actually running the installer.

### Which tuning profile should you choose?

It is difficult to find the exact tuning profile for a specific environment in the first attempt because it depends on various factors like the number of managed hosts, the features used in scale (E.g., Remote Execution), the bulk actions on hosts, the total amount of content, amount of host traffic to foreman, etc. Our recommendation is that you start with the tuning profile guidance as shown in the below table based on the number of managed hosts and scale up your environment as needed.

**Note**

- The information in the table below is just a guidance. It is strongly recommended that you monitor the foreman environment regularly and tune up as required.
- The RAM and CPU Cores check is also integrated into the foreman-installer now. Use `disable-system-checks` if you like to skip this check in the installer.

| Tuned profile | Number of Managed hosts | Minimum Recommended RAM | Minimum Recommended CPU Cores |
|:------------------|:---------------------------:|:------------------------:|------------------------------:|
| default | up-to 5000 | 20G | 4 |
| medium | 5000 - 10000 | 32G | 8 |
| large | 10000 - 20000 | 64G | 16 |
| extra-large | 20000 - 60000 | 128G | 32 |
| extra-extra-large | 20000 - 60000 | 256G | 48 |

#### Advanced module configuration

Additional configuration options can be given in `/etc/foreman-installer/custom-hiera.yaml` for some of the Puppet modules that are used internally by Foreman installer. The contents of this file will be passed to Hiera during the Foreman installer execution so can set class parameters for other modules such as `apache`, `mysql`, and `postgresql`.
Expand All @@ -2543,3 +2606,4 @@ apache::trace_enable: Off
{% endhighlight %}

Please note that the parameters used by these modules may change between versions of Foreman, so it's important to check the versions in use and the appropriate module documentation or source code when editing this configuration file. Modifications cannot be supported or migrated by Foreman.

61 changes: 0 additions & 61 deletions plugins/katello/nightly/installation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,67 +171,6 @@ arguments. Multiple entries can be entered via
reverse: true
contact: hostmaster.example.com.

## Tuning options
The Foreman installer supports automatic tuning of your environment using predefined tuning profiles. These tuning profiles are the result of a culmination of extensive learning from Foreman environments deployed at scale in large user environments.

When the foreman-installer is run, it is deployed with a `default` predefined tuning profile. Other than the default tuned profile, foreman-installer supports 4 different tuning profiles:

* medium
* large
* extra-large
* extra-extra-large

Based on your environment needs, use one of the tuning profiles (`medium`, `large`, `extra-large`, `extra-extra-large`) in the installer. For example, `medium` profile can be applied like:

```bash
foreman-installer --tuning medium
```

To reset to the default profile:

```bash
foreman-installer --tuning default
```

Use `foreman-installer --help | grep tuning` to identify the current tuning level.

Sample output for `medium` tuning:

```bash
foreman-installer --help | grep tuning
--tuning INSTALLATION_SIZE Tune for an installation size. Choices: default, medium, large, extra-large, extra-extra-large (default: "medium")
```

Sample output for `default` tuning:

```bash
foreman-installer --help | grep tuning
--tuning INSTALLATION_SIZE Tune for an installation size. Choices: default, medium, large, extra-large, extra-extra-large (default: "default")
```

**Note**

- Definitions of various tuning profiles can be found in this directory `/usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/`. Note that `common.yaml` is always applied and the selected tuning profile (e.g., `medium`) is applied on top and takes precedence.
- Using the `--tuning` option does not update `/etc/foreman-installer/custom-hiera.yml`, instead it directly updates the required configuration as specified in the corresponding tuning profile. You can still use `custom-hiera.yml` to override any configuration if really needed.
- If you had already used `custom-hiera.yml` and starting to use the tuned profiles, you may want to review the definition of tuned profiles (`/usr/share/foreman-installer/config/foreman.hiera/tuning/common.yaml` and `/usr/share/foreman-installer/config/foreman.hiera/tuning/sizes/`) and remove the duplicated configuration entries from your `custom-hiera.yml`.
- You can also optionally use `foreman-installer --tuning <profile> --noop` to run the installer in a test mode and identify what configurations will be changed before actually running the installer.

### Which tuning profile should you choose?

It is difficult to find the exact tuning profile for a specific environment in the first attempt because it depends on various factors like the number of managed hosts, the features used in scale (E.g., Remote Execution), the bulk actions on hosts, the total amount of content, amount of host traffic to foreman, etc. Our recommendation is that you start with the tuning profile guidance as shown in the below table based on the number of managed hosts and scale up your environment as needed.

**Note**

- The information in the table below is just a guidance. It is strongly recommended that you monitor the foreman environment regularly and tune up as required.
- The RAM and CPU Cores check is also integrated into the foreman-installer now. Use `disable-system-checks` if you like to skip this check in the installer.

| Tuned profile | Number of Managed hosts | Minimum Recommended RAM | Minimum Recommended CPU Cores |
|:------------------|:---------------------------:|:------------------------:|------------------------------:|
| default | up-to 5000 | 20G | 4 |
| medium | 5000 - 10000 | 32G | 8 |
| large | 10000 - 20000 | 64G | 16 |
| extra-large | 20000 - 60000 | 128G | 32 |
| extra-extra-large | 20000 - 60000 | 256G | 48 |
## Forklift

Foreman provides a git repository designed to streamline setup by setting up all the proper repositories. Forklift provides the ability to deploy a virtual machine instance via Vagrant or direct deployment on an already provisioned machine. For details on how to install using forklift, please see the [README](https://github.com/theforeman/forklift/blob/master/README.md).