PureStorage-OpenConnect / purestorage-flocker-driver

Please use Pure Service Orchestrator instead of Pure Storage Flocker Driver. No ongoing development or support.
http://www.purestorage.com/containers
Apache License 2.0
1 stars 4 forks source link

Pure Storage Flocker Driver

The plugin to provide Pure Storage FlashArray Flocker integration.

Description

ClusterHQ/Flocker provides an efficient and easy way to connect persistent store with Docker containers. This project provides a plugin to provision resillient storage from Pure Storage.

Pure Storage Flocker Intergration Block Diagram

Pure Storage Flocker Integration Block Diagram

Installation

Usage Instructions

To start the driver on a node, a configuration file must exist on the node at /etc/flocker/agent.yml. This should be as follows, replacing ${pure_ip} & ${pure_api} with the ip/hostname and API token of the Pure Storage FlashArray:

control-service: {hostname: '1.2.3.4', port: 5678}
version: 1
dataset:
    backend: purestorage_flasharray_flocker_driver
    pure_ip: ${pure_ip}
    pure_api_token: ${pure_api}
    pure_storage_protocol: ${pure_storage_protocol}  # Optional
    pure_manage_purity_hosts: ${PURE_MANAGE_PURITY_HOSTS} # Optional
    pure_chap_host_user: ${pure_chap_host_user}  # Optional
    pure_chap_host_password: ${pure_chap_host_password}  # Optional
    pure_verify_https: ${pure_verify_https} # Optional
    pure_ssl_cert: ${pure_ssl_cert}  # Optional

Example agent.yml dataset configuration for Pure:

version: 1
control-service:
   hostname: flocker-controller-1.dev.purestorage.com
   port: 4524

dataset:
    backend: purestorage_flasharray_flocker_driver
    pure_ip: 10.231.128.11
    pure_api_token: 661f9687-0b1e-7b0d-e07d-1e776d50f9eb

Required Parameters

pure_ip
This is the management vip or hostname for the FlashArray.
pure_api_token
A valid api token for the FlashArray being managed.

Optional Parameters

pure_manage_purity_hosts
When True the driver will automatically create and modify Purity hosts to ensure WWNS, IQNS, and/or CHAP credentials are set correctly. Defaults to True.
pure_storage_protocol
The type of storage protocol being used. Valid options are ISCSI or FIBRE_CHANNEL. Defaults to ISCSI.
pure_chap_host_user
The iSCSI CHAP host username to use. This is only used when pure_storage_protocol is ISCSI. To enable CHAP you must set both pure_chap_host_user and pure_chap_host_password.
pure_chap_host_password
The iSCSI CHAP host password to use. This is only used when pure_storage_protocol is ISCSI. To enable CHAP you must set both pure_chap_host_user and pure_chap_host_password.
pure_verify_https
Force verification of HTTPS requests. When enabled, if the certificates are not trusted requests will fail. Defaults to False.
pure_ssl_cert
If pure_verify_https is True then you may specify a path to ca bundle/certificate for use in request validation. Otherwise system defaults will be used.

Contribution

Create a fork of the project into your own repository. Make all your necessary changes and create a pull request with a description on what was added or removed and details explaining the changes in lines of code. If approved, project owners will merge it.

Running Tests

Setup the Flocker dev environment

git clone https://github.com/ClusterHQ/flocker.git

virtualenv flocker-test-env
source ./flocker-test-env/bin/activate

cd ./flocker
pip install --requirement dev-requirements.txt
cd ..

Refer to https://docs.clusterhq.com/en/latest/gettinginvolved/contributing.html for the most up to date instructions.

All further steps need to be using the virtualenv!

Install the Pure driver

git clone https://github.com/PureStorage-OpenConnect/purestorage-flocker-driver.git

cd purestorage-flocker-driver/
pip install .

Run the tests (from the root of purestorage-flocker-driver, while )

trial tests.test_purestorage

This will, by default, look for a configuration file in /etc/flocker/agent.yml If you wish to specify a custom location export a AGENT_CONFIG_FILE environment variable with the full path and it will be used instead. These configuration files are expected to have the same backend definition as a normal agent.yml file using a Pure Storage FlashArray backend.

Compatibility

This plugin has been tested and verified with Flocker 1.14.0 on Ubuntu and CentOS based systems.

It will support Pure FlashArray's running Purity version 3.4.0 and newer.

Licensing

Pure Storage will not provide legal guidance on which open source license should be used in projects. We do expect that all projects and contributions will have a valid open source license, or align to the appropriate license for the project/contribution

Copyright [2016] [Pure Storage Inc.]

Some small portions of this driver were forked from the Apache 2.0 licensed repository at https://github.com/dellstorage/storagecenter-flocker-driver, and the appropriate copyrights apply to that portion.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Support

Please file bugs and issues at the Github issues page. For more general discussions you can contact the Flocker team at Google Groups. The code and documentation are released with no warranties or SLAs and are intended to be supported through a community driven process.