The network-get --primary-address juju-info fails on pre-2.8.? versions of juju. This results in a NoNetworkBinding error. Fallback to unit_get() if that occurs for local_address(). Change-Id: Icfa65b0e02060e63fa90a57cd95da1dcac729c06
|1 month ago|
|actions||5 months ago|
|charmhelpers||1 month ago|
|files||7 months ago|
|hooks||6 months ago|
|lib||5 months ago|
|templates||7 months ago|
|tests||3 months ago|
|unit_tests||5 months ago|
|.gitignore||2 years ago|
|.gitreview||1 year ago|
|.project||7 years ago|
|.pydevproject||3 years ago|
|.stestr.conf||2 years ago|
|.zuul.yaml||1 year ago|
|LICENSE||4 years ago|
|Makefile||9 months ago|
|README.md||1 year ago|
|actions.yaml||5 years ago|
|charm-helpers-hooks.yaml||1 year ago|
|config.yaml||7 months ago|
|copyright||4 years ago|
|hardening.yaml||4 years ago|
|icon.svg||3 years ago|
|metadata.yaml||1 month ago|
|requirements.txt||2 months ago|
|revision||7 years ago|
|setup.cfg||1 year ago|
|test-requirements.txt||1 month ago|
|tox.ini||2 months ago|
OpenStack Swift is a highly available, distributed, eventually consistent object/blob store.
The swift-storage charm deploys Swift's storage component. The charm's basic function is to initialise storage devices and manage the container, object, and account services. It works in tandem with the swift-proxy charm, which is used to add proxy nodes.
This section covers common configuration options. See file
the full list of options, along with their descriptions and default values.
zone option assigns a storage zone (an integer) to a storage node. A zone
is associated with data replicas.
block-device option specifies the device(s) that will be used on all
machines associated with the application. Value types include:
The resulting block device(s) will be XFS-formatted and use
/srv/node/<device-name> as a mount point.
storage-region option specifies a storage region (an integer). It is used
only for multi-region (global) clusters.
swift.yaml contain the deployment configuration:
swift-proxy: zone-assignment: manual replicas: 3 swift-storage-zone1: zone: 1 block-device: /dev/sdb swift-storage-zone2: zone: 2 block-device: /dev/sdb swift-storage-zone3: zone: 3 block-device: /dev/sdb
Deploy the proxy and storage nodes:
juju deploy --config swift.yaml swift-proxy juju deploy --config swift.yaml swift-storage swift-storage-zone1 juju deploy --config swift.yaml swift-storage swift-storage-zone2 juju deploy --config swift.yaml swift-storage swift-storage-zone3
Add relations between the proxy node and all storage nodes:
juju add-relation swift-proxy:swift-storage swift-storage-zone1:swift-storage juju add-relation swift-proxy:swift-storage swift-storage-zone2:swift-storage juju add-relation swift-proxy:swift-storage swift-storage-zone3:swift-storage
This will result in a three-zone cluster, with each zone consisting of a single storage node, thereby satisfying the replica requirement of three.
Storage capacity is increased by adding swift-storage units to a zone. For example, to add two storage nodes to zone '3':
juju add-unit -n 2 swift-storage-zone3
Note: When scaling out ensure the candidate machines are equipped with the block devices currently configured for the associated application.
This charm will not balance the storage ring until there are enough storage zones to meet its minimum replica requirement, in this case three.
This section covers Juju actions supported by the charm. Actions allow specific operations to be performed on a per-unit basis.
To display action descriptions run
juju actions swift-storage.
Please report bugs on Launchpad.
For general charm questions refer to the OpenStack Charm Guide.