Computes

Sample input JSON

"computes": {
    "vim": [
            {
                   "control_plane": {
                           "hyperthreading": "Enabled",
                           "role": "master",
                           "nic_config": {
                                "interfaces": [
                                    {
                                       "name": "bond0",
                                       "type": "bond",
                                       "bond_members": [
                                              "ens10f0",
                                              "ens10f1"
                                        ],
                                       "bond_linux_options": "mode=802.3ad lacp_rate=0 miimon=100"
                                    }
                                ]
                           }
                   },
                   "compute_plane": {
                           "hyperthreading": "Enabled",
                           "role": "worker",
                           "nic_config": {
                                "interfaces": [
                                    {
                                       "name": "bond0",
                                       "type": "bond",
                                       "bond_members": [
                                              "ens10f0",
                                              "ens10f1"
                                       ],
                                       "bond_linux_options": "mode=802.3ad lacp_rate=0 miimon=100"
                                    }
                                ]
                           }
                   },
                   "cluster_info": {
                           "name": "C10",
                           "network": "XX.XX.XX.XX/16",
                           "hostPrefix": "23",
                           "mode_of_installation": "offline",
                           "fips": "true",
                           "networkType": "OpenShiftSDN",
                           "serviceNetwork": "XX.XX.XX.XX/24"
                   },
                   "persistent_volume": {
                           "nimble": {
                                  "image_registry": {
                                          "pvc_size": "200Gi",
                                          "dedupeEnabled": "False",
                                          "destroyOnDelete": "True",
                                          "performancePolicy": "SQL Server",
                                          "limitIops": "-1",
                                          "limitMbps": "100",
                                          "protectionTemplate": "Retain-90Daily"
                                  }
                           }
                   },
                   "local_registry": {
                           "fqdn": "regvm.qa.com",
                           "port": "50001",
                           "username": "pluto",
                           "password": "<password>",
                           "emailaddress": "user@hpe.com"
                   },
                   "redhat_registry": {
                           "username": "<username>",
                           "password": "<password>"
                   },
                   "sriov": {
                           "profiles": {
                                  "4port-sriov": {
                                          "interfaces": [
                                                  "ens1f0",
                                                  "ens1f1",
                                                  "ens3f0",
                                                  "ens3f1"
                                          ],
                                          "devicetype": "netdevice",
                                          "mtu": "1400",
                                          "node_label": "4_port_sriov",
                                          "vf_count": "8",
                                          "resource_name": "resource1"
                                  },
                                  "2port-srivo": {
                                          "interfaces": [
                                                  "ens1f0",
                                                  "ens1f1"
                                          ],
                                          "devicetype": "netdevice",
                                          "mtu": "1400",
                                          "node_label": "2_port_sriov",
                                          "vf_count": "1",
                                          "resource_name": "resource2"
                                  }
                           }
                   },
                   "storage_backend": [
                           "nimble"
                   ]
            }
    ],
    "description": "Compute platforms and its configurations"
}

Parameters

The following table defines each of the parameters:
Parameter Description
control_plane and compute_plane section The control_plane section is a single mapping, but the compute_plane section is a sequence of mappings. Both sections currently define a single machine pool. Bonding is configured for the worker and master nodes. The interfaces details are available in the nic_config section in the compute_plane section.
hyperthreading Whether to enable or disable simultaneous multithreading, or hyperthreading. By default, simultaneous multithreading is enabled to increase the performance of your machines' cores. You can disable it by setting the parameter value to Disabled. If you disable simultaneous multithreading in some cluster machines, you must disable it in all cluster machines.
role Contains the role assigned to a server that will be added to the cluster, that is, master or worker machine.
nic_config Contains the information on the interfaces and bond configuration to be set on the nodes.
interfaces Contains the information on the interfaces participating in the bonding.
bond_members Enter the interface names on which bonding is configured on the nodes. For Gen10, it must be eno5 and eno6. For Gen10+, it must be ens10f0 and ens10f1.
type Enter the type as bond.
name Enter the name of the bond. With the same name, bond will be configured on cluster nodes. For example, bond0
bond_linux_options Enter the bond options. Enclosed in "" if you have multiple bond options. For example, "mode=802.3ad miimon=100 downdelay=1000 lacp_rate=0".
mode Choose the bonding policy.
NOTE:

The switch configuration must match the bond policy you choose.

miimon Enter miimon in milliseconds. It specifies how often MII link monitoring occurs. This is useful if high availability is required because MII is used to verify that the NIC is active.
lacp_rate Specify the rate at which link partners should transmit LACPDU packets in 802.3ad mode.
Possible values:
  • slow or 0: Default setting. This specifies that partners must transmit LACPDUs every 30 seconds.

  • fast or 1: Specifies that partners must transmit LACPDUs every 1 second.

NOTE:

This is only applicable for 802.3ad or mode 4.

cluster_info Contains the information about cluster.
Name Enter the name for the OCP cluster.
Network Enter a block of IP addresses from which Pod IP addresses are allocated. This block must not overlap with existing physical/OCP networks. These IP addresses are used for the Pod network, and if you need to access the Pods from an external network, configure load balancers and routers to manage the traffic.
HostPrefix Enter the subnet prefix length to assign to each individual node. For example, if hostPrefix is set to 23,then each node is assigned a /23 subnet out of the given cidr, which allows for 510 (2^(32 - 23) - 2) pod IPs addresses. If you are required to provide access to nodes from an external network, configure load balancers and routers to manage the traffic.
mode_of_installation Enter the mode of cluster installation. Supported values are online/offline.

