Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

Commit

Permalink
Initial draft
Browse files Browse the repository at this point in the history
Minor rework, spelling

Using mgmt instead of k8s.priv

Reorganization
New directory structure per tutorial
Multi page for CUPS

Fixing typo finally

Fleshing out details

Added nore IP address info, started on configure and updated observability
to include user-plane

chore: Adds semantic PR title validation (#159)

feat: Add networking section in reference (#158)

Signed-off-by: gatici <gulsum.atici@canonical.com>

feat: SD-Core CUPS howto (#149)

Co-authored-by: Ghislain Bourgeois <ghislain.bourgeois@canonical.com>
Co-authored-by: Guillaume Belanger <guillaume.belanger@canonical.com>

feat: Standardises section naming and ordering (#161)

feat: Add how to enable hugepages (#160)

Signed-off-by: gatici <gulsum.atici@canonical.com>
Co-authored-by: Daniel Arndt <daniel.arndt@canonical.com>

fix: Fix QoS bitrate missing unit in tutorial (#162)

fix: Removes plmnid parameter from subscriber creation (#163)

docs: Moves tutorial content to "getting started" (#165)

docs: Uses charmed 5G specific networking content (#166)

feat: Add backup and restore procedures (#167)

docs: Removes unnecessary content from tutorial (#168)

Rework to match new structure

Fixing spelliing

Updated to single file

Fixing spelling

Removing duplicate images

Rename to Mastering

Removing duplicate statement

docs: Combines all MicroK8s related commands in 1 step (#169)

docs: Separates day 1 from day 2 operations (#170)

docs: Changes doc to use subnet instead of ip (#172)

docs: Uses NMS instead of curls for managing sd-core (#173)

Fixing heading levels

Removed unnecessary note.  UPF IP is not needed

fix: Fixing typo in tutorial (#174)

chore: Adding details about how to access Grafana (#175)

chore: update default device group name (#176)

Updates to use NMS

Image for mastering tutorial

Spelling corrections

Adding user to microk8s group

Ingnoring http://*.mgmt for link checks

docs: Uses nipio instead of /etc/hosts (#177)

docs: Rename HugePages how-to and add steps to enable HugePages in host (#171)

Update docs/tutorials/mastering.md

Co-authored-by: Bartlomiej Gmerek <42570669+Gmerold@users.noreply.github.com>

Update docs/tutorials/mastering.md

Co-authored-by: Guillaume Belanger <guillaume.belanger@canonical.com>

Update docs/tutorials/mastering.md

Co-authored-by: Guillaume Belanger <guillaume.belanger@canonical.com>

Updates MACVLAN for reboot

Removing IMSI

Update to correct -k8s names
  • Loading branch information
markbeierl authored and Mark Beierl committed Dec 15, 2023
1 parent 3078c4d commit a7cf061
Show file tree
Hide file tree
Showing 33 changed files with 4,045 additions and 506 deletions.
20 changes: 20 additions & 0 deletions .github/workflows/lint-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: "Lint PR"

on:
pull_request_target:
types:
- opened
- edited
- synchronize

permissions:
pull-requests: read

jobs:
main:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
65 changes: 62 additions & 3 deletions docs/.wordlist.txt
Original file line number Diff line number Diff line change
@@ -1,39 +1,98 @@
Permalink

addon
addons
AMF
AUSF
AVX
APIs
Aether
balancer
bessd
Bitrate
bootloader
CIDR
Charmhub
CharmHub
CNI
CSR
CPUs
DN
DNS
gb
GiB
Gi
gNB
gnb
Gnbsim
gnbsim
gNB
gNodeB
Grafana
GTP
hardcoded
Haswell
hostname
http
hugepages
HugePages
ICMP
IMSI
integrations
IOV
juju
Juju
K8s
Kubernetes
LoadBalancer
lifecycle
MACVLAN
mbit
MetalLB
mgmt
MicroK
microk
MCC
MetalLB
MicroK
MNC
Mongo
Multus
N3
N4
N6
NGAPP
NMS
nms
NRF
NSSF
Observability
OCI
ONOS
ONF
ONF's
OPC
PacketPool
PCF
pdpe
RDRAND
PDU
PFCP
RAN
Rockcraft
Ryzen
SCTP
sdcore
SMF
subnet
subnets
TCP
TLS
Traefik
UDM
UDP
UDR
UE
UPF
UPFs
unsecure
VLAN
Webui
Ryzen
1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
r'https://github\.com/.*'
]
linkcheck_anchors_ignore_for_url.extend(custom_linkcheck_anchors_ignore_for_url)
linkcheck_ignore = [r'http://.*\.mgmt/']

# Tags cannot be added directly in custom_conf.py, so add them here
for tag in custom_tags:
Expand Down
25 changes: 25 additions & 0 deletions docs/how-to/backup_sdcore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Backup SD-Core

Backups of SD-Core are managed through the `mongodb-k8s` charm. This guide
highlights the steps required by referencing that charm's documentation.

## Integrate Mongo with S3

`mongodb-k8s` saves backup to S3 compatible storage. The first step is to
[configure S3 storage](https://charmhub.io/mongodb-k8s/docs/h-configure-s3?channel=5/edge).

## Save the cluster password

The restore procedure currently only works with a full redeployment. For this
reason, the Mongo cluster password will be required.

```bash
juju run mongodb-k8s/leader get-password
```

Save the password in a safe place.

## Create and list backups

`mongodb-k8s` is now ready to
[create and list backups](https://charmhub.io/mongodb-k8s/docs/h-create-and-list-backups?channel=5/edge).
64 changes: 0 additions & 64 deletions docs/how-to/deploy_sdcore.md

This file was deleted.

77 changes: 77 additions & 0 deletions docs/how-to/deploy_sdcore_cups.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Deploy SD-Core with Control Plane and User Plane Separation

This guide covers how to install a SD-Core 5G core network with Control Plane and User Plane Separation (CUPS).

## Requirements

- Juju >= 3.1
- A Juju controller has been bootstrapped, and is externally reachable
- A Control Plane Kubernetes cluster configured with
- 1 available IP address for the Access and Mobility Management Function (AMF)
- A User Plane Kubernetes cluster configured with
- 1 available IP address for the User Plane Function (UPF)
- Multus
- MACVLAN or SR-IOV interfaces for Access and Core networks
- 1 Juju cloud per Kubernetes cluster named `control-plane-cloud` and `user-plane-cloud` respectively

## Deploy SD-Core Control Plane

Create a Juju overlay file.

```console
cat << EOF > control-plane-overlay.yaml
applications:
  amf:
    options:
      external-amf-ip: 10.201.0.201
      external-amf-hostname: amf.core
EOF
```

Create a Juju model to represent the Control Plane.

```console
juju add-model control-plane control-plane-cloud
```

Deploy the control plane bundle.
```console
juju deploy sdcore-control-plane --trust --channel=edge --overlay control-plane-overlay.yaml
```

Expose the integration offer for the AMF N2 interface.

```console
juju offer control-plane.amf:fiveg-n2
```

## Deploy SD-Core User Plane

Create a Juju overlay file.

```console
cat << EOF > upf-overlay.yaml
applications:
upf:
options:
access-gateway-ip: 10.202.0.1
access-interface: access
access-ip: 10.202.0.10/24
core-gateway-ip: 10.203.0.1
core-interface: core
core-ip: 10.203.0.10/24
gnb-subnet: 10.204.0.0/24
EOF
```

Create a Juju model.

```console
juju add-model user-plane user-plane-cloud
```

Deploy the user plane bundle.

```console
juju deploy sdcore-user-plane --trust --channel=edge --overlay upf-overlay.yaml
```
36 changes: 36 additions & 0 deletions docs/how-to/deploy_sdcore_gnbsim.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Deploy SD-Core gNB Simulator

This guide covers how to install and configure the SD-Core gNB Simulator.

## Requirements

- Juju >= 3.1
- A Juju controller has been bootstrapped
- A Kubernetes cluster configured with Multus
- 1 Juju cloud for the Kubernetes cluster has been added

## Deploy gNB Simulator

Create a Juju model.

```console
juju add-model gnbsim gnbsim-cloud
```

Deploy the `sdcore-gnbsim` operator charm.

```console
juju deploy sdcore-gnbsim gnbsim --trust --channel=edge \
--config gnb-interface=ran \
--config gnb-ip-address=10.204.0.10/24 \
--config icmp-packet-destination=8.8.8.8 \
--config upf-gateway=10.204.0.1 \
--config upf-subnet=10.202.0.0/24
```

Integrate the simulator with the offering from SD-Core.

```console
juju consume control-plane.amf
juju integrate gnbsim:fiveg-n2 amf:fiveg-n2
```
22 changes: 22 additions & 0 deletions docs/how-to/deploy_sdcore_standalone.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Deploy SD-Core Standalone

This guide covers how to install a standalone SD-Core 5G core network, suitable for lab or proof of concept purposes.

## Requirements

You will need a Kubernetes cluster installed and configured with Multus.

- Juju >= 3.1
- Kubernetes >= 1.25
- A `LoadBalancer` Service for Kubernetes
- Multus

## Deploy

```bash
juju deploy sdcore --trust --channel=edge
```

## Configure

To view all configuration options, please visit the bundle's [Charmhub page](https://charmhub.io/sdcore/).
Loading

0 comments on commit a7cf061

Please sign in to comment.