aboutsummaryrefslogtreecommitdiff
path: root/docker/swift/swift-object-base/config-swift-object.sh
blob: 0d3d58dc395c4f4b1ce42f229ac5a3a9d2dc8b4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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}