Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

git clone https://gerrit.nordix.org/infra/engine.git

cd engine/engine

./deploy.sh -o <OStype>-p file:///<pdf.yaml> -i file:///<idf.yaml> -l provision

Currently, all the tests are done on Ubuntu 18.04 & CentOS 7.8 are supported (default Ubuntu 18.04). Support for other system can be added as well depending on the requirements.

The engine supports offline deployment as well. <Steps to follow>

After the successful completion of the deployment, one can needs to setup host networking for K8s, etc. to be able to run software provisioning tooling from CNF Testbed or Intel’s BMRA playbooks to configure and install k8s (& other plugins) on the provisioned nodes (e.g. creating VLAN’s, setting up internet connectivity, etc. – left to the choice of operator/vendor).

References

  1. https://docs.nordix.org/submodules/infra/engine/docs/user-guide.html#framework-user-guide
  2. https://github.com/openstack/bifrost 

Bare-Metal Software Provisioner

CNF Testbed tooling

After the nodes are provisionedprovisioning nodes & configuring networking, one can run software provisioning tooling from CNF Testbed to setup and configure Kubernetes. Prior to running the tooling, the host networking & internet connectivity for the nodes needs to be configured manually (* for now).

In order to support offline installation, support needs to to be added in the CNF Testbed repo (to pick up the correct packages, etc.)

Intel BMRA tooling

k8s.

Intel BMRA tooling

After provisioning nodes & configuring networking, download Intel container kit repo & update the inventory, etc with your desired configuration (refer to Prepare the BMRA software section below for more details).

Then run the following command to provision k8s & other plugins/features 

sudo docker run --rm -v $(pwd):/bmra -v ~/.ssh/:/root/.ssh/ -ti bmra-install:centos ansible-playbook -i /bmra/inventory.ini /bmra/playbooks/cluster.yml

The above BMRA installation works if you have provisioned your nodes using the BM provisioner described above. For pre-provisioned nodes, refer to the section below.Current state - Need to evaluate if the current BMRA specs and requirements are good for near term because of Python 2 being EOL, and if there are plans to update it in the BMRA roadmap. In the meantime, package the playbooks in containers & evolve the BM engine to deploy it to resolve dependency issues. 

BMRA Installation

The following is based on configuration and installation outside of OPNFV Intel Lab.

...

Prior to installing BMRA, log on the worker node and check the hardware configuration. This information is used when configuring BMRA later.

Start by installing pciutils, which is used by Ansible and needed when gathering information:

  • $ yum install pciutils

CPU:

  • $ lscpu 
  • Note down the number of cores and the enumeration method used for cores/threads.

...

  • $ ip a
    • Note down interfaces to be used with SR-IOV
  • $ lspci | grep Eth 
    • Check what PFs are available
  • $ lspci -n <busns <bus:device.function> 
    • Get the vendor and device IDs, e.g. 8086:1572

...

$ yum update
$ yum install git epel-release python36python36 python-netaddr
$ yum install python-pip
$ pip install ansible==2.7.16 jmespath
$ pip install jinja2 --upgrade

...