Installation#

NVIDIA recommends the Installer Agent for installing the cluster. It guides you through a desktop wizard, prepares the jump node, and runs the installation playbook for you.

Note

The remainder of this page describes manual installation using the downloaded Ansible playbooks. You do not need to follow these steps if you use the Installer Agent.

Prerequisites#

Important

Ensure that you meet the hardware, BIOS, and jump node requirements.

Before you run the installation playbooks, prepare the following items.

OpenShift Access Token#

Generate an offline token for authentication with the Red Hat Assisted Installer API.

  1. Log in to the OpenShift Cluster Manager as a user with cluster creation privileges.

  2. Select Downloads in the left menu.

  3. Scroll to the bottom of the web page and select View API Token in the Tokens section.

  4. Select use API tokens to authenticate.

    Red Hat Console - Offline tokens to authenticate
  5. Select Load Token. Copy the token and save it to use during cluster installation.

IP Addresses and DNS Records#

At installation time, you need the IP address of each node’s Intelligent Platform Management Interface (IPMI) or baseboard management controller (BMC). Each node also requires a DHCP-assigned IP address for its node management interface. NVIDIA recommends that you make DHCP reservations for these Node IP addresses.

All OpenShift clusters have two important external endpoints:

  • Kubernetes API: Provides a single, stable entry point for clients to interact with the OpenShift Container Platform API. Operations include managing cluster resources, deploying applications, and retrieving cluster status.

  • Ingress: Serves as the entry point for external traffic destined for applications running within the OpenShift cluster.

For single-node clusters, the cluster exposes these endpoints on the Node IP address. For compact (three-node) and standard (five or more nodes) clusters, you need a static virtual IP (VIP) address for each of these endpoints.

The DNS names for these endpoints have the following format:

  • Kubernetes API: api.<name>.<base_dns_domain>

  • Ingress: *.apps.<name>.<base_dns_domain> (wildcard)

The Cluster Details section describes how you configure the name and base_dns_domain at installation time.

Add DNS A records to your DNS server to map these DNS names to the VIP addresses or, for a single-node cluster, the Node IP address. Alternatively, you can add entries to your local hosts file. The hosts file does not support DNS wildcards, so you must create an entry for every application’s ingress endpoint and update the entries as you deploy new applications.

Configuring Installation Playbooks#

Update the following asset files in the installation/assets directory with the properties that the installation playbook requires:

Asset Files#

File

Purpose

cluster.json

Defines cluster-level properties, including name, base domain, OpenShift version, CPU architecture, high-availability mode, and API and Ingress VIP addresses

cluster_details.json

Contains server-specific information, including IPMI or BMC credentials, hostnames, and node roles for each physical server in the cluster

Cluster Details#

Open the cluster.json file and add the following details:

cluster.json Properties#

Property

Description

name

Name of the cluster. For example, h4m-cluster.

base_dns_domain

Base DNS domain of the cluster. For example, example.com.

api_vips

API virtual IP address. For example, [ { "ip": "192.168.20.25" } ]. For a single-node cluster, set this to an empty list: [].

ingress_vips

Ingress virtual IP address. For example, [ { "ip": "192.168.20.26" } ]. For a single-node cluster, set this to an empty list: [].

With the example name and base_dns_domain values:

  • Kubernetes API endpoint: https://api.h4m-cluster.example.com:6443

  • Ingress endpoints: *.apps.h4m-cluster.example.com, for example, https://console-openshift-console.apps.h4m-cluster.example.com

Server Details#

Open the cluster_details.json file and provide the IPMI login credentials for each server.

Each cluster size requires the following hosts:

  • Single-Node Cluster: Add details of one host.

  • Compact Cluster (three-node): Add details of three hosts, all with the master role.

  • Standard Cluster (five or more nodes): Add details of five or more hosts, three with the master role and the rest with the worker role.

cluster_details.json Properties#

Property

Description

ipaddress

IPMI or BMC IP address of the server (used for Redfish API access to control server power and virtual media).

username

IPMI or BMC username for authentication.

password

IPMI or BMC password for authentication.

hostname

Name to assign to the server during OpenShift cluster installation, for example, myhost-a.example.com. This hostname is for the management interface, not the IPMI interface.

role

Node role in the cluster: master for control-plane nodes or worker for compute nodes. For single-node and compact clusters, all nodes must be master.

Run the Playbook#

The Ansible playbooks need sudo access to copy the ISO file to the Apache HTTP server directory.

  1. To run any Ansible command, activate the Python virtual environment that you previously created in the Software Prerequisites section:

    source .h4m/bin/activate
    

    Note

    To exit the virtual environment at any time, run:

    deactivate
    
  2. In the same terminal, export the offline access token that you generated earlier (refer to OpenShift Access Token):

    export OFFLINE_ACCESS_TOKEN=<token>
    
  3. In the same terminal, run the Ansible playbook using the following command:

    ANSIBLE_LOG_PATH=./installation_$(date +'%Y%m%d_%H%M%S').log ansible-playbook main.yaml --ask-become-pass -vv
    
    • The -vv flag enables verbose output for debugging. You can change it to -v for less detail or -vvv or -vvvv for increasingly more detailed logs.

  4. When prompted, enter the current user’s password to grant sudo access.

After the playbook completes, it writes the OpenShift web console login details to cluster-credentials.txt in the installation directory.

Retrieve the credentials on the jump node:

cat cluster-credentials.txt

Download Kubeconfig#

NVIDIA recommends that you download the kubeconfig file because Red Hat keeps it for only 20 days after cluster installation.

  1. Log in to the Red Hat console and select Cluster List.

    Red Hat Console - Select Cluster List
  2. Select the name of the cluster.

    Red Hat Console - Cluster list showing Ready status
  3. Select Download kubeconfig to download the kubeconfig file.

    Red Hat Console - Download kubeconfig button
  4. Copy the kubeconfig file to ~/.kube/config on the jump node to access the cluster.