Anuket Project

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

LaaS_Lab.png

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


  • No labels