SD-Core 5G UPF K8s
- Canonical Telco
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/beta | 13 | 03 Jan 2024 | |
latest/edge | 21 | 21 Jan 2024 | |
1.4/beta | 280 | 29 May 2024 | |
1.4/edge | 659 | 29 Oct 2024 | |
1.5/edge | 669 | 17 Nov 2024 | |
1.3/beta | 13 | 22 Jan 2024 | |
1.3/edge | 105 | 05 Apr 2024 |
juju deploy sdcore-upf-k8s --channel 1.4/beta
Deploy Kubernetes operators easily with Juju, the Universal Operator Lifecycle Manager. Need a Kubernetes cluster? Install MicroK8s to create a full CNCF-certified Kubernetes system in under 60 seconds.
Platform:
charms.sdcore_upf_k8s.v0.fiveg_n3
-
- Last updated 07 Aug 2024
- Revision Library version 0.3
Library for the fiveg_n3
relation.
This library offers a way of providing and consuming an IP address of the SDCORE's UPF. In a typical 5G network, UPF's IP address is consumed by the gNodeBs, in order to establish communication over the N3 interface.
To get started using the library, you need to fetch the library using charmcraft
.
cd some-charm
charmcraft fetch-lib charms.sdcore_upf_k8s.v0.fiveg_n3
Add the following libraries to the charm's requirements.txt
file:
- pydantic
- pytest-interface-tester
Charms providing the fiveg_n3
relation should use N3Provides
.
Typical usage of this class would look something like:
```python
...
from charms.sdcore_upf_k8s.v0.fiveg_n3 import N3Provides
...
class SomeProviderCharm(CharmBase):
def __init__(self, *args):
...
self.fiveg_n3 = N3Provides(charm=self, relation_name="fiveg_n3")
...
self.framework.observe(self.fiveg_n3.on.fiveg_n3_request, self._on_fiveg_n3_request)
def _on_fiveg_n3_request(self, event):
...
self.fiveg_n3.publish_upf_information(
relation_id=event.relation_id,
upf_ip_address=ip_address,
)
```
And a corresponding section in charm's `metadata.yaml`:
```
provides:
fiveg_n3: # Relation name
interface: fiveg_n3 # Relation interface
```
Charms that require the fiveg_n3
relation should use N3Requires
.
Typical usage of this class would look something like:
```python
...
from charms.sdcore_upf_k8s.v0.fiveg_n3 import N3Requires
...
class SomeRequirerCharm(CharmBase):
def __init__(self, *args):
...
self.fiveg_n3 = N3Requires(charm=self, relation_name="fiveg_n3")
...
self.framework.observe(self.upf.on.fiveg_n3_available, self._on_fiveg_n3_available)
def _on_fiveg_n3_available(self, event):
upf_ip_address = event.upf_ip_address
# Do something with the UPF's IP address
```
And a corresponding section in charm's `metadata.yaml`:
```
requires:
fiveg_n3: # Relation name
interface: fiveg_n3 # Relation interface
```
Index
class ProviderAppData
Description
Provider app data for fiveg_n3. None
class ProviderSchema
Description
Provider schema for fiveg_n3. None
def data_matches_provider_schema(data: dict)
Return whether data matches provider schema.
Arguments
Data to be validated.
Returns
True if data matches provider schema, False otherwise.
class FiveGN3RequestEvent
Description
Dataclass for the fiveg_n3
request event. None
Methods
FiveGN3RequestEvent. __init__( self , handle , relation_id: int )
Description
Set relation id. None
FiveGN3RequestEvent. snapshot( self )
Description
Return event data. None
FiveGN3RequestEvent. restore( self , snapshot )
Description
Restore event data. None
class N3ProviderCharmEvents
Description
Custom events for the N3Provider. None
class N3Provides
Description
Class to be instantiated by provider of the fiveg_n3
. None
Methods
N3Provides. __init__( self , charm: CharmBase , relation_name: str )
Observe relation joined event.
Arguments
Juju charm
Relation name
N3Provides. publish_upf_information( self , relation_id: int , upf_ip_address: str )
Set UPF's IP address in the relation data.
Arguments
Relation ID
UPF's IP address
class N3AvailableEvent
Description
Dataclass for the fiveg_n3
available event. None
Methods
N3AvailableEvent. __init__( self , handle , upf_ip_address: str )
Description
Set certificate. None
N3AvailableEvent. snapshot( self )
Description
Return event data. None
N3AvailableEvent. restore( self , snapshot )
Description
Restore event data. None
class N3RequirerCharmEvents
Description
Custom events for the N3Requirer. None
class N3Requires
Description
Class to be instantiated by requirer of the fiveg_n3
. None
Methods
N3Requires. __init__( self , charm: CharmBase , relation_name: str )
Observe relation joined and relation changed events.
Arguments
Juju charm
Relation name