Juju Charm - Cinder 3PAR backend
Go to file
Corey Bryant 13712f02d1 Add 2023.2 Bobcat support
* sync charm-helpers to classic charms
* change openstack-origin/source default to bobcat
* add mantic to metadata series
* align testing with bobcat
* add new bobcat bundles
* add bobcat bundles to tests.yaml
* add bobcat tests to osci.yaml
* update build-on and run-on bases
* drop kinetic
* update charmcraft_channel to 2.x/stable

Change-Id: Ic28b65d64bb6e92fe56d42de286d715b8f5be291
2023-08-02 14:16:41 -04:00
src Add Antelope support 2023-03-14 17:37:06 +00:00
tests Add 2023.2 Bobcat support 2023-08-02 14:16:41 -04:00
unit_tests Fix bugs and increase test coverage 2022-08-10 12:30:47 -03:00
.gitignore add .gitignore 2021-04-08 18:55:38 +02:00
.gitreview Fix bugs and increase test coverage 2022-08-10 12:30:47 -03:00
.stestr.conf rename tests -> unit_tests 2021-04-07 14:30:51 +02:00
.zuul.yaml Fix bugs and increase test coverage 2022-08-10 12:30:47 -03:00
README.md Update README.md 2021-04-29 13:09:25 +02:00
charmcraft.yaml Add 2023.2 Bobcat support 2023-08-02 14:16:41 -04:00
config.yaml Fix bugs and increase test coverage 2022-08-10 12:30:47 -03:00
copyright Rework charm to use cinder sub plugin 2022-04-18 17:42:51 -03:00
metadata.yaml Add 2023.2 Bobcat support 2023-08-02 14:16:41 -04:00
osci.yaml Add 2023.2 Bobcat support 2023-08-02 14:16:41 -04:00
rename.sh Rework charm to use cinder sub plugin 2022-04-18 17:42:51 -03:00
requirements.txt Restructure charm after 'charm-ceph-iscsi' 2021-10-29 22:07:53 +00:00
test-requirements.txt Add Antelope support 2023-03-14 17:37:06 +00:00
tox.ini Add Antelope support 2023-03-14 17:37:06 +00:00

README.md

charm-cinder-three-par

Overview

Cinder is the OpenStack block storage (volume) service and allow for different backends to be used to provision volumes. The cinder 3PAR charm provides integration between Cinder service and HPE 3PAR storage array solution. Users can request volumes using OpenStack APIs and get them provisioned on 3PAR and distributed with either Fiber Channel or iSCSI connection.

Usage

Configuration

This section covers common and/or important configuration options. See file config.yaml for the full list of options, along with their descriptions and default values. See the [Juju documentation][juju-docs-config-apps] for details on configuring applications.

Deployment

Pre-deployment Setup with Fiber Channel

HPE 3PAR Fiber Channel demands cinder-volume service to be run on baremetal with direct access to the fiber channel interfaces.

In this type of deployment, break cinder into two applications:

    cinder-api:
      charm: cs:cinder
      options:
        enabled-services: "api,scheduler"
        ...
    cinder-volume:
      charm: cs:cinder
      options:
        enabled-services: "volume"

Cinder-api can be mapped to lxc containers while cinder-volume needs to be placed on a host with access to the fiber channel backend.

HPE3PAR-backed storage

Cinder can be backed by HPE 3PAR SAN Array, which provides commercial hardware backend for the volumes.

File cinder.yaml contains the following:

    cinder-three-par:
      driver-type: fc
      san-ip: 1.2.3.4
      san-login: CHANGE_TO_LOGIN
      san-password: CHANGE_TO_PWD
      hpe3par-username: CHANGE_TO_USERNAME
      hpe3par-password: CHANGE_TO_PWD
      hpe3par-api-url: https://<API_IP>/
      hpe3par-cpg: <SELECT A CPG>
      hpe3par_cpg_snap: <SELECT A CPG>

Here, Cinder HPE 3PAR backend is deployed to a container on machine '1' and related the cinder subordinate charm:

juju deploy --to lxd:1 --config cinder-three-par.yaml cinder
juju deploy cinder-three-par
juju add-relation cinder-three-par:storage-backend cinder:storage-backend

Optionally, set option:

      hpe3par-debug: True

To gather more logs on the deployment.

Developing

Create and activate a virtualenv with the development requirements:

virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements-dev.txt

Testing

The Python operator framework includes a very nice harness for testing operator behaviour without full deployment. You can run tests with tox.