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
1 change: 0 additions & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,6 @@ def get_version():
# -- Options for linkcheck ---------------------------------------------------
# The link checker strips off .md from links and then complains
linkcheck_ignore = [
r'https://jenkins.aetherproject.org/.*',
r'https://kubernetes\.io/docs/tasks/run-application/horizontal-pod-autoscale/.*',
r'https://cloud.google.com/.*',
r'https://wiki.aetherproject.org/.*',
Expand Down
1 change: 0 additions & 1 deletion dict.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ Haswell
IPv
Interworking
IoT
Jenkins
Jira
KinD
Ksniff
Expand Down
25 changes: 11 additions & 14 deletions onramp/blueprints.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,8 @@ Ansible components:
* (Optional) Any additional hardware (beyond the Ansible-managed
Aether servers) required to support the blueprint.

* A Jenkins pipeline, added to the set of OnRamp integration tests,
verifies that the blueprint successfully deploys Aether. These
pipelines are defined by Groovy scripts, and can be found in the
``aether-jenkins`` repo.
* (Optional) Automated integration-test coverage verifies that the
blueprint successfully deploys Aether.

The above list also establishes the requirements for adding new
blueprints to OnRamp. The community is to encourage to contribute (and
Expand Down Expand Up @@ -88,7 +86,7 @@ The Multi-UPF blueprint includes the following:
this blueprint is demonstrated using gNBsim, the assumed base models
are given by ``roc-5g-models.json``.)

* The Jenkins pipeline ``upf.groovy`` validates the Multi-UPF
* The OnRamp integration test suite validates the Multi-UPF
blueprint.

To use Multi-UPF, first copy the vars file to ``main.yml``:
Expand Down Expand Up @@ -223,7 +221,7 @@ The SD-RAN blueprint includes the following:
``aether-sdran``) defines the Ansible Roles and Playbooks required
to deploy SD-RAN.

* The Jenkins pipeline ``sdran.groovy`` validates the SD-RAN
* The OnRamp integration test suite validates the SD-RAN
blueprint.

To use SD-RAN, first copy the vars file to ``main.yml``:
Expand Down Expand Up @@ -328,9 +326,8 @@ The UERANSIM blueprint includes the following:
required to deploy UERANSIM. It also contains configuration files
for the emulator.

* The Jenkins pipeline ``ueransim.groovy`` validates the UERANSIM
blueprint. It also illustrates how to run Linux commands that
exercise the user plane from the emulated UE.
* The OnRamp integration test suite validates the UERANSIM
blueprint. It also exercises the user plane from the emulated UE.

To use UERANSIM, first copy the vars file to ``main.yml``:

Expand Down Expand Up @@ -507,7 +504,7 @@ Returning to the OnRamp blueprint, it includes the following:
``deps/5gc/roles/core/templates/sdcore-5g-sriov-values.yaml``.

* Integration tests require SR-IOV capable servers, and so have not
been automated in Jenkins.
been automated as part of the integration test suite.

To use SR-IOV and DPDK, first copy the vars file to ``main.yml``:

Expand Down Expand Up @@ -600,8 +597,8 @@ The blueprint includes the following:
defines the Ansible Roles and Playbooks required to deploy the OAI
gNB.

* The Jenkins pipeline ``oai.groovy`` validates the OAI 5G
blueprint. The pipeline runs OAI in simulation mode, but the blueprint
* The OnRamp integration test suite validates the OAI 5G
blueprint in simulation mode, but the blueprint
has also been validated with USRP X310.

To use an OAI gNB, first copy the vars file to ``main.yml``:
Expand Down Expand Up @@ -771,8 +768,8 @@ The blueprint includes the following:
defines the Ansible Roles and Playbooks required to deploy the srsRAN
gNB.

* The Jenkins pipeline ``srsran.groovy`` validates the srsRAN 5G
blueprint. The pipeline runs srsRAN in simulation mode.
* The OnRamp integration test suite validates the srsRAN 5G
blueprint in simulation mode.

To use an srsRAN gNB, first copy the vars file to ``main.yml``:

Expand Down
5 changes: 2 additions & 3 deletions onramp/directory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ files for all the Helm Charts:

The CI pipeline for each subsystem is implemented as GitHub Actions in
the respective repos. The approach is based on an earlier version
implemented by set of Jenkins jobs, as described in the Lifecycle
implemented by an earlier automation system, as described in the Lifecycle
Management chapter of a companion Edge Cloud Operations book. Of
particular note, the current pipeline adopts the version control
strategy of the original mechanism.
Expand Down Expand Up @@ -125,15 +125,14 @@ There are two other Aether-related repos of note; they are **not**
managed as submodules of ``aether-onramp``:

| Aether Documentation: https://github.com/opennetworkinglab/aether-docs
| Jenkins Pipelines: https://github.com/opennetworkinglab/aether-jenkins

.. admonition:: Troubleshooting Hint

