Giter VIP home page Giter VIP logo

rhcos-slb's Introduction

Setting up network bonding on specific interfaces during the ignition process

Overview

This guide explains how to bond specific NICs during the initial OpenShift installation with OVS and supplies the Ignition and scripts to achieve this.

Important

This guide describes the customisations needed for installation when using a PXE server.

Prerequisites

  • Fcct software to be able to convert fcc to ign files.
  • PXE server with ability to set kernel arguments.
  • Web accessible location (HTTP only) to upload the custome ign files.

Usage

1. Adding parameters to PXE server

Key Type Value Exmaple Discription
ignition.config.url String http://{location reachable to PXE and remote VM in order to get the ignition file}/file.ign custom-config ignition.config.url=http://my.web.server.redhat.com/file.ign custom-config This parameter is used to allow the server to load an extra ignition file which captures the MAC addresses and saves them into a file for later use in machine config.
macAddressList String List of MAC address should be set per host In the following order: 1. Primary NIC 2. Secondary NIC 3. All the rest (optional) 00:01:02:03:04:05,06:07:08:09:10:11 ... This will be the list of MAC addresses which exist on the host and will be grabbed by the ignition file.

2. Prepare the files

  • Create the ign file from the custom-config.fcc:
fcct custom-config.fcc > file.ign
  • Upload file.ign to a shared location which the OpenShift nodes can access.

  • Base64 encode the setup-ovs.sh file and paste the content into each MCO file into "base64_script_content" section.

    TIP: To update the content you can use:

export base64_script_content=$(cat setup-ovs.sh|base64 -w 0) && envsubst <  mco_ovs_workers.yml.tmpl > mco_ovs_workers.yml && envsubst < mco_ovs_supervisor.yml.tmpl > mco_ovs_supervisor.yml
  • MCO files are MachineConfig, which you can apply manually once the cluster is up or add it to the installation automation/pipeline.

3. Run the installation

Notes

  • Changing network configuration is done with the setup-ovs.sh file.

  • In order to change the bond type to something other than balance-slb (for example active-backup) ,open the setup-ovs.sh file and search for the “#make bond” section. Change “ovs-port.bond-mode” to the desired type and make sure that all other related settings are aligned.

  • MachineConfig file is a “Day 2” tool that allows to configure or run scripts on a machine with an installed OS (post-installation).

CI and Testing

This repo uses coreos-assembler repo to run important scenarios relevant to this use-case. The test downloads the latest RHCOS image and runs network related tests, using the local setup-ovs.sh script. You can run these tests manually on Fedora by running the test script:

sudo ./tests/setup.sh
./tests/test-coreos.sh

Additional Documentation

rhcos-slb's People

Contributors

dcritch avatar eliaden avatar kobi86 avatar phoracek avatar qinqon avatar ramlavi avatar sreichar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rhcos-slb's Issues

proposal: Add ci to rhcos-slb

Introduction:
Currently there are coreos-ci test in place that runs cosa repo, to make sure the scripts runs smoothly with rhcos.

Goal:
We would like to have a ci on this repo, that will check the current setup-ovs.sh with the ci on coreos.
This way, every change to setup-ovs.sh will be smoke-tested before it is approved.

Method:
In order to avoid double dependency, the ci will:

  • Clone the coreos-assembler repo
  • Replace the setup-ovs.sh with the currently used on rhcos-slb's local directory
  • Run the coreos-assembler ci tests using the latest rhcos available

Note: we plan to run this test on every PR, with the help of project-infra

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.