aboutsummaryrefslogtreecommitdiff
path: root/docker/swift/swift-object-base/config-swift-object.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/swift/swift-object-base/config-swift-object.sh')
-rw-r--r--docker/swift/swift-object-base/config-swift-object.sh72
1 files changed, 72 insertions, 0 deletions
diff --git a/docker/swift/swift-object-base/config-swift-object.sh b/docker/swift/swift-object-base/config-swift-object.sh
new file mode 100644
index 000000000..0d3d58dc3
--- /dev/null
+++ b/docker/swift/swift-object-base/config-swift-object.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+. /opt/kolla/kolla-common.sh
+
+check_required_vars \
+ SWIFT_CONTAINER_SVC_RING_DEVICES \
+ SWIFT_CONTAINER_SVC_RING_HOSTS \
+ SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS \
+ SWIFT_CONTAINER_SVC_RING_NAME \
+ SWIFT_CONTAINER_SVC_RING_PART_POWER \
+ SWIFT_CONTAINER_SVC_RING_REPLICAS \
+ SWIFT_CONTAINER_SVC_RING_WEIGHTS \
+ SWIFT_CONTAINER_SVC_RING_ZONES \
+ SWIFT_DIR \
+ SWIFT_OBJECT_SVC_BIND_IP \
+ SWIFT_OBJECT_SVC_BIND_PORT \
+ SWIFT_OBJECT_SVC_DEVICES \
+ SWIFT_OBJECT_SVC_MOUNT_CHECK \
+ SWIFT_OBJECT_SVC_PIPELINE \
+ SWIFT_OBJECT_SVC_RING_DEVICES \
+ SWIFT_OBJECT_SVC_RING_HOSTS \
+ SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS \
+ SWIFT_OBJECT_SVC_RING_NAME \
+ SWIFT_OBJECT_SVC_RING_PART_POWER \
+ SWIFT_OBJECT_SVC_RING_REPLICAS \
+ SWIFT_OBJECT_SVC_RING_WEIGHTS \
+ SWIFT_OBJECT_SVC_RING_ZONES \
+ SWIFT_USER
+
+cfg=/etc/swift/object-server.conf
+
+crudini --set $cfg DEFAULT bind_ip "${SWIFT_OBJECT_SVC_BIND_IP}"
+crudini --set $cfg DEFAULT bind_port "${SWIFT_OBJECT_SVC_BIND_PORT}"
+crudini --set $cfg DEFAULT user "${SWIFT_USER}"
+crudini --set $cfg DEFAULT swift_dir "${SWIFT_DIR}"
+crudini --set $cfg DEFAULT devices "${SWIFT_OBJECT_SVC_DEVICES}"
+crudini --set $cfg DEFAULT mount_check "${SWIFT_OBJECT_SVC_MOUNT_CHECK}"
+
+crudini --set $cfg pipeline:main pipeline "${SWIFT_OBJECT_SVC_PIPELINE}"
+
+# NOTE(pbourke): some services require a section in the conf, even if empty
+crudini --set $cfg object-expirer
+
+# Create swift user and group if they don't exist
+id -u swift &>/dev/null || useradd --user-group swift
+
+# Ensure proper ownership of the mount point directory structure
+chown -R swift:swift /srv/node
+
+# TODO(pbourke): does this need to be on a data vol?
+mkdir -p /var/cache/swift
+chown -R swift:swift /var/cache/swift
+
+python /opt/kolla/build-swift-ring.py \
+ -f ${SWIFT_OBJECT_SVC_RING_NAME} \
+ -p ${SWIFT_OBJECT_SVC_RING_PART_POWER} \
+ -r ${SWIFT_OBJECT_SVC_RING_REPLICAS} \
+ -m ${SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS} \
+ -H ${SWIFT_OBJECT_SVC_RING_HOSTS} \
+ -w ${SWIFT_OBJECT_SVC_RING_WEIGHTS} \
+ -d ${SWIFT_OBJECT_SVC_RING_DEVICES} \
+ -z ${SWIFT_OBJECT_SVC_RING_ZONES}
+
+python /opt/kolla/build-swift-ring.py \
+ -f ${SWIFT_CONTAINER_SVC_RING_NAME} \
+ -p ${SWIFT_CONTAINER_SVC_RING_PART_POWER} \
+ -r ${SWIFT_CONTAINER_SVC_RING_REPLICAS} \
+ -m ${SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS} \
+ -H ${SWIFT_CONTAINER_SVC_RING_HOSTS} \
+ -w ${SWIFT_CONTAINER_SVC_RING_WEIGHTS} \
+ -d ${SWIFT_CONTAINER_SVC_RING_DEVICES} \
+ -z ${SWIFT_CONTAINER_SVC_RING_ZONES}