Charm Interface - Ceph MDS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OpenDev Sysadmins ac60ab5f2b OpenDev Migration Patch 1 month ago
.gitignore Set appropriate application tag for pools created 3 months ago
.gitreview OpenDev Migration Patch 1 month ago
.zuul.yaml import zuul job settings from project-config 7 months ago Update readme 2 years ago
interface.yaml Add admin key 2 years ago Support multiple ceph-fs (mds) units 2 months ago
test-requirements.txt Lint Rules 2 years ago
tox.ini fix tox python3 overrides 7 months ago


This interface layer handles the communication between the Ceph Monitor and a client that requires an admin key.



This interface layer will set the following states, as appropriate:

  • {relation_name}.available The ceph client has been related to a provider. The following accessors will be available:
    • key - The mds cephx key
    • admin_key - The cephx admin key
    • auth - Whether or not strict auth is supported
    • mon_hosts - The public addresses list of the monitor cluster

Client example:

def ceph_connected(ceph_info):
  charm_ceph_conf = os.path.join(os.sep, 'etc', 'ceph', 'ceph.conf')
  cephx_key = os.path.join(os.sep, 'etc', 'ceph', 'ceph.client.admin.keyring')

  ceph_context = {
      'auth_supported': ceph_client.auth,
      'mon_hosts': ceph_client.mon_hosts,

  with open(charm_ceph_conf, 'w') as cephconf:
    cephconf.write(render_template('ceph.conf', ceph_context))

  # Write out the cephx_key also
  with open(cephx_key, 'w') as cephconf: