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

feat: Add gNB Integrator howto #205

Closed
wants to merge 1 commit into from
Closed
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
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
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reading this, it doesn't make sense to force the gNB integrator to the same k8s cluster as the core, so maybe this is not needed?

- [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