Lab Requirements

Anuket Project

Lab Requirements

This page describes the requirements for a lab to participate in Lab as a Service. The reference implementation can be found at: https://git.opnfv.org/laas-reflab/tree/



The API

The dashboard is the single source of truth, and communicates tasks to the lab through the api. You can read the api spec on this page: Developer Documentation

The API is how the dashboard tells the lab about a booking from a user, and how the lab communicates information back to the user. To participate in LaaS as a lab, you need to implement your end of the API. The rest of the document describes the pre-built backend system that the LaaS project has built, but you are free to implement your own system if the pre-built one does not fit your needs.





Reference Architecture

Networking Requirements

  • Stackstorm must be able to reach everything:

    • The LaaS dashboard on the internet

    • The IPMI interfaces on the LaaS servers

    • The mangement IP of the LaaS switches

    • The management and public IPs of the LaaS servers

    • FOG

    • The VPN server

  • FOG must be able to PXE boot the LaaS servers

  • The gateway / vpn server must:

    • Route vpn traffic to / from the LaaS machines

    • Allow the LaaS servers to reach the internet

    • Serve DHCP and DNS such that:

      • A server is always reachable by its hostname, regardless of what network it is on

      • Servers will always PXE boot through FOG

Description

The reference implementation relies heavily on Stackstorm, a nice automation server: https://stackstorm.com/. This is what does all the communication with the dashboard API and configures the switches + servers as required. This is where all the code and logic of the reference implementation lives.

FOG (Free Opensource Ghost) is used as a way to quickly backup and restore disk images: https://fogproject.org/. This is how we reinstall the servers on a new booking: FOG will PXE boot the servers and write a clean disk image.

A more detailed description of how deployments work can be found in the reflab repo: https://git.opnfv.org/laas-reflab/tree/README