---
title: Charmhub | Deploy Cinder Ceph K8S using Charmhub - The Open Operator Collection
description: Deploy the latest version of Cinder Ceph K8S as a Kubernetes Operator
  on any cloud.
url: https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access
---

# Cinder Ceph K8S

[OpenStack Charmers](https://charmhub.io/publisher/openstack-charmers "View all packages from OpenStack Charmers")

* [OpenStack Charmers](https://charmhub.io/publisher/openstack-charmers "View all packages from OpenStack Charmers")

Platform:

2024.1/stable 146

```
juju deploy cinder-ceph-k8s --channel 2024.1/stable
```

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

[Toggle side navigation](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#drawer)

## charms.cinder\_ceph\_k8s.v0.ceph\_access

* [*Docstrings*Docstrings](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access)
  [*Code*Source code](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access/source-code)
* + Download

    Fetch library

    ```
    charmcraft fetch-lib charms.cinder_ceph_k8s.v0.ceph_access
    ```

    [Download ceph\_access.py](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access/download)
  + *Last updated* 31 May 2024
  + *Revision* Library version 0.3

CephAccess Provides and Requires module.

This library contains the Requires and Provides classes for handling
the ceph-access interface.

Import `CephAccessRequires` in your charm, with the charm object and the
relation name:
- self
- "ceph\_access"

Three events are also available to respond to:
- connected
- ready
- goneaway

A basic example showing the usage of this relation follows:

```
from charms.cinder_ceph_k8s.v0.ceph_access import CephAccessRequires

class CephAccessClientCharm(CharmBase):
    def __init__(self, *args):
        super().__init__(*args)
        # CephAccess Requires
        self.ceph_access = CephAccessRequires(
            self,
            relation_name="ceph_access",
        )
        self.framework.observe(
            self.ceph_access.on.connected, self._on_ceph_access_connected)
        self.framework.observe(
            self.ceph_access.on.ready, self._on_ceph_access_ready)
        self.framework.observe(
            self.ceph_access.on.goneaway, self._on_ceph_access_goneaway)

    def _on_ceph_access_connected(self, event):
        '''React to the CephAccess connected event.

        This event happens when n CephAccess relation is added to the
        model before credentials etc have been provided.
        '''
        # Do something before the relation is complete
        pass

    def _on_ceph_access_ready(self, event):
        '''React to the CephAccess ready event.

        This event happens when an CephAccess relation is removed.
        '''
        # IdentityService Relation has goneaway. shutdown services or suchlike
        pass
```

---

Index

* [class CephAccessConnectedEvent](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessconnectedevent)
* [class CephAccessReadyEvent](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessreadyevent)
* [class CephAccessGoneAwayEvent](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessgoneawayevent)
* [class CephAccessServerEvents](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessserverevents)
* [class CephAccessRequires](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessrequires)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessrequires-__init__)
* + [def get\_remote\_app\_data(
    self,
    key)](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessrequires-get_remote_app_data)
* + [def ceph\_access\_data(
    self)](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessrequires-ceph_access_data)
* + [def ready(
    self)](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessrequires-ready)
* [class HasCephAccessClientsEvent](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#hascephaccessclientsevent)
* [class ReadyCephAccessClientsEvent](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#readycephaccessclientsevent)
* [class CephAccessClientEvents](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessclientevents)
* [class CephAccessProvides](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessprovides)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessprovides-__init__)
* + [def set\_ceph\_access\_credentials(
    self,
    relation\_name,
    relation\_id,
    access\_credentials)](https://charmhub.io/cinder-ceph-k8s/libraries/ceph_access#cephaccessprovides-set_ceph_access_credentials)

#### class CephAccessConnectedEvent

Description

CephAccess connected Event. None

#### class CephAccessReadyEvent

Description

CephAccess ready for use Event. None

#### class CephAccessGoneAwayEvent

Description

CephAccess relation has gone-away Event None

#### class CephAccessServerEvents

Description

Events class for `on` None

#### class CephAccessRequires

Description

CephAccessRequires class None

Methods

CephAccessRequires.
\_\_init\_\_(

*self*

,
charm

,
relation\_name: str
)

CephAccessRequires.
get\_remote\_app\_data(

*self*

,
key: str
)

Description

Return the value for the given key from remote app data. None

CephAccessRequires.
ceph\_access\_data(

*self*
)

Description

Return the service\_password. None

CephAccessRequires.
ready(

*self*
)

Description

Return the service\_password. None

#### class HasCephAccessClientsEvent

Description

Has CephAccessClients Event. None

#### class ReadyCephAccessClientsEvent

Description

Has ReadyCephAccessClients Event. None

#### class CephAccessClientEvents

Description

Events class for `on` None

#### class CephAccessProvides

Description

CephAccessProvides class None

Methods

CephAccessProvides.
\_\_init\_\_(

*self*

,
charm

,
relation\_name
)

CephAccessProvides.
set\_ceph\_access\_credentials(

*self*

,
relation\_name: int

,
relation\_id: str

,
access\_credentials: str
)
