Create RHCOS machines by PXE or iPXE booting

To scale your Red Hat OpenShift Container Platform bare metal cluster, you can create more Red Hat Enterprise Linux CoreOS (RHCOS) compute machines by using PXE or iPXE booting.

Prerequisites
  • You have obtained the URL of the Ignition config file for the compute machines for your cluster. You uploaded this file to your HTTP server during installation.

  • You have obtained the URLs of the RHCOS ISO image, compressed metal BIOS, kernel, and initramfs files that you uploaded to your HTTP server during cluster installation.

  • You have access to the PXE booting infrastructure that you used to create the machines for your Red Hat OpenShift Container Platform cluster during installation. The machines must boot from their local disks after RHCOS is installed on them.

  • If you use UEFI, you have access to the grub.conf file that you modified during Red Hat OpenShift Container Platform installation.

Procedure
  1. Confirm that your PXE or iPXE installation for the RHCOS images is correct.

    • For PXE:

      DEFAULT pxeboot
      TIMEOUT 20
      PROMPT 0
      LABEL pxeboot
          KERNEL http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture>
          APPEND initrd=http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img

      where:

      KERNEL

      Specifies the location of the live kernel file that you uploaded to your HTTP server.

      APPEND

      Specifies the locations of the RHCOS files that you uploaded to your HTTP server:

      initrd

      Specifies the location of the live initramfs file.

      coreos.inst.ignition_url

      Specifies the location of the worker Ignition config file. This parameter supports only HTTP and HTTPS.

      coreos.live.rootfs_url

      Specifies the location of the live rootfs file. This parameter supports only HTTP and HTTPS.

      Note

      This configuration does not enable serial console access on machines with a graphical console. To configure a different console, add one or more console= arguments to the APPEND line. For example, add console=tty0 console=ttyS0 to set the first PC serial port as the primary console and the graphical console as a secondary console. For more information on setting up a serial terminal and/or console in RHCOS, see "How does one set up a serial terminal and/or console in Red Hat Enterprise Linux?".

    • For iPXE (x86_64 + aarch64):

      kernel http://<HTTP_server>/rhcos-<version>-live-kernel-<architecture> initrd=main coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign
      initrd --name main http://<HTTP_server>/rhcos-<version>-live-initramfs.<architecture>.img
      boot

      where:

      kernel

      Specifies the location of the kernel file that you uploaded to your HTTP server.

      initrd=main

      Specifies an argument that is required for booting on UEFI systems.

      coreos.live.rootfs_url

      Specifies the location of the rootfs file that you uploaded to your HTTP server.

      coreos.inst.ignition_url

      Specifies the location of the worker Ignition config file that you uploaded to your HTTP server.

      initrd --name main

      Specifies the location of the initramfs file that you uploaded to your HTTP server.

      Note
      • If you use multiple NICs, specify a single interface in the ip option. For example, to use DHCP on a NIC named eno1, set ip=eno1:dhcp.

      • This configuration does not enable serial console access on machines with a graphical console. To configure a different console, add one or more console= arguments to the kernel line. For example, add console=tty0 console=ttyS0 to set the first PC serial port as the primary console and the graphical console as a secondary console. For more information on setting up a serial terminal and/or console in RHCOS, see "How does one set up a serial terminal and/or console in Red Hat Enterprise Linux?" in the Additional resources section and "Enabling the serial console for PXE and ISO installation" in the "Advanced RHCOS installation configuration" section.

      Note

      To network boot the CoreOS kernel on aarch64 architecture, you need to use a version of iPXE build with the IMAGE_GZIP option enabled. For more information, see "IMAGE_GZIP option in iPXE".

    • For PXE (with UEFI and GRUB as second stage) on aarch64:

      menuentry 'Install CoreOS' {
          linux rhcos-<version>-live-kernel-<architecture>  coreos.live.rootfs_url=http://<HTTP_server>/rhcos-<version>-live-rootfs.<architecture>.img coreos.inst.install_dev=/dev/sda coreos.inst.ignition_url=http://<HTTP_server>/worker.ign
          initrd rhcos-<version>-live-initramfs.<architecture>.img
      }

      where:

      linux

      Specifies the location of the live kernel file on your TFTP server.

      coreos.live.rootfs_url

      Specifies the location of the live rootfs file.

      coreos.inst.ignition_url

      Specifies the location of the worker Ignition config file.

      initrd

      Specifies the location of the live initramfs file on your TFTP server.

      Note

      If you use multiple NICs, specify a single interface in the ip option. For example, to use DHCP on a NIC named eno1, set ip=eno1:dhcp.

  2. Use the PXE or iPXE infrastructure to create the required compute machines for your cluster.