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

Commit

Permalink
feat: Add gNB Integrator howto
Browse files Browse the repository at this point in the history
  • Loading branch information
Mark Beierl committed Apr 24, 2024
1 parent 67a3625 commit 507f003
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 0 deletions.
2 changes: 2 additions & 0 deletions docs/.wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ icmp
ICMP
IMSI
integrations
integrator
IOV
juju
Juju
Expand Down Expand Up @@ -112,6 +113,7 @@ sub-module
subnet
subnets
systemd
TAC
TCP
Terraform
Terraform's
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ deploy_sdcore_standalone
deploy_sdcore_cups
deploy_sdcore_gnbsim
integrate_sdcore_with_observability
integrate_sdcore_with_external_gnb
```

## Day 2 operations
Expand Down
60 changes: 60 additions & 0 deletions docs/how-to/integrate_sdcore_with_external_gnb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Integrate SD-Core with an Externally Managed Radio

For simplicity in managing deployments, the gNB Name and TAC can be supplied via a charm integration. This is the purpose of the sdcore-gnb-integrator charm.

## Pre-requisites

- A Kubernetes cluster capable of handling the load from both SD-Core and one additional container per represented gNB
- [Charmed 5G Terraform modules][Charmed 5G Terraform modules] Git repository cloned onto the Juju host machine
- Charmed 5g already deployed using Terraform

You need to have the following information ready:

- A name for the gNB
- The name of the juju model for the gNB integrator
- The TAC (represented in hex) that the gNB is serving
- The name of the control plane model

## Deploying gNB Integrator

Given the following:

- Model name: `gnb-integration`
- GNB Name: `gnb01`
- TAC: `B01F`
- Control Plane Model: `control-plane`

Either create a new `.tf` file, or add the following content to you existing `main.tf`.

```console
module "gnb01" {
app_name = "gnb01"
source = "git::https://github.com/canonical/sdcore-gnb-integrator//terraform"
model_name = "gnb-integration"
channel = "1.4/edge"
config = {
tac: B01F
}
}

resource "juju_offer" "gnb01-fiveg-gnb-identity" {
model = "gnb-integration"
application_name = module.gnb01.app_name
endpoint = module.gnb01.fiveg_gnb_identity_endpoint
}

resource "juju_integration" "nms-gnb01" {
model = "control-plane"

application {
name = module.sdcore-control-plane.nms_app_name
endpoint = module.sdcore-control-plane.fiveg_gnb_identity_endpoint
}

application {
offer_url = juju_offer.gnb01-fiveg-gnb-identity.url
}
}
```

[Charmed 5G Terraform modules]: https://github.com/canonical/terraform-juju-sdcore-k8s

0 comments on commit 507f003

Please sign in to comment.