Juju Charm - Swift storage
Go to file
Tytus Kurek fc261a5adc Swift Global Cluster
This patchset adds a support for Swift Global Cluster feature as
described at:

https://docs.openstack.org/swift/latest/overview_global_cluster.html

It allows specifying 'region' config option as part of the deployment.
Theregion is reflected later on in the Swift rings.

Change-Id: I11b6c7802e5bfbd61b06e4d11c65804a165781b6
Partial-Bug: 1815879
Needed-By: I406445493e2226aa5ae40a09c9053ac8633a46e9
2019-12-17 10:08:13 +00:00
actions Upgrade the charm to py3 runtime 2018-10-24 14:57:05 +01:00
charmhelpers Charmhelpers sync to get vaultlocker fixes 2019-12-11 14:30:27 +00:00
files Fix import errors on Nagios check file 2019-03-29 13:15:10 -03:00
hooks Swift Global Cluster 2019-12-17 10:08:13 +00:00
lib Swift Global Cluster 2019-12-17 10:08:13 +00:00
templates Swift Global Cluster 2019-12-17 10:08:13 +00:00
tests Switch tests to zaza 2019-11-04 10:27:36 +00:00
unit_tests Swift Global Cluster 2019-12-17 10:08:13 +00:00
.gitignore Add support for block device encryption 2018-05-08 12:52:37 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:29:40 +00:00
.project Resynced helpers 2014-03-20 13:47:54 +00:00
.pydevproject Enable xenial/queens amulet testing 2018-03-12 09:34:00 +00:00
.stestr.conf Replace ostestr with stestr in testing framework. 2019-03-07 17:13:16 -05:00
.zuul.yaml Add Python 3 Train unit tests 2019-07-30 10:18:23 -04:00
LICENSE Re-license charm as Apache-2.0 2016-07-01 18:15:00 +01:00
Makefile Tests dir no longer need copy of charmhelpers 2018-10-10 12:41:54 +00:00
README.md Swift Global Cluster 2019-12-17 10:08:13 +00:00
actions.yaml Action Managed Upgrades 2015-09-22 15:58:18 -07:00
charm-helpers-hooks.yaml Sync charm/ceph helpers, tox, and requirements 2019-09-30 22:42:05 -05:00
config.yaml Swift Global Cluster 2019-12-17 10:08:13 +00:00
copyright Re-license charm as Apache-2.0 2016-07-01 18:15:00 +01:00
hardening.yaml Add hardening support 2016-03-24 11:11:58 +00:00
icon.svg Update charm icon 2017-08-02 17:25:40 +01:00
metadata.yaml Swift Global Cluster 2019-12-17 10:08:13 +00:00
requirements.txt Update requirements 2018-10-03 13:12:06 -05:00
revision Remove debug. 2013-07-19 14:13:59 -07:00
setup.cfg Add Python 3 Train unit tests 2019-07-30 10:18:23 -04:00
test-requirements.txt Switch tests to zaza 2019-11-04 10:27:36 +00:00
tox.ini Switch tests to zaza 2019-11-04 10:27:36 +00:00

README.md

Overview

This charm provides the swift-storage component of the OpenStack Swift object storage system. It can be deployed as part of its own standalone storage cluster or it can be integrated with the other OpenStack components, assuming those are also managed by Juju. For Swift to function, you'll also need to deploy an additional swift-proxy using the cs:precise/swift-proxy charm.

For more information about Swift and its architecture, visit the official Swift project website.

This charm is intended to track each LTS release of Ubuntu Server, as well as newer OpenStack releases via the Ubuntu Cloud Archive as supported by each Ubuntu LTS version. Non-LTS (interim release) Ubuntu server versions are enabled in the charms strictly for development and testing purposes.

Usage

This charm is quite simple. Its basic function is to get a storage device setup for swift usage, and run the container, object and account services. The deployment workflow for swift using this charm is covered in the README for the swift-proxy charm at cs:precise/swift-proxy. The following are deployment options to take into consideration when deploying swift-storage.

Zone assignment

If the swift-proxy charm is configured for manual zone assignment (recommended), the 'zone' option should be set for each swift-storage service being deployed. See the swift-proxy README for more information about zone assignment.

Region assignment

If the swift-proxy charm is configured with the Swift Global Cluster feature, the 'region' option should be set for each swift-storage service being deployed. See the swift-proxy charm README for more information about the Swift Global Cluster feature.

Storage

Swift storage nodes require access to local storage and filesystem. The charm takes a 'block-device' config setting that can be used to specify which storage device(s) to use. Options include:

  • 1 or more local block devices (eg, sdb or /dev/sdb). It's important that this device be the same on all machine units assigned to this service. Multiple block devices should be listed as a space-separated list of device nodes.
  • a path to a local file on the filesystem with the size appended after a pipe, eg "/etc/swift/storagedev1.img|5G". This will be created if it does not exist and be mapped to a loopback device. Intended strictly for development and testing.
  • "guess" can be used to tell the charm to do its best to find a local devices to use. EXPERIMENTAL

Multiple devices can be specified. In all cases, the resulting block device(s) will each be formatted as XFS file system and mounted at /srv/node/$devname.

Installation repository

The 'openstack-origin' setting allows Swift to be installed from repositories such as the Ubuntu Cloud Archive, which enables installation of Swift versions more recent than what shipped with the Ubuntu LTS release. For more information, see config.yaml.