SD-Core AMF K8s
- Canonical Telco
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/beta | 11 | 03 Jan 2024 | |
latest/edge | 15 | 21 Jan 2024 | |
1.4/beta | 160 | 26 Apr 2024 | |
1.4/edge | 796 | 21 Oct 2024 | |
1.5/edge | 783 | 20 Oct 2024 | |
1.3/beta | 11 | 22 Jan 2024 | |
1.3/edge | 103 | 05 Apr 2024 |
juju deploy sdcore-amf-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_amf_k8s.v0.fiveg_n2
-
- Last updated 07 Aug 2024
- Revision Library version 0.3
Library for the fiveg_n2
relation.
This library contains the Requires and Provides classes for handling the fiveg_n2
interface.
The purpose of this library is to relate a charm claiming to be able to provide or consume information on connectivity to the N2 plane.
Getting Started
From a charm directory, fetch the library using charmcraft
:
charmcraft fetch-lib charms.sdcore_amf_k8s.v0.fiveg_n2
Add the following libraries to the charm's requirements.txt
file:
- pydantic
- pytest-interface-tester
Requirer charm
The requirer charm is the one requiring the N2 information.
Example:
from ops.charm import CharmBase
from ops.main import main
from charms.sdcore_amf_k8s.v0.fiveg_n2 import N2InformationAvailableEvent, N2Requires
logger = logging.getLogger(__name__)
class DummyFivegN2Requires(CharmBase):
def __init__(self, *args):
super().__init__(*args)
self.n2_requirer = N2Requires(self, "fiveg-n2")
self.framework.observe(
self.n2_requirer.on.n2_information_available, self._on_n2_information_available
)
def _on_n2_information_available(self, event: N2InformationAvailableEvent):
amf_ip_address = event.amf_ip_address
amf_hostname = event.amf_hostname
amf_port = event.amf_port
<do something with the amf IP, hostname and port>
if __name__ == "__main__":
main(DummyFivegN2Requires)
Provider charm
The provider charm is the one providing the information about the N2 interface.
Example:
from ops.charm import CharmBase, RelationJoinedEvent
from ops.main import main
from charms.sdcore_amf_k8s.v0.fiveg_n2 import N2Provides
class DummyFivegN2ProviderCharm(CharmBase):
HOST = "amf"
PORT = 38412
IP_ADDRESS = "192.168.70.132"
def __init__(self, *args):
super().__init__(*args)
self.n2_provider = N2Provides(self, "fiveg-n2")
self.framework.observe(
self.on.fiveg_n2_relation_joined, self._on_fiveg_n2_relation_joined
)
def _on_fiveg_n2_relation_joined(self, event: RelationJoinedEvent):
if self.unit.is_leader():
self.n2_provider.set_n2_information(
amf_ip_address=self.IP_ADDRESS,
amf_hostname=self.HOST,
amf_port=self.PORT,
)
if __name__ == "__main__":
main(DummyFivegN2ProviderCharm)
Index
class ProviderAppData
Description
Provider app data for fiveg_n2. None
class ProviderSchema
Description
Provider schema for fiveg_n2. None
def data_is_valid(data)
Return whether data is valid.
Arguments
Data to be validated.
Returns
True if data is valid, False otherwise.
class N2InformationAvailableEvent
Description
Charm event emitted when N2 information is available. It carries the AMF hostname. None
Methods
Description
Init. None
Description
Return snapshot. None
Description
Restores snapshot. None
class N2RequirerCharmEvents
Description
List of events that the N2 requirer charm can leverage. None
class N2Requires
Description
Class to be instantiated by the N2 requirer charm. None
Methods
N2Requires. __init__( self , charm: CharmBase , relation_name: str )
Description
Init. None
N2Requires. amf_ip_address( self )
Return AMF IP address.
Returns
AMF IP address.
N2Requires. amf_hostname( self )
Return AMF hostname.
Returns
AMF hostname.
N2Requires. amf_port( self )
Return the port used to connect to the AMF host.
Returns
AMF port.
class N2Provides
Description
Class to be instantiated by the charm providing the N2 data. None
Methods
N2Provides. __init__( self , charm: CharmBase , relation_name: str )
Description
Init. None
N2Provides. set_n2_information( self , amf_ip_address: str , amf_hostname: str , amf_port: int )
Set the hostname and the ngapp port in the application relation data.
Arguments
AMF IP address.
AMF hostname.
AMF NGAPP port.
Returns
None