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.v1.orc8r_base_db
-
- Last updated 27 Apr 2023
- Revision Library version 1.0
Orc8rBaseDB Library.
This library is designed to enable developers to easily create new charms for Magma orc8r that
require a relationship to a database. 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 startup command (str)
Getting Started
To get started using the library, you just need to fetch the library using charmcraft
. Note
that you also need to add pgconnstr
to your charm's requirements.txt
.
cd some-charm
charmcraft fetch-lib charms.magma_orc8r_libs.v1.orc8r_base_db
echo <<-EOF >> requirements.txt
pgconnstr
EOF
Then, to initialise the library:
from charms.magma_orc8r_libs.v1.orc8r_base_db import Orc8rBase
from charms.observability_libs.v0.kubernetes_service_patch import KubernetesServicePatch
from ops.charm import CharmBase
from ops.main import main
class MagmaOrc8rDirectorydCharm(CharmBase):
def __init__(self, *args):
super().__init__(*args)
self._service_patcher = KubernetesServicePatch(self, [("grpc", 9180)])
startup_command = (
"/usr/bin/envdir "
"/var/opt/magma/envdir "
"/var/opt/magma/bin/directoryd "
"-logtostderr=true "
"-v=0"
)
self._orc8r_base = Orc8rBase(self, startup_command=startup_command)
Charms that leverage this library also need to specify a provides
relation in their
metadata.yaml
file. For example:
provides:
magma-orc8r-directoryd:
interface: magma-orc8r-directoryd
Charms that leverage this library also need to specify a requires
relation in their
metadata.yaml
file. For example:
requires:
database:
interface: postgresql_client
Index
class Orc8rBase
Description
Instantiated by Orchestrator charms that require connection with a DB. None
Methods
Orc8rBase. __init__( self , charm: CharmBase , startup_command: str , additional_environment_variables: dict )
Description
Observes common events for all Orchestrator charms. None
Orc8rBase. namespace( self )
Returns Kubernetes namespace.
Returns
Kubernetes namespace