====== Requirements for Pharos Labs ====== This page captures requirements for OPNFV community labs that are hosted by community members. Current status of the community labs is here https://wiki.opnfv.org/pharos_rls_b_labs. Information about usage of the Linux Foundation lab is here https://wiki.opnfv.org/pharos/lf_lab. The Pharos specification defines technical requirements which are consistent across labs. This is needed to facilitate development projects as well as provide CI resources and stable/well-understood test environments. * Pharos specification: https://wiki.opnfv.org/pharos/pharos_specification. * Focus is on base level requirements. Implementations will differ in features/capabilities and scale. * Individual lab specifications need to be machine readable for automation of deployments. * Templates to be filled by labs will help labs determine compliance (for CI/Test/Dev requirements) ==== Community Lab ==== A community lab is defined as a lab providing community assets with a set of SLAs * Fulfills the technical requirements i.e. configured in a way to meet OPNFV’s requirements. * Is either: * accessible to the OPNFV community for Dev (can reserve time and run activities on) ... and/or ... * integrated with CI toolchain (used for CI and Test activities) * Is possible to be monitored with the Pharos/LF tools * Is able to report back to LF infrastructure on test outputs etc. * Is supported by a Pharos project contributor (SLA is documented) ==== Private Lab ==== //(if we want to track this?)// * Fulfills the technical requirements * Has a running deployment of OPNFV ===== Types of lab resources ===== ==== CI ==== * For build/deploy/testing that is continuously and automatically done * Connected/controlled by LF central CI toolchain * Dedicated and available 24/7 * Has specific scripts for automatic reconfiguration, can be deployed by different installers * Has a published support SLA ==== Test ==== * OPNFV needs a number of stable test environments where upgrades are carefully controlled (not continuous) * Need environments with all deployment methods/tools + a variety of hw specs (for diversity) * LF connectivity is needed to control tests and collect results ==== Development ==== * A wide range of capability/capacity options are needed including some specialized environments. (e.g. IPv6, HA, performance tools/testing, …) * It’s not yet clear what will be possible re. repurpose of Dev labs for CI at times when there is a critical shortage of CI resource. ===== CI Lab Requirements ===== * **CI Dedicated Lab**: Labs are dedicated to CI, no sharing. High level CI requirements are listed below ... * CI dedicated labs shall be excluded from the list of labs that serve/made available towards the OPNFV community as development resources. * CI dedicated labs shall provide means/utilities to (re)configure them automatically when necessary. * CI dedicated labs shall be connected to CI using meaningful names stating the purpose of the lab explicitly. CI labs shall provide a SLA ... * CI dedicated labs shall be up and running 24x7 except the planned maintenance work. * If maintenance work needs to be carried out, advance notification shall be sent to community and to other infrastructure projects so the lab can be taken out from CI during this time. * CI dedicated labs shall provide contacts in order to troubleshoot issues that might block CI from performing its activities. ===== Test Lab Requirements ===== Test lab resources have the same requirements as CI labs however ... * Upgrades are planned around specific versions (i.e. not continuous) * For release testing the lab will be approved as "compliant" for Rls B (Compliance is agreed by Octopus, Genesis, Functest and Pharos projects) ===== Dev Lab Requirements ===== The following criteria define "Ready" for Dev labs: 1. Successfully deployed an OPNFV release (Arno, beta-Brahmaputra, …) 2. Successfully run default test suite from Functest (used for Arno) 3. Remote access per recommended methods (using OpenVPN) 4. Lab specs/config documented per Pharos spec. 5. At least one full (bare-metal) POD 6. Test capabilities documented 7. History of activities/tests supported (or planned to support) on Wiki