---
title: Charmhub | Deploy SD-Core 5G WEBUI K8s using Charmhub - The Open Operator Collection
description: Deploy the latest version of SD-Core 5G WEBUI K8s as a Kubernetes Operator
  on any cloud.
url: https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management
---

# SD-Core 5G WEBUI K8s

[Canonical Telco](https://charmhub.io/publisher/telco-charmers "View all packages from Canonical Telco")

* [Canonical Telco](https://charmhub.io/publisher/telco-charmers "View all packages from Canonical Telco")

Platform:

1.4/beta 86

```
juju deploy sdcore-webui-k8s --channel 1.4/beta
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

[Toggle side navigation](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#drawer)

## charms.sdcore\_webui\_k8s.v0.sdcore\_management

* [*Docstrings*Docstrings](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management)
  [*Code*Source code](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management/source-code)
* + Download

    Fetch library

    ```
    charmcraft fetch-lib charms.sdcore_webui_k8s.v0.sdcore_management
    ```

    [Download sdcore\_management.py](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management/download)
  + *Last updated* 08 Dec 2023
  + *Revision* Library version 0.1

Library for the `sdcore_management` relation.

This library contains the Requires and Provides classes for handling the `sdcore_management`
interface.

The purpose of this library is to relate charms claiming
to be able to provide or consume the information to access the configuration service in SD-Core.

##### Getting Started

From a charm directory, fetch the library using `charmcraft`:

```
charmcraft fetch-lib charms.sdcore_webui_k8s.v0.sdcore_management
```

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 address to connect to configuration service.

Example:

```
from ops.charm import CharmBase
from ops.main import main

from charms.sdcore_webui_k8s.v0.sdcore_management import (
    ManagementUrlAvailable,
    SdcoreManagementRequires,
)

logger = logging.getLogger(__name__)

class DummySdcoreManagementRequiresCharm(CharmBase):

    def __init__(self, *args):
        super().__init__(*args)
        self.sdcore_management = SdcoreManagementRequires(self, "sdcore-management")
        self.framework.observe(
            self.sdcore_management.on.management_url_available,
            self._on_management_url_available,
        )

    def _on_management_url_available(self, event: ManagementUrlAvailable):
        management_url = event.management_url
        <do something with the url>

if __name__ == "__main__":
    main(DummySdcoreManagementRequiresCharm)
```

###### Provider charm

The provider charm is the one providing the address to connect to configuration service.

Example:

```
from ops.charm import CharmBase, RelationJoinedEvent
from ops.main import main

from charms.sdcore_webui_k8s.v0.sdcore_management import (
    SdcoreManagementProvides,
)

class DummySdcoreManagementProvidesCharm(CharmBase):
    management_url = "http://1.2.3.4:1234"

    def __init__(self, *args):
        super().__init__(*args)
        self.sdcore_management = SdcoreManagementProvides(
            self, "sdcore-management"
        )
        self.framework.observe(
            self.on.sdcore_management_relation_joined, self._on_sdcore_management_relation_joined
        )

    def _on_sdcore_management_relation_joined(self, event: RelationJoinedEvent):
        if self.unit.is_leader():
            self.sdcore_management.set_management_url(
                management_url=self.management_url,
            )

if __name__ == "__main__":
    main(DummySdcoreManagementProvidesCharm)
```

---

Index

* [class SdcoreManagementProviderAppData](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementproviderappdata)
* [class ProviderSchema](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#providerschema)
* [def data\_is\_valid(
  data
  )](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#data_is_valid)
* [class ManagementUrlAvailable](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#managementurlavailable)
* + [def \_\_init\_\_(
    self,
    handle,
    management\_url)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#managementurlavailable-__init__)
* + [def snapshot(
    self)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#managementurlavailable-snapshot)
* + [def restore(
    self,
    snapshot)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#managementurlavailable-restore)
* [class SdcoreManagementRequirerCharmEvents](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementrequirercharmevents)
* [class SdcoreManagementRequires](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementrequires)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementrequires-__init__)
* + [def management\_url(
    self)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementrequires-management_url)
* [class SdcoreManagementProvides](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementprovides)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementprovides-__init__)
* + [def set\_management\_url(
    self,
    management\_url)](https://charmhub.io/sdcore-webui-k8s/libraries/sdcore_management#sdcoremanagementprovides-set_management_url)

#### class SdcoreManagementProviderAppData

Description

Provider app data for sdcore\_management. None

#### class ProviderSchema

Description

Provider schema for sdcore\_management. None

#### def data\_is\_valid(data: dict)

Returns whether data is valid.

Arguments

data
(dict)

Data to be validated.

Returns

True if data is valid, False otherwise.

#### class ManagementUrlAvailable

Description

Charm event emitted when the management url is available. None

Methods

ManagementUrlAvailable.
\_\_init\_\_(

*self*

,
handle: Handle

,
management\_url: str
)

Description

Init. None

ManagementUrlAvailable.
snapshot(

*self*
)

Description

Returns snapshot. None

ManagementUrlAvailable.
restore(

*self*

,
snapshot: dict
)

Description

Restores snapshot. None

#### class SdcoreManagementRequirerCharmEvents

Description

List of events that the SD-Core management requirer charm can leverage. None

#### class SdcoreManagementRequires

Description

Class to be instantiated by the SD-Core management requirer charm. None

Methods

SdcoreManagementRequires.
\_\_init\_\_(

*self*

,
charm: CharmBase

,
relation\_name: str
)

Description

Init. None

SdcoreManagementRequires.
management\_url(

*self*
)

Returns the address of the management endpoint.

Returns

str

Endpoint address.

#### class SdcoreManagementProvides

Description

Class to be instantiated by the charm providing the SD-Core management url. None

Methods

SdcoreManagementProvides.
\_\_init\_\_(

*self*

,
charm: CharmBase

,
relation\_name: str
)

Description

Init. None

SdcoreManagementProvides.
set\_management\_url(

*self*

,
management\_url: str
)

Sets the address of the management endpoint.

Arguments

management\_url
(str)

Configuration service address.

Returns

None
