charm-manila/src
Alex Kavanagh d0ad23950f Fix local/remote assumptions in manila charm
When the remote plugin was developed it made the assumption that the
`enabled_share_backends` included the remote backends. This assumption
is wrong, and it should only contain the locally defined drivers; i.e.
ones that have a [driver] section in the manila.conf file. The cephfsnfs
driver doesn't have a local configuration as the share-server is runs on
the manila-ganesha unit and so shouldn't be local.

This patch splits the config in local/remote and then uses the local and
remote config in the correct places.

Closes-Bug: #2012457
Change-Id: I436452208aaeaf08d1655da4fccbd7a89549b404
2023-09-29 09:52:46 +01:00
..
files Sync charm/ceph helpers, tox, and requirements 2019-09-30 17:08:40 -05:00
lib Fix local/remote assumptions in manila charm 2023-09-29 09:52:46 +01:00
reactive Ensure that local and remote plugins can be used concurrently 2023-02-24 09:50:26 -05:00
templates Fix local/remote assumptions in manila charm 2023-09-29 09:52:46 +01:00
tests Add 2023.2 Bobcat support 2023-08-03 13:58:54 -04:00
README.md Update docs to remove non-production notices 2020-01-30 17:22:53 +01:00
config.yaml Add 2023.2 Bobcat support 2023-08-03 13:58:54 -04:00
layer.yaml Adds NRPE checks for services 2021-09-09 02:03:05 -04:00
metadata.yaml Add 2023.2 Bobcat support 2023-08-03 13:58:54 -04:00
test-requirements.txt Ensure that local and remote plugins can be used concurrently 2023-02-24 09:50:26 -05:00
tox.ini Fix charm for tox4 compatibility 2023-01-20 12:15:51 -05:00
wheelhouse.txt Add Kinetic and Zed support 2022-10-04 11:51:23 +00:00

README.md

Overview

This charm provides the Manila shared file service for an OpenStack Cloud.

In order to use the manila charm, a suitable backend charm is needed to configure a share backend. Without a backend subordinate charm related to the manila-charm there will be no manila backends configured; the manila charm will be stuck in the blocked state.

Manila share backends are configured using subordinate charms

It's necessary to have the ability to configure a share backend independently of the main charm. This means that plugin charms will be used to configure each backend. Multiple backend charms can be related to the manila charm to allow a manaila (juju) application to support multiple share backends.

Essentially, a plugin needs to be able to configure:

  • it's section in the manila.conf along with any network plugin's that it needs (assuming that it's a share that manages it's own share-instance).
  • ensure that the relevant services are restarted.

This pre-release of manila provides (in the charm store):

  • charm-manila: the main charm,
  • interface-manila-plugin : the interface for plugging in the generic backend (and other interfaces),
  • charm-manila-generic: the plugin for configuring the generic backend.

The backend provides a piece of the manila.conf configuration file with the sections necessary to configure the backend. This is mostly for the share, rather than the api level.

Usage

Manila (plus manila-generic) relies on services from the mysql/percona, rabbitmq-server, keystone charms, and a storage backend charm. The following yaml file will create a small, unconfigured, OpenStack system with the necessary components to start testing with Manila. Note that these target the 'next' OpenStack charms which are essentially 'edge' charms.


# vim: set ts=2 et:
# Juju 2.0 deploy bundle for development ('next') charms
# UOSCI relies on this for OS-on-OS deployment testing
series: xenial
automatically-retry-hooks: False
services:
  mysql:
    charm: cs:~openstack-charmers/xenial/percona-cluster
    num_units: 1
    constraints: mem=1G
    options:
      dataset-size: 50%
      root-password: mysql
  rabbitmq-server:
    charm: cs:~openstack-charmers/xenial/rabbitmq-server
    num_units: 1
    constraints: mem=1G
  keystone:
    charm: cs:~openstack-charmers/xenial/keystone
    num_units: 1
    constraints: mem=1G
    options:
      admin-password: openstack
      admin-token: ubuntutesting
      preferred-api-version: "2"
  glance:
    charm: cs:~openstack-charmers/xenial/glance
    num_units: 1
    constraints: mem=1G
  nova-cloud-controller:
    charm: cs:~openstack-charmers/xenial/nova-cloud-controller
    num_units: 1
    constraints: mem=1G
    options:
      network-manager: Neutron
  nova-compute:
    charm: cs:~openstack-charmers/xenial/nova-compute
    num_units: 1
    constraints: mem=4G
  neutron-gateway:
    charm: cs:~openstack-charmers/xenial/neutron-gateway
    num_units: 1
    constraints: mem=1G
    options:
      bridge-mappings: physnet1:br-ex
      instance-mtu: 1300
  neutron-api:
    charm: cs:~openstack-charmers/xenial/neutron-api
    num_units: 1
    constraints: mem=1G
    options:
      neutron-security-groups: True
      flat-network-providers: physnet1
  neutron-openvswitch:
    charm: cs:~openstack-charmers/xenial/neutron-openvswitch
  cinder:
    charm: cs:~openstack-charmers/xenial/cinder
    num_units: 1
    constraints: mem=1G
    options:
      block-device: vdb
      glance-api-version: 2
      overwrite: 'true'
      ephemeral-unmount: /mnt
  manila:
    charm: cs:~openstack-charmers/xenial/manila
    num_units: 1
    options:
      debug: True
  manila-generic:
      charm: cs:~openstack-charmers/xenial/manila-generic
    options:
      debug: True
relations:
  - [ keystone, mysql ]
  - [ manila, mysql ]
  - [ manila, rabbitmq-server ]
  - [ manila, keystone ]
  - [ manila, manila-generic ]
  - [ glance, keystone]
  - [ glance, mysql ]
  - [ glance, "cinder:image-service" ]
  - [ nova-compute, "rabbitmq-server:amqp" ]
  - [ nova-compute, glance ]
  - [ nova-cloud-controller, rabbitmq-server ]
  - [ nova-cloud-controller, mysql ]
  - [ nova-cloud-controller, keystone ]
  - [ nova-cloud-controller, glance ]
  - [ nova-cloud-controller, nova-compute ]
  - [ cinder, keystone ]
  - [ cinder, mysql ]
  - [ cinder, rabbitmq-server ]
  - [ cinder, nova-cloud-controller ]
  - [ "neutron-gateway:amqp", "rabbitmq-server:amqp" ]
  - [ neutron-gateway, nova-cloud-controller ]
  - [ neutron-api, mysql ]
  - [ neutron-api, rabbitmq-server ]
  - [ neutron-api, nova-cloud-controller ]
  - [ neutron-api, neutron-openvswitch ]
  - [ neutron-api, keystone ]
  - [ neutron-api, neutron-gateway ]
  - [ neutron-openvswitch, nova-compute ]
  - [ neutron-openvswitch, rabbitmq-server ]
  - [ neutron-openvswitch, manila ]

and then (with juju 2.x):

    juju deploy manila.yaml

Note that this OpenStack system will need to be configured (in terms of networking, images, etc.) before testing can commence.

Bugs

Please report bugs on Launchpad.

For general questions please refer to the OpenStack Charm Guide.