The ``master`` branch of the OnRamp repo corresponds to the latest
*minimally-validated* configuration of Aether, which is known to
work for a subset of the available blueprints (always including
*Quick Start*), but may not run consistently for *all* blueprints.
Once all integration tests (Jenkins Pipelines) consistently succeed
Once all integration tests consistently succeed
for a period of time (~2 weeks) a tagged version of OnRamp is
created. If you are having trouble with ``master`` working for a
particular blueprint, you should try the latest tagged version:
Expand Down
21 changes: 3 additions & 18 deletions onramp/ref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,70 +11,55 @@ Blueprint Specification
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The specification for every Aether blueprint is anchored in an Ansible
variable file (e.g., ``vars/main-blueprint.yml``). Most blueprints
also include a Jenkins pipeline (e.g., ``blueprint.groovy``) that
illustrates how the blueprint is deployed and validated.
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
`aether-onramp <https://github.com/opennetworkinglab/aether-onramp>`__
repo. The groovy files can be found in the `aether-jenkins
<https://github.com/opennetworkinglab/aether-onramp>`__ repo.
repo.


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

* - Name
- Vars File
- Jenkins Pipeline
- Description
* - :doc:`Quick Start </onramp/start>`
- `main-quickstart.yml`
- `quickstart.groovy`
- Minimal configuration running in a single server or VM.
* - :doc:`Emulated RAN </onramp/gnbsim>`
- `main-gnbsim.yml`
- `gnbsim.groovy`
- Scalable 5G Control Plane workload from gNBsim directed at 5G Core.
* - :doc:`Physical gNB </onramp/gnb>`
- `main-gNB.yml`
- N/A
- Physical 5G small cell radio connected to 5G Core; demonstrated with
MOSO CANOPY 5G indoor small cell.
* - `Multiple UPFs <https://docs.aetherproject.org/onramp/blueprints.html#multiple-upfs>`__
- `main-upf.yml`
- `upf.groovy`
- Instantiate multiple UPFs and bind them to distinct Slices.
* - `SD-RAN (RIC) <https://docs.aetherproject.org/onramp/blueprints.html#sd-ran-ric>`__
- `main-sdran.yml`
- `sdran.groovy`
- SD-RAN (with RANSIM traffic) connected to 5G Core.
* - `UERANSIM <https://docs.aetherproject.org/onramp/blueprints.html#ueransim>`__
- `main-ueransim.yml`
- `ueransim.groovy`
- UERANSIM (with ``iperf`` traffic) connected to 5G Core.
* - `Physical eNB <https://docs.aetherproject.org/onramp/blueprints.html#physical-enbs>`__
- `main-eNB.yml`
- N/A
- Physical 4G small cell radio connected to 4G Core; demonstrated with
Sercomm indoor small cell.
* - `SR-IOV/DPDK <https://docs.aetherproject.org/onramp/blueprints.html#enable-sr-iov-and-dpdk>`__
- `main-sriov.yml`
- N/A
- 5G Core with SR-IOV and DPDK optimizations enabled for User Plane.
* - `OAI 5G RAN <https://docs.aetherproject.org/onramp/blueprints.html#oai-5g-ran>`__
- `main-oai.yml`
- `oai.groovy`
- OAI software radio connected to 5G Core.
* - `srsRAN 5G <https://docs.aetherproject.org/onramp/blueprints.html#srsran-5g>`__
- `main-srsran.yml`
- `srsran.groovy`
- srsRAN software radio connected to 5G Core.
* - `N3IWF <https://docs.aetherproject.org/onramp/blueprints.html#non-3gpp-interworking-function>`__
- `main-n3iwf.yml`
- N/A
- N3IWF connected to 5G Core to provide internet access to non-3GPP devices.


Expand Down
26 changes: 3 additions & 23 deletions onramp/testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,9 @@ Integration Tests
--------------------

A set of integration tests validate the released :doc:`Aether
Blueprints </onramp/blueprints>`. The tests are managed by Jenkins,
and can be monitored using the following `Dashboard
<https://jenkins.aetherproject.org/>`__. Log files generated by
recent runs are available on that site.

Source code for the integration tests can be found in the
`aether-jenkins repo
<https://github.com/opennetworkinglab/aether-jenkins>`__ on
GitHub, where each file in the repo corresponds to a Groovy script
that implements a Jenkins pipeline for one of the blueprints.

The pipelines are executed daily, with each pipeline parameterized to
run in multiple jobs. The ``${AgentLabel}`` parameter selects the
Ubuntu release being tested (currently ``22.04`` and ``24.04``), with
all jobs running in AWS VMs (currently resourced as
``M7iFlex2xlarge``). Pipelines that exercise two-server
tests—currently ``ueransim.groovy``, ``upf.groovy``,
``srsran.groovy``, and ``gnbsim.groovy``\—invoke the `AWS CLI
<https://aws.amazon.com/cli/>`__ to create the second VM.

All VMs created by Jenkins run images prepared using Packer, with the
current specification templates available in the `aether-packer repo
<https://github.com/opennetworkinglab/aether-packer>`__ on GitHub.
Blueprints </onramp/blueprints>`. These tests exercise representative
deployment scenarios and simulated 5G workloads used throughout this
guide.

Finally, note that the integration tests run a variety of simulated 5G
workloads, including gNBsim, UERANSIM, OAI 5G RAN (in simulation
Expand Down
Loading