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
9 changes: 4 additions & 5 deletions content/en/docs/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ menu: {main: {weight: 20}}
weight: 1
---

# About Nephio R1
# About Nephio

Our mission is "to deliver carrier-grade, simple, open, Kubernetes-based cloud
native intent automation and common automation templates that materially
Expand Down Expand Up @@ -85,11 +85,10 @@ This release of Nephio focuses:
leveraging the intent-driven, active-reconciliation nature of Kubernetes.
- Infrastructure orchestration/automation using controllers based on
the Cluster API. At this time only KIND cluster creation is supported.
- Orchestration/automation of 5G core network functions deployment and
management. This release focuses on network functions from
[free5gc](https://free5gc.org/).
- Orchestration/automation of 5G Core and RAN network functions deployment and
management.

While the current release uses Cluster API, KIND, and free5gc for demonstration
While the current releases uses Cluster API, KIND, and free5gc/OAI for demonstration
purposes, the exact same principles and even code can be used for managing other
infrastructure and network functions. The *uniformity in systems* principle
means that as long as something is manageable via the Kubernetes Resource Model,
Expand Down
12 changes: 8 additions & 4 deletions content/en/docs/abbreviations.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,18 @@ weight: 3
This page gives brief explanations of abbreviations used in the Nephio project. See also the
[Nephio Glossary](/content/en/docs/glossary.md) for more detailed descriptions of Nephio related terms.

## Nephio related abbreviations
## Nephio Related Abbreviations
* NF: Network Function
* PV: Package Variant
* PVS: Package Variant Set

## free5gc related abbreviations
## 5G 3GPP Related Abbreviations
* AMF: Access and Mobility Management Function
* DNN: Data Network Name
* NAD: Network Attachment Definition
* SMF: Session Management Function
* UPF: User Plane Function
* AUSF: Authentication Server Function
* NRF: Network Repository Function
* UDR: Unified Data Repository
* UDM: Unified Data Management
* DNN: Data Network Name
* NAD: Network Attachment Definition
19 changes: 11 additions & 8 deletions content/en/docs/guides/install-guides/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,16 @@ You will need a account in GCP and `gcloud` installed on your local environment.
### Create a Virtual Machine on GCE

```bash
gcloud compute instances create --machine-type e2-standard-8 \
gcloud compute instances create --machine-type e2-standard-16 \
--boot-disk-size 200GB \
--image-family=ubuntu-2004-lts \
--image-project=ubuntu-os-cloud \
--metadata=startup-script-url=https://raw.githubusercontent.com/nephio-project/test-infra/main/e2e/provision/init.sh \
--metadata=startup-script-url=https://raw.githubusercontent.com/nephio-project/test-infra/v2.0.0/e2e/provision/init.sh,nephio-test-infra-branch=v2.0.0 \
nephio-r2-e2e
```

**NOTE**: e2-standard-16 is recommended and e2-standard-8 is minimum.

### Follow the Installation on GCE

If you want to watch the progress of the installation, give it about 30 seconds to reach a network accessible state, and
Expand All @@ -64,7 +66,7 @@ This install has been verified on VMs running on vSphere, OpenStack, AWS, and Az
Order or create a VM with the following specification:

- Linux Flavour: Ubuntu-20.04-focal
- 8 cores
- Minimum 8 cores and recommended 16 Cores
- 32 GB memory
- 200 GB disk size
- Default user with sudo passwordless permissions
Expand Down Expand Up @@ -98,9 +100,9 @@ sudo netplan apply
Log onto your VM and run the following command:

```bash
wget -O - https://raw.githubusercontent.com/nephio-project/test-infra/v1.0.1/e2e/provision/init.sh | \
wget -O - https://raw.githubusercontent.com/nephio-project/test-infra/v2.0.0/e2e/provision/init.sh | \
sudo NEPHIO_DEBUG=false \
NEPHIO_BRANCH=main \
NEPHIO_BRANCH=v2.0.0 \
NEPHIO_USER=ubuntu \
bash
```
Expand All @@ -112,12 +114,11 @@ The following environment variables can be used to configure the installation:
| NEPHIO_USER | userid | ubuntu | The user to install the sandbox on (must have sudo passwordless permissions) |
| NEPHIO_DEBUG | false or true | false | Controls debug output from the install |
| NEPHIO_HOME | path | /home/$NEPHIO_USER | The directory to check out the install scripts into |
| NEPHIO_DEPLOYMENT_TYPE | r2 or one-summit | r2 | Controls the type of installation to be carried out |
| RUN_E2E | false or true | false | Specifies whether end-to-end tests should be executed or not |
| DOCKERHUB_USERNAME | alpha-num string | | Specifies the dockerhub username |
| DOCKERHUB_TOKEN | alpha-num string | | Specifies the password or token |
| NEPHIO_REPO | URL | https://github.com/nephio-project/test-infra.git | URL of the repository to be used for installation |
| NEPHIO_BRANCH | branch or tag | main | Tag or branch name to use in NEPHIO_REPO |
| NEPHIO_BRANCH | branch or tag | main/v2.0.0 | Tag or branch name to use in NEPHIO_REPO |
| DOCKER_REGISTRY_MIRRORS | list of URLs in JSON format | | List of docker registry mirrors in JSON format, or empty for no mirrors to be set. Example value: ``["https://docker-registry-remote.mycompany.com", "https://docker-registry-remote2.mycompany.com"]`` |

### Follow the Installation on VM
Expand Down Expand Up @@ -173,7 +174,9 @@ ssh <user>@<vm-address>

## Next Steps

* Step through the [Free5GC](/content/en/docs/guides/user-guides/exercise-1-free5gc.md) and [OAI](/content/en/docs/guides/user-guides/exercise-2-oai.md) exercises
* Step through the exercises
* [Free5GC Testbed Deployment and E2E testing with UERANSIM](/content/en/docs/guides/user-guides/exercise-1-free5gc.md)
* [OAI Core and RAN Testbed Deployment and E2E testing](/content/en/docs/guides/user-guides/exercise-2-oai.md)
* Learn more about the [Nephio demo sandbox](/content/en/docs/guides/install-guides/explore-sandbox.md)
* Dig into the [user guide](/content/en/docs/guides/user-guides/_index.md)
* Create a [Bring-Your-Own-Cluster](/content/en/docs/guides/install-guides/install-on-byoc.md) Nephio Installation
5 changes: 3 additions & 2 deletions content/en/docs/guides/install-guides/install-on-gce.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ gcloud compute instances create --machine-type e2-standard-16 \
nephio-r2-e2e
```

**NOTE**: e2-standard-16 is recommended and e2-standard-8 is minimum.

### Follow the Installation on GCE

If you want to watch the progress of the installation, give it about 30
Expand All @@ -66,7 +68,7 @@ Azure.
Order or create a VM with the following specification:

- Linux Flavour: Ubuntu-20.04-focal
- 16 cores
- Minimum 8 cores and recommended 16 Cores
- 32 GB memory
- 200 GB disk size
- Default user with sudo passwordless permissions
Expand Down Expand Up @@ -114,7 +116,6 @@ The following environment variables can be used to configure the installation:
| NEPHIO_USER | userid | ubuntu | The user to install the sandbox on (must have sudo passwordless permissions) |
| NEPHIO_DEBUG | false or true | false | Controls debug output from the install |
| NEPHIO_HOME | path | /home/$NEPHIO_USER | The directory to check out the install scripts into |
| NEPHIO_DEPLOYMENT_TYPE | r1 or one-summit | r1 | Controls the type of installation to be carried out |
| RUN_E2E | false or true | false | Specifies whether end-to-end tests should be executed or not |
| NEPHIO_REPO | URL | https://github.com/nephio-project/test-infra.git |URL of the repository to be used for installation |
| NEPHIO_BRANCH | branch or tag | main | Tag or branch name to use in NEPHIO_REPO |
Expand Down
16 changes: 8 additions & 8 deletions content/en/docs/guides/user-guides/exercise-1-free5gc.md
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ rawtopology.topo.nephio.org/nephio created
```
</details>

## Step 4: Deploy Free5GC Control Plane Functions
## Step 4: Deploy free5GC Control Plane Functions

While the Edge clusters are deploying (which will take 5-10 minutes), you can install the free5gc functions other than
SMF, AMF, and UPF. For this, you will use the Regional cluster. Since these are all installed with a single package, you
Expand Down Expand Up @@ -531,9 +531,9 @@ statefulset.apps/mongodb 1/1 3m31s
```
</details>

## Step 5: Deploy Free5GC Operator in the Workload clusters
## Step 5: Deploy free5GC Operator in the Workload clusters

Now you will need to deploy the free5gc operator across all of the Workload clusters (regional and edge). To do this,
Now you will need to deploy the free5GC operator across all of the Workload clusters (regional and edge). To do this,
you use another PackageVariantSet. This one uses an objectSelector to select the WorkloadCluster resources previously
added to the Management cluster when you had deployed the nephio-workload-cluster packages (manually as well as via
PackageVariantSet).
Expand All @@ -550,7 +550,7 @@ packagevariantset.config.porch.kpt.dev/free5gc-operator created
```
</details>

## Step 6: Check Free5GC Operator Deployment
## Step 6: Check free5GC Operator Deployment

Within five minutes of applying the free5gc Operator YAML file, you should see `free5gc` namespaces on your regional and
edge clusters:
Expand Down Expand Up @@ -766,7 +766,7 @@ The UERANSIM package can be deployed to the edge01 cluster, where it will simula
packages, UERANSIM needs to be configured to attach to the correct networks and use the correct IP address. Thus, you
use our standard specialization techniques and pipeline to deploy UERANSIM, just like the other network functions.

However, before you do that, let us register the UE with free5gc as a subscriber. You will use the free5gc Web UI to do
However, before you do that, let us register the UE with free5GC as a subscriber. You will use the free5GC Web UI to do
this. To access it, you need to open another port forwarding session. Assuming you have the `regional-kubeconfig` file
you created earlier in your home directory, you need to establish another ssh session from your workstation to the VM,
port forwarding port 5000.
Expand All @@ -787,9 +787,9 @@ ssh <user>@<vm-address> \
port-forward --namespace=free5gc-cp svc/webui-service 5000
```

You should now be able to navigate to [http://localhost:5000/](http://localhost:5000/) and access the free5gc WebUI.
The test subscriber is the same as the standard free5gc default subscriber. Thus, you can follow the
[instructions](https://free5gc.org/guide/Webconsole/Create-Subscriber-via-webconsole/) on the free5gc site, but start at
You should now be able to navigate to [http://localhost:5000/](http://localhost:5000/) and access the free5GC WebUI.
The test subscriber is the same as the standard free5GC default subscriber. Thus, you can follow the
[instructions](https://free5gc.org/guide/Webconsole/Create-Subscriber-via-webconsole/) on the free5GC site, but start at
Step 4.

Once the subscriber is registered, you can deploy UERANSIM:
Expand Down
67 changes: 66 additions & 1 deletion content/en/docs/guides/user-guides/exercise-2-oai.md
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,71 @@ vpc-ran True
```
</details>

After the networks are succesfully configured lets configure metallb ip-address pool for each workload cluster. Some workloads in the workload cluster require metallb to expose their services.


```bash
./test-infra/e2e/tests/oai/001b-infra-metal-lb.sh
```

<details>
<summary>The output is similar to:</summary>

```console
21:58:35 - INFO: looking for packagerev default/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b using /home/ubuntu/.kube/config
21:58:35 - INFO: Found packagerev default/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b
[RUNNING] "gcr.io/kpt-fn/search-replace:v0.2"
[PASS] "gcr.io/kpt-fn/search-replace:v0.2" in 2.5s
Results:
[info] spec.addresses[0]: Mutated field value to "172.18.16.0/20"
[RUNNING] "gcr.io/kpt-fn/set-annotations:v0.1.4"
[PASS] "gcr.io/kpt-fn/set-annotations:v0.1.4" in 3.1s
21:58:42 - INFO: looking for Update.*packagerevisionresources/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b, log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:58:42 - INFO: Found Update.*packagerevisionresources/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b, log entry in porch server
mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b proposed
21:58:43 - INFO: looking for Update.*packagerevisions/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b, log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:58:43 - INFO: Found Update.*packagerevisions/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b, log entry in porch server
mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b approved
21:58:46 - INFO: looking for Update.*/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b.*/approval log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:58:46 - INFO: Found Update.*/mgmt-staging-7ad404ab9e0e02af747501c6ce9c2c183d02694b.*/approval log entry in porch server
~
21:58:48 - INFO: looking for packagerev default/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3 using /home/ubuntu/.kube/config
21:58:48 - INFO: Found packagerev default/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3
[RUNNING] "gcr.io/kpt-fn/search-replace:v0.2"
[PASS] "gcr.io/kpt-fn/search-replace:v0.2" in 300ms
Results:
[info] spec.addresses[0]: Mutated field value to "172.18.32.0/20"
[RUNNING] "gcr.io/kpt-fn/set-annotations:v0.1.4"
[PASS] "gcr.io/kpt-fn/set-annotations:v0.1.4" in 1.3s
21:58:51 - INFO: looking for Update.*packagerevisionresources/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3, log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:58:51 - INFO: Found Update.*packagerevisionresources/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3, log entry in porch server
mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3 proposed
21:58:52 - INFO: looking for Update.*packagerevisions/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3, log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:58:52 - INFO: Found Update.*packagerevisions/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3, log entry in porch server
mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3 approved
21:58:55 - INFO: looking for Update.*/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3.*/approval log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:58:55 - INFO: Found Update.*/mgmt-staging-0c11427319b42b1f9e85f27ad22f82d27c9978a3.*/approval log entry in porch server
~
21:58:57 - INFO: looking for packagerev default/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722 using /home/ubuntu/.kube/config
21:58:57 - INFO: Found packagerev default/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722
[RUNNING] "gcr.io/kpt-fn/search-replace:v0.2"
[PASS] "gcr.io/kpt-fn/search-replace:v0.2" in 200ms
Results:
[info] spec.addresses[0]: Mutated field value to "172.18.48.0/20"
[RUNNING] "gcr.io/kpt-fn/set-annotations:v0.1.4"
[PASS] "gcr.io/kpt-fn/set-annotations:v0.1.4" in 1.3s
21:59:00 - INFO: looking for Update.*packagerevisionresources/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722, log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:59:00 - INFO: Found Update.*packagerevisionresources/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722, log entry in porch server
mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722 proposed
21:59:01 - INFO: looking for Update.*packagerevisions/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722, log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:59:01 - INFO: Found Update.*packagerevisions/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722, log entry in porch server
mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722 approved
21:59:04 - INFO: looking for Update.*/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722.*/approval log entry in porch server(porch-server-68bfdddbbf-pmnmd)
21:59:04 - INFO: Found Update.*/mgmt-staging-f1b8e75b6c87549d67037f784abc0083ac601722.*/approval log entry in porch server
~
```
</details>

## Step 3: Deploy Dependencies, MySQL database, OAI Core and RAN Operator in the Workload clusters

Now you will need to deploy the MySQL database required by OAI UDR network function, OAI Core and RAN operators across the Workload clusters. To do this, you use `PackageVariant` and `PackageVariantSet`. Later uses an objectSelector to select the WorkloadCluster resources previously added to the Management cluster when you had deployed the nephio-workload-cluster packages (manually as well as via
Expand Down Expand Up @@ -476,7 +541,7 @@ packagevariant.config.porch.kpt.dev/oai-upf-edge created
```
</details>

All the NFs will wait for NRF to come up and then they will register to NRF. SMF has a dependency on UPF which is described by `dependency.yaml` file in SMF package. It will wait till the time UPF is deployed. It takes around ~20 mins for the whole core network to come up.
All the NFs will wait for NRF to come up and then they will register to NRF. SMF has a dependency on UPF which is described by `dependency.yaml` file in SMF package. It will wait till the time UPF is deployed. It takes around ~20 mins for the whole core network to come up. NRF is exposing its service via metallb external ip-address. In case metallb ip-address pool is not properly defined in the previous section, then UPF will not be able to register to NRF and in this case SMF and UPF will not be able to communicate.

### Check Core Network Deployment

Expand Down
10 changes: 5 additions & 5 deletions content/en/docs/release-notes/R1.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Basic web UI to view and manage the packages and resources within them.

### Packages

* Kpt packages for all [free5gc](https://free5gc.org/) services
* Kpt packages for all [free5GC](https://free5gc.org/) services
* Packages for the core Nephio services
* Packages for the Cluster API services for cluster creation
* Packages for the dependent services
Expand All @@ -48,9 +48,9 @@ Basic web UI to view and manage the packages and resources within them.
* Create Kubernetes clusters. This functionality is based on the Cluster API. At
this time only KIND cluster creation is supported.
* Fully automated deployment of UPF, SMF and AMF services of
[free5Gc](https://free5gc.org/). These are deployed on multiple clusters
[free5GC](https://free5gc.org/). These are deployed on multiple clusters
based on user's intent expressed via the CRDs.
* Deployment of other free5gc functions.
* Deployment of other free5GC functions.
* Auto scaling up of the UPF, SMF and AMF services based on changes to the capacity
requirements expressed as user intent.

Expand All @@ -67,10 +67,10 @@ Basic web UI to view and manage the packages and resources within them.
* Web UI features are limited to view/edit of packages and resources in those
packages and their deployment. Additional features will be added
in subsequent releases.
* When the capacities of the UPF,SMF and AMF NFs are changed, the free5gc Operator on the
* When the capacities of the UPF,SMF and AMF NFs are changed, the free5GC Operator on the
Workload cluster will instantiate a new POD with correspondingly modified
resources (CPU, memory etc.) During this process, the pod will restart. This is a
limitation of free5gc.
limitation of free5GC.
* Only Gitea works with automated cluster provisioning to create new
repositories and join them to Nephio. To use a different Git provider, you
must manually provision cluster repositories, register them to the Nephio
Expand Down
Loading