Prepare the ISO and Boot MethodΒΆ

Ensure that the required installation software, tools, and boot mechanisms are available and prepared before starting the StarlingX installation.

  1. Download the StarlingX host installer ISO image file:

    Download the StarlingX ISO image from the StarlingX mirror.

  2. Prepare the ISO customization script.

    Use this script to generate a customized installer ISO when required. The script supports options to:

    • Specify input and output ISO files

    • Set the initial sysadmin password

    • Define default installer menu selections

    • Configure boot menu timeouts

    • Provide additional boot parameters

    Download the update-iso.sh script from the StarlingX mirror.

    Update the ISO image to modify installation boot parameters, automatically select boot menu options and/or add a kickstart file to automatically perform configurations such as configuring the initial IP Interface for bootstrapping.

    Use the update-iso.sh script from a StarlingX mirror. The script syntax and options are:

    update-iso.sh --initial-password <password> -i <input bootimage.iso> -o <output bootimage.iso>
        [ -a <ks-addon.cfg> ] [ -p param=value ]
        [ -d <default menu option> ] [ -t <menu timeout> ]
        -i <file>: Specify input ISO file
        -o <file>: Specify output ISO file
        -a <file>: Specify ks-addon.cfg file
        --initial-password <password>: Specify the initial login password for sysadmin user
        -p <p=v>:  Specify boot parameter
    
        Example:
            -p instdev=/dev/disk/by-path/pci-0000:00:0d.0-ata-1.0
    
        -d <default menu option>:
            Specify default boot menu option:
            0 - Standard Controller, Serial Console
            1 - Standard Controller, Graphical Console
            2 - AIO, Serial Console
            3 - AIO, Graphical Console
            NULL - Clear default selection
        -t <menu timeout>:
            Specify boot menu timeout, in seconds
    

    The following example ks-addon.cfg file, used with the -a option, sets up an initial IP interface at boot time by defining a VLAN on an Ethernet interface with with static assigned VLAN addresses:

    #### start ks-addon.cfg
    RAW_DEV=enp24s0f0
    OAM_VLAN=103
    MGMT_VLAN=163
    
    cat << EOF > ${IMAGE_ROOTFS}/etc/network/interfaces.d/auto
    auto ${RAW_DEV} lo vlan${OAM_VLAN} vlan${MGMT_VLAN}
    
    EOF
    
    cat << EOF > ${IMAGE_ROOTFS}/etc/network/interfaces.d/ifcfg-${RAW_DEV}
    iface ${RAW_DEV} inet manual
    mtu 9000
    post-up echo 0 > /proc/sys/net/ipv6/conf/${RAW_DEV}/autoconf;\
    echo 0 > /proc/sys/net/ipv6/conf/${RAW_DEV}/accept_ra;\
    echo 0 > /proc/sys/net/ipv6/conf/${RAW_DEV}/accept_redirects
    EOF
    
    cat << EOF > ${IMAGE_ROOTFS}/etc/network/interfaces.d/ifcfg-vlan${OAM_VLAN}
    iface vlan${OAM_VLAN} inet6 static
    vlan-raw-device ${RAW_DEV}
    address <__address__>
    netmask 64
    gateway <__address__>
    mtu 1500
    post-up /usr/sbin/ip link set dev vlan${OAM_VLAN} mtu 1500;\
    echo 0 > /proc/sys/net/ipv6/conf/vlan${OAM_VLAN}/autoconf;\
    echo 0 > /proc/sys/net/ipv6/conf/vlan${OAM_VLAN}/accept_ra;\
    echo 0 > /proc/sys/net/ipv6/conf/vlan${OAM_VLAN}/accept_redirects
    pre-up /sbin/modprobe -q 8021q
    EOF
    
    cat << EOF > ${IMAGE_ROOTFS}/etc/network/interfaces.d/ifcfg-vlan${MGMT_VLAN}
    iface vlan${MGMT_VLAN} inet6 static
    vlan-raw-device ${RAW_DEV}
    address <__address__>
    netmask 64
    mtu 1500
    post-up /usr/local/bin/tc_setup.sh vlan${MGMT_VLAN} mgmt 10000 > /dev/null;\
    /usr/sbin/ip link set dev vlan${MGMT_VLAN} mtu 1500;\
    echo 0 > /proc/sys/net/ipv6/conf/vlan${MGMT_VLAN}/autoconf;\
    echo 0 > /proc/sys/net/ipv6/conf/vlan${MGMT_VLAN}/accept_ra;\
    echo 0 > /proc/sys/net/ipv6/conf/vlan${MGMT_VLAN}/accept_redirects
    pre-up /sbin/modprobe -q 8021q
    EOF
    
    #### end ks-addon.cfg
    
  3. Prepare a supported boot mechanism.

    After you update the ISO image, ensure you have a supported boot method available to boot and install the host installer ISO downloaded from a StarlingX mirror. You can use one of the following:

    • Bootable USB drive with the StarlingX host installer ISO. See Create Bootable USB for instructions on how to create a bootable USB with the StarlingX ISO.

    • PXE boot server hosting the installer ISO on the same network as the server that will be used as the initial controller-0. See PXE Boot Controller-0 for details on how to setup a PXEBOOT Server and pxe-boot the StarlingX load on controller-0.

    After the system is bootstrapped using a USB or PXE mechanism and the base OS is installed, StarlingX requires access to Docker registries to complete the installation. StarlingX platform services are delivered as container images, which are pulled over the OAM network during installation and initial configuration. The Docker registry provides the container images required for the StarlingX load. For the docker registry, you can use one of the following options:

    • The public open source registries (i.e. docker.io, k8s.gcr.io, ghcr.io, gcr.io, quay.io). This is the default option.

    • A private Docker Registry populated with the docker images from the public open source registries.

  4. Apply ISO patches when applicable:

    If patches are available for the release ISO you are installing, apply them after installing the StarlingX software but before bootstrapping the system.

    For host installation instructions, see Install Software on Controller-0.