# CloudForms Availability As noted in [Limitations - Product Choice](#product-choice), [CloudForms](https://www.redhat.com/en/technologies/management/cloudforms) (CFME) 4.6 is not yet released. Until such time, this role is limited to installing [ManageIQ](http://manageiq.org) (MIQ), the open source project that CFME is based on. After CFME 4.6 is available to customers this role will enable (optional) logic which will install CFME or MIQ based on your deployment type (`openshift_deployment_type`): * `openshift-enterprise` → CloudForms * `origin` → ManageIQ # Table of Contents * [Introduction](#introduction) * [Important Notes](#important-notes) * [Requirements](#requirements) * [Role Variables](#role-variables) * [Getting Started](#getting-started) * [All Defaults](#all-defaults) * [External NFS Storage](#external-nfs-storage) * [Override PV sizes](#override-pv-sizes) * [Override Memory Requirements](#override-memory-requirements) * [External PostgreSQL Database](#external-postgresql-database) * [Limitations](#limitations) * [Product Choice](#product-choice) * [Configuration](#configuration) * [Database](#database) * [Podified](#podified) * [External](#external) * [Storage Classes](#storage-classes) * [NFS (Default)](#nfs-default) * [NFS External](#nfs-external) * [Cloud Provider](#cloud-provider) * [Preconfigured (Expert Configuration Only)](#preconfigured-expert-configuration-only) * [Customization](#customization) * [Container Provider](#container-provider) * [Manually](#manually) * [Automatically](#automatically) * [Multiple Providers](#multiple-providers) * [Uninstall](#uninstall) * [Additional Information](#additional-information) # Introduction This role will allow a user to install CFME 4.6 or MIQ on an OCP 3.7 cluster. The role provides customization options for overriding default deployment parameters. This role allows the user to deploy different installation flavors: * **Fully Podified** - In this way all application services are ran as pods in the container platform. * **External Database** - In this way the application utilizes an externally hosted database server. All other services are ran in the container platform. This role includes the following storage class options: * NFS - **Default** - local, on cluster * NFS External - NFS somewhere else, like a storage appliance * Cloud Provider - Use automatic storage provisioning from your cloud provider (*gce* or *aws*) * Preconfigured - **expert only**, assumes you created everything ahead of time You may skip ahead to the [Getting Started](#getting-started) section now for examples of how to set up your Ansible inventory for various deployment configurations. However, you are **strongly urged** to first read through the [Configuration](#configuration) and [Customization](#customization) sections as well as the following [Important Notes](#important-notes). ## Important Notes Not all parameters are present in **both** template versions (podified db and external db). For example, while the podified database template has a `POSTGRESQL_MEM_REQ` parameter, no such parameter is present in the external db template, as there is no need for this information due to there being no databases that require pods. *Be extra careful* if you are overriding template parameters. Including parameters not defined in a template **will cause errors**. If you do receive an error during the `Ensure the CFME App is created` task, we recommend running the [uninstall scripts](#uninstall) first before running the installer again. ### Beta Only required for enterprise (`openshift_deployment_type=openshift-enterprise`) users: * `openshift_management_install_beta` - by setting this value to `true` you acknowledge that this software is currently in BETA and support may be limited nonexistent. This is required to begin the installation. # Requirements The **default** requirements are listed in the table below. These can be overridden through customization parameters (See [Customization](#customization), below). **Note** that the application performance will suffer, or possibly even fail to deploy, if these requirements are not satisfied. | Item | Requirement | Description | Customization Parameter | |---------------------|---------------|----------------------------------------------|-------------------------------| | Application Memory | `≥ 4.0 Gi` | Minimum required memory for the application | `APPLICATION_MEM_REQ` | | Application Storage | `≥ 5.0 Gi` | Minimum PV size required for the application | `APPLICATION_VOLUME_CAPACITY` | | PostgreSQL Memory | `≥ 6.0 Gi` | Minimum required memory for the database | `POSTGRESQL_MEM_REQ` | | PostgreSQL Storage | `≥ 15.0 Gi` | Minimum PV size required for the database | `DATABASE_VOLUME_CAPACITY` | | Cluster Hosts | `≥ 3` | Number of hosts in your cluster | | The implications of this table are summarized below: * You need several cluster nodes * Your cluster nodes must have lots of memory available * You will need several GiB's of storage available, either locally or on your cloud provider * PV sizes can be changed by providing override values to template parameters (see also: [Customization](#customization)) # Role Variables The following is a table of the publicly exposed variables that may be used in your Ansible inventory to control the behavior of this installer. | Variable | Required | Default | Description | |------------------------------------------------------|:--------:|:------------------------------:|-------------------------------------| | `openshift_management_project` | **No** | `openshift-management` | Namespace for the installation. | | `openshift_management_project_description` | **No** | *CloudForms Management Engine* | Namespace/project description. | | `openshift_management_install_management` | **No** | `false` | Boolean, set to `true` to install the application | | `openshift_management_install_beta` | **No** | `false` | Boolean, by setting this value to `true` you acknowledge that this software is currently in BETA and support may be limited. Only required for *openshift-enterprise* users. | | `openshift_management_username` | **No** | `admin` | Default management username. Changing this values **does not change the username**. Only change this value if you have changed the name already and are running integration scripts (such as the [add container provider](#container-provider) script) | | `openshift_management_password` | **No** | `smartvm` | Default management password. Changing this values **does not change the password**. Only change this value if you have changed the password already and are running integration scripts (such as the [add-container-provider](#container-provider) script) | | **PRODUCT CHOICE** | | | | | | `openshift_management_app_template` | **No** | `miq-template` | The project flavor to install. Choices: | | **STORAGE CLASSES** | | | | | | `openshift_management_storage_class` | **No** | `nfs` | Storage type to use, choices: