---
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/identity_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/identity_credentials#drawer)

## charms.keystone\_k8s.v0.identity\_credentials

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

    Fetch library

    ```
    charmcraft fetch-lib charms.keystone_k8s.v0.identity_credentials
    ```

    [Download identity\_credentials.py](https://charmhub.io/keystone-k8s/libraries/identity_credentials/download)
  + *Last updated* 31 May 2024
  + *Revision* Library version 0.5

IdentityCredentialsProvides and Requires module.

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

Import `IdentityCredentialsRequires` in your charm, with the charm object and the
relation name:
- self
- "identity\_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.identity_credentials import IdentityCredentialsRequires

class IdentityCredentialsClientCharm(CharmBase):
    def __init__(self, *args):
        super().__init__(*args)
        # IdentityCredentials Requires
        self.identity_credentials = IdentityCredentialsRequires(
            self, "identity_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.identity_credentials.on.connected, self._on_identity_credentials_connected)
        self.framework.observe(
            self.identity_credentials.on.ready, self._on_identity_credentials_ready)
        self.framework.observe(
            self.identity_credentials.on.goneaway, self._on_identity_credentials_goneaway)

    def _on_identity_credentials_connected(self, event):
        '''React to the IdentityCredentials connected event.

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

    def _on_identity_credentials_ready(self, event):
        '''React to the IdentityCredentials ready event.

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

    def _on_identity_credentials_goneaway(self, event):
        '''React to the IdentityCredentials goneaway event.

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

---

Index

* [class IdentityCredentialsConnectedEvent](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsconnectedevent)
* [class IdentityCredentialsReadyEvent](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsreadyevent)
* [class IdentityCredentialsGoneAwayEvent](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsgoneawayevent)
* [class IdentityCredentialsServerEvents](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsserverevents)
* [class IdentityCredentialsRequires](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-__init__)
* + [def get\_remote\_app\_data(
    self,
    key)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-get_remote_app_data)
* + [def api\_version(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-api_version)
* + [def auth\_host(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-auth_host)
* + [def auth\_port(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-auth_port)
* + [def auth\_protocol(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-auth_protocol)
* + [def internal\_host(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-internal_host)
* + [def internal\_port(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-internal_port)
* + [def internal\_protocol(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-internal_protocol)
* + [def credentials(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-credentials)
* + [def username(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-username)
* + [def password(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-password)
* + [def project\_name(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-project_name)
* + [def project\_id(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-project_id)
* + [def user\_domain\_name(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-user_domain_name)
* + [def user\_domain\_id(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-user_domain_id)
* + [def project\_domain\_name(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-project_domain_name)
* + [def project\_domain\_id(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-project_domain_id)
* + [def region(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-region)
* + [def internal\_endpoint(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-internal_endpoint)
* + [def public\_endpoint(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-public_endpoint)
* + [def admin\_role(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-admin_role)
* + [def request\_credentials(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsrequires-request_credentials)
* [class HasIdentityCredentialsClientsEvent](https://charmhub.io/keystone-k8s/libraries/identity_credentials#hasidentitycredentialsclientsevent)
* [class ReadyIdentityCredentialsClientsEvent](https://charmhub.io/keystone-k8s/libraries/identity_credentials#readyidentitycredentialsclientsevent)
* + [def \_\_init\_\_(
    self,
    handle,
    relation\_id,
    relation\_name,
    username)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#readyidentitycredentialsclientsevent-__init__)
* + [def snapshot(
    self)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#readyidentitycredentialsclientsevent-snapshot)
* + [def restore(
    self,
    snapshot)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#readyidentitycredentialsclientsevent-restore)
* [class IdentityCredentialsClientsGoneAwayEvent](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsclientsgoneawayevent)
* [class IdentityCredentialsClientEvents](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsclientevents)
* [class IdentityCredentialsProvides](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsprovides)
* + [def \_\_init\_\_(
    self,
    charm,
    relation\_name)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsprovides-__init__)
* + [def set\_identity\_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,
    admin\_role)](https://charmhub.io/keystone-k8s/libraries/identity_credentials#identitycredentialsprovides-set_identity_credentials)

#### class IdentityCredentialsConnectedEvent

Description

IdentityCredentials connected Event. None

#### class IdentityCredentialsReadyEvent

Description

IdentityCredentials ready for use Event. None

#### class IdentityCredentialsGoneAwayEvent

Description

IdentityCredentials relation has gone-away Event None

#### class IdentityCredentialsServerEvents

Description

Events class for `on` None

#### class IdentityCredentialsRequires

Description

IdentityCredentialsRequires class None

Methods

IdentityCredentialsRequires.
\_\_init\_\_(

*self*

,
charm

,
relation\_name: str
)

IdentityCredentialsRequires.
get\_remote\_app\_data(

*self*

,
key: str
)

Description

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

IdentityCredentialsRequires.
api\_version(

*self*
)

Description

Return the api\_version. None

IdentityCredentialsRequires.
auth\_host(

*self*
)

Description

Return the auth\_host. None

IdentityCredentialsRequires.
auth\_port(

*self*
)

Description

Return the auth\_port. None

IdentityCredentialsRequires.
auth\_protocol(

*self*
)

Description

Return the auth\_protocol. None

IdentityCredentialsRequires.
internal\_host(

*self*
)

Description

Return the internal\_host. None

IdentityCredentialsRequires.
internal\_port(

*self*
)

Description

Return the internal\_port. None

IdentityCredentialsRequires.
internal\_protocol(

*self*
)

Description

Return the internal\_protocol. None

IdentityCredentialsRequires.
credentials(

*self*
)

IdentityCredentialsRequires.
username(

*self*
)

IdentityCredentialsRequires.
password(

*self*
)

IdentityCredentialsRequires.
project\_name(

*self*
)

Description

Return the project name. None

IdentityCredentialsRequires.
project\_id(

*self*
)

Description

Return the project id. None

IdentityCredentialsRequires.
user\_domain\_name(

*self*
)

Description

Return the name of the user domain. None

IdentityCredentialsRequires.
user\_domain\_id(

*self*
)

Description

Return the id of the user domain. None

IdentityCredentialsRequires.
project\_domain\_name(

*self*
)

Description

Return the name of the project domain. None

IdentityCredentialsRequires.
project\_domain\_id(

*self*
)

Description

Return the id of the project domain. None

IdentityCredentialsRequires.
region(

*self*
)

Description

Return the region for the auth urls. None

IdentityCredentialsRequires.
internal\_endpoint(

*self*
)

Description

Return the region for the internal auth url. None

IdentityCredentialsRequires.
public\_endpoint(

*self*
)

Description

Return the region for the public auth url. None

IdentityCredentialsRequires.
admin\_role(

*self*
)

Description

Return the admin\_role. None

IdentityCredentialsRequires.
request\_credentials(

*self*
)

Description

Request credentials from the IdentityCredentials server. None

#### class HasIdentityCredentialsClientsEvent

Description

Has IdentityCredentialsClients Event. None

#### class ReadyIdentityCredentialsClientsEvent

Description

IdentityCredentialsClients Ready Event. None

Methods

ReadyIdentityCredentialsClientsEvent.
\_\_init\_\_(

*self*

,
handle

,
relation\_id

,
relation\_name

,
username
)

ReadyIdentityCredentialsClientsEvent.
snapshot(

*self*
)

ReadyIdentityCredentialsClientsEvent.
restore(

*self*

,
snapshot
)

#### class IdentityCredentialsClientsGoneAwayEvent

Description

Has IdentityCredentialsClientsGoneAwayEvent Event. None

#### class IdentityCredentialsClientEvents

Description

Events class for `on` None

#### class IdentityCredentialsProvides

Description

IdentityCredentialsProvides class None

Methods

IdentityCredentialsProvides.
\_\_init\_\_(

*self*

,
charm

,
relation\_name
)

IdentityCredentialsProvides.
set\_identity\_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

,
admin\_role: str
)
