!!!DRAFT!!!
Genesis sandbox: Example requirements
Example requirements to help kick-off the Genesis work.
Requirements fall into several categories:
Target system requirements: Hardware components of the installed system
Target system requirements: Software components of the installed system
Common software artifacts and scripts used across all installers
Requirements for a common user experience
Target system requirements: Hardware components
Target system requirements: Software components
(Evolve: https://wiki.opnfv.org/get_started/get_started_system_state)
Base
OS distribution supported: Centos 7, Ubuntu 14.04
SDN Controller: OpenDaylight Helium SR4, OpenDaylight Lithium
VM controller: OpenStack Juno, OpenStack Kilo
Hypervisor: KVM (version tbd)
Virtual forwarder: OVS (version tbd)
OpenStack
Component | Required? | Version | Notes |
Nova | Yes | Juno, Kilo | |
Glance | Yes | Juno, Kilo | |
Neutron | Yes | Juno, Kilo | |
Keystone | Yes | Juno, Kilo | |
MySQL | Yes | Juno, Kilo | Must be HA |
RabbitMQ | Yes | Juno, Kilo | Must be HA |
Pacemaker cluster stack | Yes | Juno, Kilo | Required for HA |
Corosync | Yes | Juno, Kilo | Required for HA |
Ceilometer | No | Juno, Kilo | |
Horizon | Yes | Juno, Kilo | |
Heat | No | Juno, Kilo | |
Swift | No | Juno, Kilo | |
Cinder | Yes | Juno, Kilo | Required to use Ceph Storage as Cinder backend |
OpenDaylight
OpenDaylight
Component | Sub-Component | Version | Notes |
| odl-dlux-all | | |
| odl-config-persister-all | | OpenDaylight :: Config Persister:: All |
| odl-aaa-all | | OpenDaylight :: AAA :: Authentication :: All Featu |
| odl-ovsdb-all | | OpenDaylight :: OVSDB :: all |
| odl-ttp-all | | OpenDaylight :: ttp :: All |
| odl-openflowplugin-all | | OpenDaylight :: Openflow Plugin :: All |
| odl-adsal-compatibility-all | | OpenDaylight :: controller :: All |
| odl-tcpmd5-all | | |
| odl-adsal-all | | OpenDaylight AD-SAL All Features |
| odl-config-all | | OpenDaylight :: Config :: All |
| odl-netconf-all | | OpenDaylight :: Netconf :: All |
| odl-base-all | | OpenDaylight Controller |
| odl-mdsal-all | | OpenDaylight :: MDSAL :: All |
| odl-yangtools-all | | OpenDaylight Yangtools All |
| odl-restconf-all | | OpenDaylight :: Restconf :: All |
| odl-integration-compatible-with-all | | |
| odl-netconf-connector-all | | OpenDaylight :: Netconf Connector :: All |
| odl-akka-all | | OpenDaylight :: Akka :: All |
| odl-groupbasedpolicy-ofoverlay | | |
| odl-groupbasedpolicy-ui | | |
Common software artifacts and scripts
Scripts
Common puppet manifests
Requirements for a common user experience
HA
Deploy OpenStack with High-Availability (for those components that support it in Kilo) - >=3 control nodes. To be validated with tests (functest defined).
Deploy OpenDaylight with Clustering - >=2 control nodes
Restartable system components of installer. Idempotent behavior for components of the installer
Versioning
Track/control all versions of all components pulled from external sources (user should be able to identify the versions and origins of all software components deployed
Multiple releases support: Support installation of different OPNFV releases (e.g. Arnom Arno SR1, etc.)
Hitless hardware upgrade: Increase size of a deployment (add additional servers) without service interruption.
Hitless software upgrade/downgrade: Upgrade/downgrade the deployment to a new version of OPNFV operating software without tenant disruption
System definition/configuration
Common ability to input site, topology, and server information so that information can be applied to servers during provisioning
User-configurable parameters available via single config.yaml file - with all defaults shown
Allow assignment of different roles to servers, so that hardware and software can be configured according to the role.
Deployment tool to provide for automatic device discovery.
Automatically populate discovered servers into install tool (reduce user-intervention to a minimum).
Deployment process qualities
Configure boot-order of servers for automated (re-)provisioning
Configure RAID (for local storage resiliancy) on boot drives, so that the
OS can be installed on redundant drives. RAID to be configured in the earliest phase of bare metal install and without user interaction.
Enable SELinux by default
Install ssh keys on servers so that key-based login can be used for administration
Configure NTP servers on the server for clock synchronization. Configured as early as possible to avoid later skew. Configured to support multiple pools.
Format non-boot drives on compute servers, so that they can be used as CEPH Object Storage Devices (OSDs).
Specify the VIC in the servers to use, so that I can deploy servers with more than one VIC.
Unique kickstart file per platform/role, so that
OS can be customized for hardware and role.
Option to provide a set of ssh user keys to be installed on all servers (for administration)
Kickstart to wipe-out all old partitions during installation, so that servers perviously deployed can install cleanly.
Disable booting from all but a single PXE slot and single HDD (to reduce boot times).
Allow for enablement of SDNcard on certain profiles for
OS installation and booting.
Security
Protect passwords, keys, credentials: Allow for mandatory access control, method for chaning passwords.
Testing
Documentation
Installer user-guide
Installer release-notes
Networking
Installation method
Bootable disk image (.iso format) to install jumphost (and from there, entire OPNFV system)
Set of scripts to automatically install jumphost (and from there, entire OPNFV system)
Installer sources