cb4e875ae1
The majority of the start.sh code is identical. This removes that duplicate code while still maintaining the ability to call code in a specific container. The start.sh is moved into /usr/local/bin/kolla_start in the container The extend_start.sh script is called by the kolla_start script at the location /usr/local/bin/kolla_extend_start . It always exists because we create a noop kolla_extend_start in the base directory. We override it with extend_start.sh in a specific image should we need to. Of note, the neutron-agents container is exempt from this new structure due to it being a fat container. Additionally, we fix the inconsistent permissions throughout. 644 for repo files and the scripts are set to 755 via a Docker RUN command to ensure someones local perm change won't break upstream containers. Change-Id: I7da8d19965463ad30ee522a71183e3f092e0d6ad Closes-Bug: #1501295
43 lines
1.9 KiB
Bash
43 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
|
|
# of the KOLLA_BOOTSTRAP variable being set, including empty.
|
|
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
|
|
# Formating disk for ceph
|
|
sgdisk --zap-all -- "${OSD_DEV}"
|
|
sgdisk --new=2:1M:5G --change-name=2:KOLLA_CEPH_JOURNAL --typecode=2:45B0969E-9B03-4F30-B4C6-B4B80CEFF106 --mbrtogpt -- "${OSD_DEV}"
|
|
sgdisk --largest-new=1 --change-name=1:KOLLA_CEPH_DATA --typecode=1:4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D -- "${OSD_DEV}"
|
|
# This command may throw errors that we can safely ignore
|
|
partprobe || true
|
|
|
|
# We look up the appropriate device path with partition.
|
|
OSD_PARTITION=$(ls "${OSD_DEV}"* | egrep "${OSD_DEV}p?1")
|
|
JOURNAL_PARTITION="${OSD_PARTITION%?}2"
|
|
|
|
OSD_ID=$(ceph osd create)
|
|
OSD_DIR="/var/lib/ceph/osd/ceph-${OSD_ID}"
|
|
mkdir -p "${OSD_DIR}"
|
|
mkfs.xfs -f "${OSD_PARTITION}"
|
|
mount "${OSD_PARTITION}" "${OSD_DIR}"
|
|
|
|
# This will through an error about no key existing. That is normal. It then
|
|
# creates the key in the next step.
|
|
ceph-osd -i "${OSD_ID}" --mkfs --osd-journal="${JOURNAL_PARTITION}" --mkkey
|
|
ceph auth add "osd.${OSD_ID}" osd 'allow *' mon 'allow profile osd' -i "${OSD_DIR}/keyring"
|
|
umount "${OSD_PARTITION}"
|
|
|
|
# These commands only need to be run once per host but are safe to run
|
|
# repeatedly. This can be improved later or if any problems arise.
|
|
ceph osd crush add-bucket "$(hostname)" host
|
|
ceph osd crush move "$(hostname)" root=default
|
|
|
|
# Adding osd to crush map
|
|
ceph osd crush add "${OSD_ID}" "${OSD_INITIAL_WEIGHT}" host="$(hostname)"
|
|
exit 0
|
|
fi
|
|
|
|
# We look up the appropriate journal since we cannot rely on symlinks
|
|
JOURNAL_PARTITION=$(ls "${OSD_DEV}"* | egrep "${OSD_DEV}p?2")
|
|
OSD_DIR="/var/lib/ceph/osd/ceph-${OSD_ID}"
|
|
ARGS="-i ${OSD_ID} --osd-journal ${JOURNAL_PARTITION} -k ${OSD_DIR}/keyring"
|