In case of online mode, all the nodes in the cluster requires access to the internet to install packages that are required to install the cluster.

If cluster cannot have direct internet access, choose restricted network/offline mode of installation. For this process, user need to create a private local registry to download the content and use it to populate a mirror registry with the packages that will be used to install a cluster and generate the installation program.

fips If FIPS mode is enabled, the Red Hat Enterprise Linux CoreOS (RHCOS) machines will use the cryptography modules that are provided with RHCOS instead of the default Kubernetes cryptography suite.
Service Network Enter the IP address pool to use for service IP addresses. You can enter only one IP address pool. If you need to access the services from an external network, configure load balancers and routers to manage the traffic.
proxy_info Contains information about proxy. This is a required property for online mode of installation.
http_proxy Enter the proxy URL or IP to be used for creating HTTP connections outside the cluster. The URL scheme must be http. If you do not require a proxy or use an MITM transparent proxy network that does not require additional proxy configuration but requires additional CAs, keep the field blank.
https_Proxy Enter the proxy URL or IP to be used for creating HTTPS connections outside the cluster. The URL scheme must be http. https is currently not supported. If you do not require a proxy, keep the field blank.
Port Enter the port number of the proxy server.
NOTE:

If you do not have a proxy to be enabled, keep the field blank.

user Enter the user name for logging in to the proxy server, if present.
NOTE:

If you do not need a username to login to proxy server or do not have a proxy to be enabled, keep the field blank.

password Enter the password for logging in to the proxy server, if proxy user field is filled.
NOTE:

If you do not have a proxy server setup, keep the field blank.

subscription Contains information about subscription details for online mode only.
username Enter the user name for accessing Red Hat Subscription.
password Enter the password for accessing Red Hat Subscription.
pool_id Enter the Red Hat Subscription pool ID for OpenShift.
persistent_volume Contains the information about the persistent volumes configuration for cluster.
pvc_size Enter the size for the PVC (Persistent Volume Claim) to configure image registry. Minimum is 100 GB.
dedupeEnabled Indicates whether dedupe should be enabled or disabled.
destroyOnDelete Indicates the backend Nimble volume (including snapshots) must be destroyed when the PVC is deleted.
performancePolicy The name of the performance policy to assign to the volume. Default example performance policies include "Backup Repository", "Exchange 2003 data store", "Exchange 2007 data store", "Exchange 2010 data store", "Exchange log", "Oracle OLTP", "Other Workloads", "SharePoint", "SQL Server", "SQL Server 2012", "SQL Server Logs".
limitIops The IOPS limit of the volume. The IOPS limit must be in the range 256 to 4294967294, or -1 for unlimited (default).
limitMbps The MB/s throughput limit for the volume.
protectionTemplate The name of the protection template to assign to the volume. Default examples of protection templates include "Retain-30Daily", "Retain-48Hourly-30Daily-52Weekly", and "Retain-90Daily".
storage_backend Enter the name of the storage backend for OCP cluster. Supported value is nimble.
local_registry Contains information about the private registry server that will serve as a content provider for OCP 4.3.x to deploy OpenShift container platform in restricted environment/offline mode of installation.
NOTE:

User must fill the same values that are provided during the private registry creation for all parameters under local_registry.

fqdn Enter the FQDN of server on which the private registry is created.
port Enter the port number configured for the registry container running on the private registry server.
username Enter the username configured for the registry container running on the private registry server.
Constraints:
  • Usernames may only be up to 32 characters long.

  • It should start (^) with only letters or an underscore ([a-z_]).

  • From 0 to 31 characters ({0,31}) of letters, numbers, underscores, and/or hyphens

  • From 0 to 30 characters of the above plus a USD symbol (\$) at the end, and then No more characters past this pattern ($)

password Enter the password configured for the registry container running on the private registry server.

Constraint: Minimum of 1 character

emailaddress Enter the email address provided during the creation of the private registry container. This email is used for generating SSL certificates in private local registry server and also in pull secret file along with registry information.
redhat_registry Contains information about the Red Hat subscription details. This is used to pull the images from the Red Hat registry and push the image to the local registry. This is an optional field.
username Enter the user name for accessing Red Hat subscription.
password Enter the password for accessing Red Hat subscription. Password must be at least 8 characters long.
sriov Contains information about the SR-IOV profiles to configure on worker nodes. You can attach SR-IOV virtual function (VF) interfaces to Pods on nodes with SR-IOV supported NICs.
profiles Allows the user to configure multiple profiles on a cluster.
4port-sriov Enter name for the SR-IOV policy.

Pod name standards should not contain "_" ( '-' or '.' is allowed )

For example, 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')

interface Enter the interface name on which you would like to configure SR-IOV on worker nodes. It's a list of values.

For example, ["ens1f0","ens1f1","ens3f0","ens3f1"]

devicetype Enter the driver type for the virtual functions. The supported value is netdevice.
mtu Enter the value for the maximum transmission unit (MTU) to be configured on virtual function.
vf_count Enter the number of the virtual functions (VF) to be created for the SR-IOV physical network device. The number of VFs cannot be larger than the total VFs supported by the device. For Intel, the maximum supported vf count is 64 and for Mellanox, the maximum supported count is 8.
resource_name Enter the resource name of the SR-IOV device plug-in. User has to use the same name while creating the SR-IOV network post the configuration. The resource name only supports alpha-numerical values and any other special characters including blank spaces are not supported. So resource names "intelnic1", "intelnics", etc. should work here.
node_label The node "worker-0.ocp4.nfv.com" is invalid: metadata.labels: Invalid value: "4_port*sriov": name part must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character.

For example, 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]')