---
title: Charmhub | Deploy Keystone K8S using Charmhub - The Open Operator Collection
description: Deploy the latest version of Keystone K8S as a Kubernetes Operator on
  any cloud.
url: https://charmhub.io/keystone-k8s/libraries/cloud_credentials
---

# Keystone 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 060d2288

```
juju deploy keystone-k8s --channel 2024.1/stable
```

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

[Toggle side navigation](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#drawer)

## charms.keystone\_k8s.v1.cloud\_credentials

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

    Fetch library

    ```
    charmcraft fetch-lib charms.keystone_k8s.v1.cloud_credentials
    ```

    [Download cloud\_credentials.py](https://charmhub.io/keystone-k8s/libraries/cloud_credentials/download)
  + *Last updated* 27 Jul 2023
  + *Revision* Library version 1.0

CloudCredentialsProvides and Requires module.

This library contains the Requires and Provides classes for handling
the cloud\_credentials interface.

Import `CloudCredentialsRequires` in your charm, with the charm object and the
relation name:
- self
- "cloud\_credentials"

Also provide additional parameters to the charm object:
- service
- internal\_url
- public\_url
- admin\_url
- region
- username
- vhost

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

A basic example showing the usage of this relation follows:

```
from charms.keystone_k8s.v0.cloud_credentials import CloudCredentialsRequires

class CloudCredentialsClientCharm(CharmBase):
    def __init__(self, *args):
        super().__init__(*args)
        # CloudCredentials Requires
        self.cloud_credentials = CloudCredentialsRequires(
            self, "cloud_credentials",
            service = "my-service"
            internal_url = "http://internal-url"
            public_url = "http://public-url"
            admin_url = "http://admin-url"
            region = "region"
        )
        self.framework.observe(
            self.cloud_credentials.on.connected, self._on_cloud_credentials_connected)
        self.framework.observe(
            self.cloud_credentials.on.ready, self._on_cloud_credentials_ready)
        self.framework.observe(
            self.cloud_credentials.on.goneaway, self._on_cloud_credentials_goneaway)

    def _on_cloud_credentials_connected(self, event):
        '''React to the CloudCredentials connected event.

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

    def _on_cloud_credentials_ready(self, event):
        '''React to the CloudCredentials ready event.

        The CloudCredentials interface will use the provided config for the
        request to the identity server.
        '''
        # CloudCredentials Relation is ready. Do something with the completed relation.
        pass

    def _on_cloud_credentials_goneaway(self, event):
        '''React to the CloudCredentials goneaway event.

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

---

Index

* [class CloudCredentialsConnectedEvent](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsconnectedevent)
* [class CloudCredentialsReadyEvent](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsreadyevent)
* [class CloudCredentialsGoneAwayEvent](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsgoneawayevent)
* [class CloudCredentialsServerEvents](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsserverevents)
* [class CloudCredentialsRequires](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-__init__)
* + [def get\_remote\_app\_data(
    self,
    key)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-get_remote_app_data)
* + [def api\_version(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-api_version)
* + [def auth\_host(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-auth_host)
* + [def auth\_port(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-auth_port)
* + [def auth\_protocol(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-auth_protocol)
* + [def internal\_host(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-internal_host)
* + [def internal\_port(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-internal_port)
* + [def internal\_protocol(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-internal_protocol)
* + [def credentials(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-credentials)
* + [def username(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-username)
* + [def password(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-password)
* + [def project\_name(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-project_name)
* + [def project\_id(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-project_id)
* + [def user\_domain\_name(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-user_domain_name)
* + [def user\_domain\_id(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-user_domain_id)
* + [def project\_domain\_name(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-project_domain_name)
* + [def project\_domain\_id(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-project_domain_id)
* + [def region(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-region)
* + [def internal\_endpoint(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-internal_endpoint)
* + [def public\_endpoint(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-public_endpoint)
* + [def request\_credentials(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsrequires-request_credentials)
* [class HasCloudCredentialsClientsEvent](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#hascloudcredentialsclientsevent)
* [class ReadyCloudCredentialsClientsEvent](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#readycloudcredentialsclientsevent)
* + [def \_\_init\_\_(
    self,
    handle,
    relation\_id,
    relation\_name,
    username)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#readycloudcredentialsclientsevent-__init__)
* + [def snapshot(
    self)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#readycloudcredentialsclientsevent-snapshot)
* + [def restore(
    self,
    snapshot)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#readycloudcredentialsclientsevent-restore)
* [class CloudCredentialsClientsGoneAwayEvent](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsclientsgoneawayevent)
* [class CloudCredentialsClientEvents](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsclientevents)
* [class CloudCredentialsProvides](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsprovides)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsprovides-__init__)
* + [def set\_cloud\_credentials(
    self,
    relation\_name,
    relation\_id,
    api\_version,
    auth\_host,
    auth\_port,
    auth\_protocol,
    internal\_host,
    internal\_port,
    internal\_protocol,
    credentials,
    project\_name,
    project\_id,
    user\_domain\_name,
    user\_domain\_id,
    project\_domain\_name,
    project\_domain\_id,
    region)](https://charmhub.io/keystone-k8s/libraries/cloud_credentials#cloudcredentialsprovides-set_cloud_credentials)

#### class CloudCredentialsConnectedEvent

Description

CloudCredentials connected Event. None

#### class CloudCredentialsReadyEvent

Description

CloudCredentials ready for use Event. None

#### class CloudCredentialsGoneAwayEvent

Description

CloudCredentials relation has gone-away Event None

#### class CloudCredentialsServerEvents

Description

Events class for `on` None

#### class CloudCredentialsRequires

Description

CloudCredentialsRequires class None

Methods

CloudCredentialsRequires.
\_\_init\_\_(

*self*

,
charm

,
relation\_name: str
)

CloudCredentialsRequires.
get\_remote\_app\_data(

*self*

,
key: str
)

Description

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

CloudCredentialsRequires.
api\_version(

*self*
)

Description

Return the api\_version. None

CloudCredentialsRequires.
auth\_host(

*self*
)

Description

Return the auth\_host. None

CloudCredentialsRequires.
auth\_port(

*self*
)

Description

Return the auth\_port. None

CloudCredentialsRequires.
auth\_protocol(

*self*
)

Description

Return the auth\_protocol. None

CloudCredentialsRequires.
internal\_host(

*self*
)

Description

Return the internal\_host. None

CloudCredentialsRequires.
internal\_port(

*self*
)

Description

Return the internal\_port. None

CloudCredentialsRequires.
internal\_protocol(

*self*
)

Description

Return the internal\_protocol. None

CloudCredentialsRequires.
credentials(

*self*
)

CloudCredentialsRequires.
username(

*self*
)

CloudCredentialsRequires.
password(

*self*
)

CloudCredentialsRequires.
project\_name(

*self*
)

Description

Return the project name. None

CloudCredentialsRequires.
project\_id(

*self*
)

Description

Return the project id. None

CloudCredentialsRequires.
user\_domain\_name(

*self*
)

Description

Return the name of the user domain. None

CloudCredentialsRequires.
user\_domain\_id(

*self*
)

Description

Return the id of the user domain. None

CloudCredentialsRequires.
project\_domain\_name(

*self*
)

Description

Return the name of the project domain. None

CloudCredentialsRequires.
project\_domain\_id(

*self*
)

Description

Return the id of the project domain. None

CloudCredentialsRequires.
region(

*self*
)

Description

Return the region for the auth urls. None

CloudCredentialsRequires.
internal\_endpoint(

*self*
)

Description

Return the region for the internal auth url. None

CloudCredentialsRequires.
public\_endpoint(

*self*
)

Description

Return the region for the public auth url. None

CloudCredentialsRequires.
request\_credentials(

*self*
)

Description

Request credentials from the CloudCredentials server. None

#### class HasCloudCredentialsClientsEvent

Description

Has CloudCredentialsClients Event. None

#### class ReadyCloudCredentialsClientsEvent

Description

CloudCredentialsClients Ready Event. None

Methods

ReadyCloudCredentialsClientsEvent.
\_\_init\_\_(

*self*

,
handle

,
relation\_id

,
relation\_name

,
username
)

ReadyCloudCredentialsClientsEvent.
snapshot(

*self*
)

ReadyCloudCredentialsClientsEvent.
restore(

*self*

,
snapshot
)

#### class CloudCredentialsClientsGoneAwayEvent

Description

Has CloudCredentialsClientsGoneAwayEvent Event. None

#### class CloudCredentialsClientEvents

Description

Events class for `on` None

#### class CloudCredentialsProvides

Description

CloudCredentialsProvides class None

Methods

CloudCredentialsProvides.
\_\_init\_\_(

*self*

,
charm

,
relation\_name
)

CloudCredentialsProvides.
set\_cloud\_credentials(

*self*

,
relation\_name: int

,
relation\_id: str

,
api\_version: str

,
auth\_host: str

,
auth\_port: str

,
auth\_protocol: str

,
internal\_host: str

,
internal\_port: str

,
internal\_protocol: str

,
credentials: str

,
project\_name: str

,
project\_id: str

,
user\_domain\_name: str

,
user\_domain\_id: str

,
project\_domain\_name: str

,
project\_domain\_id: str

,
region: str
)
