.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

============
Installation
============

.. note::
   * This section is used to describe how a software component is acquired and installed.
   
   * This section is typically: provided for a platform-component and application; and
     referenced in user guides.

   * This note must be removed after content has been added.

Installation Guides
===================

Those are links to the SDC installation guides found in ONAP Confluence:

- `Deploying SDC on a Linux VM for Development <https://wiki.onap.org/display/DW/Deploying+SDC+on+a+Linux+VM+for+Development>`_
- `Using Vagrant-Onap for local deployment of SDC project <https://wiki.onap.org/pages/viewpage.action?pageId=15999821>`_


Environment
===========


Steps
=====
