magma-orc8r-libs
- Canonical Telco
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/edge | 30 | 27 Apr 2023 | |
latest/edge | 23 | 01 Feb 2023 |
juju deploy magma-orc8r-libs --channel edge
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.magma_orc8r_libs.v0.magma_orc8r_libs
-
- Last updated 16 Dec 2021
- Revision Library version 0.2
Orc8rBase Library.
This library is designed to enable developers to easily create new charms for Magma orc8r. This library contains all the logic necessary to wait for necessary relations and be deployed.
When initialised, this library binds a handler to the parent charm's pebble_ready
event. This will ensure that the service is configured when this event is triggered.
The constructor simply takes the following:
- Reference to the parent charm (CharmBase)
- The service name (str)
- The startup command (str)
- Whether a database relation is needed (bool)
- The pebble Ready event method (ops.CharmEvent)
Getting Started
To get started using the library, you just need to fetch the library using charmcraft
. Note
that you also need to add ops-lib-pgsql
to your charm's requirements.txt
.
cd some-charm
charmcraft fetch-lib charms.magma_orc8r_libs.v0.orc8r_base
echo <<-EOF >> requirements.txt
ops-lib-pgsql
EOF
Then, to initialise the library: For ClusterIP services:
from ops.charm import CharmBase
from ops.main import main
from charms.observability_libs.v0.kubernetes_service_patch import KubernetesServicePatch
from charms.orc8r_libs.v0.orc8r_base import Orc8rBase
class MagmaOrc8rDirectorydCharm(CharmBase):
def __init__(self, *args):
super().__init__(*args)
self._service_patcher = KubernetesServicePatch(self, [("grpc", 9180, 9106)])
startup_command = "/usr/bin/envdir /var/opt/magma/envdir /var/opt/magma/bin/directoryd -logtostderr=true -v=0"
self._orc8r_base = Orc8rBase(
self,
service_name="magma-orc8r-directoryd",
startup_command=startup_command,
database_relation_needed=True,
pebble_ready_event=self.on.magma_orc8r_directoryd_pebble_ready
)
Index
class Orc8rBase
Methods
Orc8rBase. __init__( self , charm: CharmBase , service_name: str , startup_command: str , pebble_ready_event: CharmEvents , database_relation_needed: bool , additional_environment_variables: dict )