aboutsummaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
Diffstat (limited to 'script')
-rwxr-xr-xscript/dev-bucket.sh16
-rwxr-xr-xscript/dev-cluster.sh59
-rwxr-xr-xscript/dev-configure.sh15
-rwxr-xr-xscript/dev-env.sh18
4 files changed, 108 insertions, 0 deletions
diff --git a/script/dev-bucket.sh b/script/dev-bucket.sh
new file mode 100755
index 00000000..f07263f5
--- /dev/null
+++ b/script/dev-bucket.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+SCRIPT_FOLDER="`dirname \"$0\"`"
+REPO_FOLDER="${SCRIPT_FOLDER}/../"
+GARAGE_DEBUG="${REPO_FOLDER}/target/debug/"
+GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
+PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
+
+garage bucket create éprouvette
+KEY_INFO=`garage key new --name opérateur`
+ACCESS_KEY=`echo $KEY_INFO|grep -Po 'GK[a-f0-9]+'`
+SECRET_KEY=`echo $KEY_INFO|grep -Po 'secret_key: "[a-f0-9]+'|grep -Po '[a-f0-9]+$'`
+garage bucket allow éprouvette --read --write --key $ACCESS_KEY
+echo "$ACCESS_KEY $SECRET_KEY" > /tmp/garage.s3
+
+echo "Bucket s3://éprouvette created. Credentials stored in /tmp/garage.s3."
diff --git a/script/dev-cluster.sh b/script/dev-cluster.sh
new file mode 100755
index 00000000..9ad4b6b4
--- /dev/null
+++ b/script/dev-cluster.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+set -e
+
+SCRIPT_FOLDER="`dirname \"$0\"`"
+REPO_FOLDER="${SCRIPT_FOLDER}/../"
+GARAGE_DEBUG="${REPO_FOLDER}/target/debug/"
+GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
+PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
+FANCYCOLORS=("41m" "42m" "44m" "45m" "100m" "104m")
+
+export RUST_BACKTRACE=1
+export RUST_LOG=garage=info
+MAIN_LABEL="\e[${FANCYCOLORS[0]}[main]\e[49m"
+
+WHICH_GARAGE=$(which garage || exit 1)
+echo -en "${MAIN_LABEL} Found garage at: ${WHICH_GARAGE}\n"
+
+for count in $(seq 1 3); do
+CONF_PATH="/tmp/config.$count.toml"
+LABEL="\e[${FANCYCOLORS[$count]}[$count]\e[49m"
+
+cat > $CONF_PATH <<EOF
+block_size = 1048576 # objects are split in blocks of maximum this number of bytes
+metadata_dir = "/tmp/garage-meta-$count"
+data_dir = "/tmp/garage-data-$count"
+rpc_bind_addr = "127.0.0.$count:3901" # the port other Garage nodes will use to talk to this node
+bootstrap_peers = [
+ "127.0.0.1:3901",
+ "127.0.0.2:3901",
+ "127.0.0.3:3901"
+]
+max_concurrent_rpc_requests = 12
+data_replication_factor = 3
+meta_replication_factor = 3
+meta_epidemic_fanout = 3
+
+[s3_api]
+api_bind_addr = "127.0.0.$count:3900" # the S3 API port, HTTP without TLS. Add a reverse proxy for the TLS part.
+s3_region = "garage" # set this to anything. S3 API calls will fail if they are not made against the region set here.
+
+[s3_web]
+bind_addr = "127.0.0.$count:3902"
+root_domain = ".garage.tld"
+index = "index.html"
+EOF
+
+echo -en "$LABEL configuration written to $CONF_PATH\n"
+
+(garage server -c /tmp/config.$count.toml 2>&1|while read r; do echo -en "$LABEL $r\n"; done) &
+done
+
+until garage status 2>&1|grep -q Healthy ; do
+ echo -en "${MAIN_LABEL} cluster starting...\n"
+ sleep 1
+done
+echo -en "${MAIN_LABEL} cluster started\n"
+
+wait
diff --git a/script/dev-configure.sh b/script/dev-configure.sh
new file mode 100755
index 00000000..8b7392c6
--- /dev/null
+++ b/script/dev-configure.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+SCRIPT_FOLDER="`dirname \"$0\"`"
+REPO_FOLDER="${SCRIPT_FOLDER}/../"
+GARAGE_DEBUG="${REPO_FOLDER}/target/debug/"
+GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
+PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
+
+garage status \
+ | grep UNCONFIGURED \
+ | grep -Po '^[0-9a-f]+' \
+ | while read id; do
+ garage node configure -d dc1 -n 100 $id
+ done
+
diff --git a/script/dev-env.sh b/script/dev-env.sh
new file mode 100755
index 00000000..7e8ffc50
--- /dev/null
+++ b/script/dev-env.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+SCRIPT_FOLDER="`dirname \"${BASH_SOURCE[0]}\"`"
+REPO_FOLDER="${SCRIPT_FOLDER}/../"
+GARAGE_DEBUG="${REPO_FOLDER}/target/debug/"
+GARAGE_RELEASE="${REPO_FOLDER}/target/release/"
+PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH"
+
+ACCESS_KEY=`cat /tmp/garage.s3 |cut -d' ' -f1`
+SECRET_KEY=`cat /tmp/garage.s3 |cut -d' ' -f2`
+
+alias s3grg="s3cmd \
+ --host 127.0.0.1:3900 \
+ --access_key=$ACCESS_KEY \
+ --secret_key=$SECRET_KEY \
+ --region=garage \
+ --no-ssl"
+