Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 6 additions & 10 deletions onramp/blueprints.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ corresponding to three variants of ``var/main.yml``. This section
documents additional blueprints, each defined by a combination of
Ansible components:

* A ``vars/main-blueprint.yml`` file, checked into the
* A ``vars/main-<blueprint>.yml`` file, checked into the
``aether-onramp`` repo, is the "root" of the blueprint
specification.

Expand All @@ -17,7 +17,7 @@ Ansible components:
OnRamp's global Makefile, provides commands to install and uninstall
the blueprint.

* (Optional) A new ``aether-blueprint`` repo defines the Ansible Roles
* (Optional) A new ``aether-<blueprint>`` repo defines the Ansible Roles
and Playbooks required to deploy a new component.

* (Optional) New Roles, Playbooks, and Templates, checked to existing
Expand Down Expand Up @@ -1169,29 +1169,25 @@ recommend the following guidelines.
possible.

* Avoid embedding configuration parameters in Ansible playbooks.
Such parameters should be collected in either ``vars/main-blueprint.yml``
Such parameters should be collected in either ``vars/main-<blueprint>.yml``
or a component-specific configuration file, depending on their
purpose (see next item).

* Avoid exposing too many variables in
``vars/main-blueprint.yml``. Their main purpose is direct how
``vars/main-<blueprint>.yml``. Their main purpose is to direct how
Ansible deploys Aether, and not to configure the individual
subsystems of a given deployment. The latter details are best
defined in component-specific configuration files (e.g., values
override files), which can then be referenced by
``vars/main-blueprint.yml``. The exception is variables that
``vars/main-<blueprint>.yml``. The exception is variables that
enable/disable a particular feature. Two good examples are
``core.standalone`` and ``oai.simulation``.

* Keep blueprints narrow. One of their main values is to document (in
code) how a particular feature is enabled and configured. Introduce
new roles to keep playbooks narrow. Introduce new values override
files (and other config files) to keep each configuration narrow.
Introduce new ``vars/main-blueprint.yml`` files to document how a
Introduce new ``vars/main-<blueprint>.yml`` files to document how a
single feature is deployed. The exception is "combo" blueprints that
combine multiple existing features (already enabled by
single-feature blueprints) to deploy a comprehensive solution.




91 changes: 74 additions & 17 deletions onramp/ref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Blueprint Specification
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The specification for every Aether blueprint is anchored in an Ansible
variable file (e.g., ``vars/main-blueprint.yml``).
variable file (e.g., ``vars/main-<blueprint>.yml``).

The blueprint names in the first column of the following table link
the relevant OnRamp documentation. The vars files can be found in the
Expand Down Expand Up @@ -58,6 +58,9 @@ repo.
* - `srsRAN 5G <https://docs.aetherproject.org/onramp/blueprints.html#srsran-5g>`__
- `main-srsran.yml`
- srsRAN software radio connected to 5G Core.
* - `OCUDU <https://docs.aetherproject.org/onramp/blueprints.html#ocudu>`__
- `main-ocudu.yml`
- OCUDU software radio connected to 5G Core.
* - `N3IWF <https://docs.aetherproject.org/onramp/blueprints.html#non-3gpp-interworking-function>`__
- `main-n3iwf.yml`
- N3IWF connected to 5G Core to provide internet access to non-3GPP devices.
Expand All @@ -66,7 +69,7 @@ repo.
Ansible Variables
~~~~~~~~~~~~~~~~~~~~

