summaryrefslogtreecommitdiffstats
path: root/src/cstart.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/cstart.sh
parentInitial commit. (diff)
downloadceph-upstream/16.2.11+ds.tar.xz
ceph-upstream/16.2.11+ds.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/cstart.sh')
-rwxr-xr-xsrc/cstart.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/cstart.sh b/src/cstart.sh
new file mode 100755
index 000000000..71f4200a4
--- /dev/null
+++ b/src/cstart.sh
@@ -0,0 +1,67 @@
+#!/bin/bash -e
+
+image_base="quay.io/ceph-ci/ceph"
+
+if which podman 2>&1 > /dev/null; then
+ runtime="podman"
+else
+ runtime="docker"
+fi
+
+# fsid
+if [ -e fsid ] ; then
+ fsid=`cat fsid`
+else
+ fsid=`uuidgen`
+ echo $fsid > fsid
+fi
+echo "fsid $fsid"
+
+shortid=`echo $fsid | cut -c 1-8`
+echo "shortid $shortid"
+
+# ip
+if [ -z "$ip" ]; then
+ if [ -x "$(which ip 2>/dev/null)" ]; then
+ IP_CMD="ip addr"
+ else
+ IP_CMD="ifconfig"
+ fi
+ # filter out IPv4 and localhost addresses
+ ip="$($IP_CMD | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' | head -n1)"
+ # if nothing left, try using localhost address, it might work
+ if [ -z "$ip" ]; then ip="127.0.0.1"; fi
+fi
+echo "ip $ip"
+
+# port
+if [ -z "$port" ]; then
+ while [ true ]
+ do
+ port="$(echo $(( RANDOM % 1000 + 40000 )))"
+ ss -a -n | grep LISTEN | grep "${ip}:${port} " 1>/dev/null 2>&1 || break
+ done
+fi
+echo "port $port"
+
+# make sure we have an image
+if ! $runtime image inspect $image_base:$shortid 2>/dev/null; then
+ echo "building initial $image_base:$shortid image..."
+ sudo ../src/script/cpatch -t $image_base:$shortid
+fi
+
+sudo ../src/cephadm/cephadm rm-cluster --force --fsid $fsid
+sudo ../src/cephadm/cephadm --image ${image_base}:${shortid} bootstrap \
+ --skip-pull \
+ --fsid $fsid \
+ --mon-addrv "[v2:$ip:$port]" \
+ --output-dir . \
+ --allow-overwrite
+
+# kludge to make 'bin/ceph ...' work
+sudo chmod 755 ceph.client.admin.keyring
+echo 'keyring = ceph.client.admin.keyring' >> ceph.conf
+
+echo
+echo "sudo ../src/script/cpatch -t $image_base:$shortid"
+echo