Juju Charm - Manila-NetApp Backend
Go to file
Rodrigo Barbieri 94a4d30901 Add goodness-function config
This allows specifying functions that further optimize the scheduling
of shares across backend stanzas.

This is needed due to a netapp-driver specific problem when using
SVM scoped accounts. It does not have enough permissions to obtain
the total_capacity_gb information, so it cannot calculate utilization,
and therefore the goodness_function always returns 50 and end up
scheduling shares always to the same pool.

Closes-bug: #2073537
Change-Id: Ia151c50421e75282f633e0b004c2e6c1bda638f3
2024-07-30 12:04:38 -03:00
src Updates for caracal tox.ini 2024-02-24 20:12:01 +00:00
templates/queens Add goodness-function config 2024-07-30 12:04:38 -03:00
tests Updates for caracal testing support 2024-02-16 18:42:05 +00:00
unit_tests Fix charm for tox4 compatibility 2023-01-24 07:11:09 +00:00
.gitignore Add *.charm to gitignore 2022-04-18 21:07:55 +01:00
.gitreview Add missing boilerplate 2021-03-25 16:41:47 +01:00
.jujuignore Add missing boilerplate 2021-03-25 16:41:47 +01:00
.stestr.conf Add initial charm code 2021-02-28 22:01:43 +02:00
.zuul.yaml Add Antelope support 2023-03-07 22:37:04 +00:00
actions.yaml Add initial charm code 2021-02-28 22:01:43 +02:00
bindep.txt Add Kinetic and Zed support 2022-08-31 20:15:44 +01:00
charmcraft.yaml Updates for caracal testing support 2024-02-16 18:42:05 +00:00
config.yaml Add goodness-function config 2024-07-30 12:04:38 -03:00
copyright Add missing boilerplate 2021-03-25 16:41:47 +01:00
LICENSE Initial commit 2021-02-24 18:09:13 +02:00
metadata.yaml Updates for caracal testing support 2024-02-16 18:42:05 +00:00
osci.yaml Updates for caracal testing support 2024-02-16 18:42:05 +00:00
README.md Update README.md 2021-03-11 11:58:15 +02:00
rename.sh Migrate to charmhub 2022-04-08 17:58:33 +01:00
requirements.txt Fix charm for tox4 compatibility 2023-01-24 07:11:09 +00:00
test-requirements.txt Add Antelope support 2023-03-07 22:37:04 +00:00
tox.ini Updates for caracal tox.ini 2024-02-24 20:12:01 +00:00

Manila NetApp Backend Source Charm

Overview

This charm provides NetApp Clustered Data ONTAP as a storage backend for Manila, OpenStack's shared filesystem service. It is written using the Juju operator framework.

Usage

The charm relies on the principal Manila charm, and is a subordinate to it. It provides configuration data to the manila-share service (which is provided by the Manila charm with a role that includes 'share').

Prior to deploying this charm, a NetApp Data ONTAP cluster must be configured. It also needs L3 connectivity between the storage cluster and the Manila services. See the OpenStack driver documentation with details about the NetApp Clustered Data ONTAP driver, and known restrictions.

If multiple, different, NetApp backend configurations are required, then the share-backend-name config option should be used to differentiate between the configuration sections.

Note: This subordinate charm requests that Manila principal charm configures the Neutron conf file section, that the NetApp driver needs to allocate ports for the storage vms when the driver-handles-share-servers config is enabled. The principal charm provides the main Manila service username/password to this charm to enable it to provide this section.

When driver-handles-share-servers is enabled, the driver will launch storage vms (SMVs) within the NetApp Data ONTAP cluster. With this mode enabled, Manila requires a share network to be defined.

A Manila share network is bound to a Neutron network and subnet. During a share creation, the NetApp driver will allocate a port in the Neutron subnet attached to the share network, and use that as the static IP for the SVM spawned into NetApp Data ONTAP cluster. The only limitation to this mode is that the Neutron network bound to the share network, needs to be flat or vlan, when using the NetApp driver.

With DHSS (driver handles share servers) enabled, the CIFS share servers must be configured with an external Active Directory (AD) for authentication. The AD config info is provided to the Manila NetApp share servers via an active_directory security service associated with the share network.

Also, the NetApp driver requires credentials from an AD user with enough privileges to register the new CIFS share servers as computers in the AD domain. These credentials are provided as part of the Manila security service configuration.

WARNING: The credentials for the required AD user are stored in plain text, in the Manila database, as part of the associated security service. Tenant users are able to see these when fetching information about the active_directory security service. This is a potential security risk!

When driver-handles-share-servers is disabled, an existing NetApp ONTAP SVM must be pre-configured, and its name must be given as vserver-name in the charm config.

Building the charm

To build the charm run the following command in the root of the repository:

$ tox -e build

The resultant built charm will be manila-netapp.charm.

Deployment

One way to deploy Manila NetApp is to use a bundle overlay when deploying OpenStack via a bundle:

juju deploy ./base.yaml --overlay ./manila-netapp-overlay.yaml

The Manila NetApp bundle overlay might look like:

applications:
  manila-netapp:
    options:
      driver-handles-share-servers: False
      vserver-name: svm0
      management-address: 10.1.1.10
      admin-name: admin
      admin-password: my-secret-admin-password

Bugs

Please report bugs on Launchpad.

For general charm questions refer to the OpenStack Charm Guide.