The Ansible ``vars/main-blueprint.yml`` file associated with each
The Ansible ``vars/main-<blueprint>.yml`` file associated with each
blueprint defines the high-level parameters used to configure Aether.
The following identifies the key variables users are likely to modify;
the list is not comprehensive.
Expand Down Expand Up @@ -105,6 +108,9 @@ the list is not comprehensive.
* - `srsran.simulation`
- `true`
- Run UE in simulation mode; set to `false` to connect real UEs.
* - `ocudu.simulation`
- `true`
- Run UE in simulation mode; set to `false` to deploy OCUDU without the simulated UE.
* - `*.helm.local_charts`
- `false`
- Loads Helm Charts from public repo; set to `true` to utilize
Expand Down Expand Up @@ -144,6 +150,12 @@ substitute custom config files.
- `deps/srsran/roles/gNb/templates/gnb_zmq.conf`
* - `srsran.ue.conf_file`
- `deps/srsran/roles/uEsimulator/templates/ue_zmq.conf`
* - `ocudu.servers[0].gnb_conf`
- `gnb_zmq.yaml`
* - `ocudu.servers[0].ue_conf`
- `ue_zmq.conf`
* - `n3iwf.servers[0].conf_file`
- `deps/n3iwf/roles/n3iwf/templates/n3iwf-default.yaml`
* - `ueransim.servers`
- `deps/ueransim/config/custom-gnb.yaml`
* -
Expand Down Expand Up @@ -175,6 +187,10 @@ Ansible inventory file (``hosts.ini``). The following identifies the
- Servers hosting OAI gNB (and optionally UE) containers.
* - `[srsran_nodes]`
- Servers hosting srsRAN gNB (and optionally UE) containers.
* - `[ocudu_nodes]`
- Servers hosting OCUDU gNB (and optionally UE) containers.
* - `[n3iwf_nodes]`
- Servers hosting N3IWF containers.

The `[worker_nodes]` group can be empty, but must be present. The
other groups are blueprint-specific, and with the exception of
Expand Down Expand Up @@ -219,14 +235,11 @@ Other blueprints define component-specific targets, as listed in the
following table. (The Aether-wide targets can also be used for all
other blueprints.)

**All Blueprints**

.. list-table::
:widths: 25 50
:header-rows: 1

* - Target
- Description
* - **All Blueprints**
-
* - `roc-install`
- Install ROC workload.
* - `roc-load`
Expand All @@ -239,22 +252,34 @@ other blueprints.)
- Load dashboard panels into Monitor; assumes Monitor already deployed.
* - `monitor-uninstall`
- Uninstall Monitor workload.
* - **SD-RAN Blueprint**
-

**SD-RAN Blueprint**

.. list-table::
:widths: 25 50

* - `sdran-install`
- Install SD-RAN workload; assumes Core already deployed.
* - `sdran-uninstall`
- Uninstall SD-RAN workload.
* - **UERANSIM Blueprint**
-

**UERANSIM Blueprint**

.. list-table::
:widths: 25 50

* - `ueransim-install`
- Install UERANSIM emulated RAN; assumes Core already deployed.
* - `ueransim-uninstall`
- Uninstall UERANSIM emulated RAN.
* - `ueransim-run`
- Run UERANSIM UE to generate User Plane traffic for the Core.
* - **OAI 5G RAN Blueprint**
-

**OAI 5G RAN Blueprint**

.. list-table::
:widths: 25 50

* - `oai-gnb-install`
- Install container running OAI 5G RAN radio; assumes Core already deployed.
* - `oai-gnb-uninstall`
Expand All @@ -263,8 +288,12 @@ other blueprints.)
- Start container running OAI simulated UE.
* - `oai-uesim-stop`
- Stop container running OAI simulated UE.
* - **srsRAN 5G Blueprint**
-

**srsRAN 5G Blueprint**

.. list-table::
:widths: 25 50

* - `srsran-gnb-install`
- Install container running srsRAN 5G radio; assumes Core already deployed.
* - `srsran-gnb-uninstall`
Expand All @@ -273,8 +302,36 @@ other blueprints.)
- Start container running srsRAN simulated UE.
* - `srsran-uesim-stop`
- Stop container running srsRAN simulated UE.
* - **Multi-UPF Blueprint**
-

**OCUDU Blueprint**

.. list-table::
:widths: 25 50

* - `ocudu-gnb-install`
- Install container running OCUDU gNB; assumes Core already deployed.
* - `ocudu-gnb-uninstall`
- Uninstall OCUDU gNB container.
* - `ocudu-uesim-start`
- Start container running the simulated srsRAN UE for OCUDU.
* - `ocudu-uesim-stop`
- Stop container running the simulated srsRAN UE for OCUDU.

**N3IWF Blueprint**

.. list-table::
:widths: 25 50

* - `n3iwf-install`
- Install N3IWF; assumes Core already deployed.
* - `n3iwf-uninstall`
- Uninstall N3IWF.

**Multi-UPF Blueprint**

.. list-table::
:widths: 25 50

* - `5gc-upf-install`
- Install additional UPF pods; assumes Core already deployed.
* - `5gc-upf-uninstall`
Expand Down