From c94406f4282d48e2e2ac82ffb57eafaad23f7edc Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Tue, 9 Nov 2021 12:24:04 +0100 Subject: Improve how node roles are assigned in Garage - change the terminology: the network configuration becomes the role table, the configuration of a nodes becomes a node's role - the modification of the role table takes place in two steps: first, changes are staged in a CRDT data structure. Then, once the user is happy with the changes, they can commit them all at once (or revert them). - update documentation - fix tests - implement smarter partition assignation algorithm This patch breaks the format of the network configuration: when migrating, the cluster will be in a state where no roles are assigned. All roles must be re-assigned and commited at once. This migration should not pose an issue. --- script/dev-cluster.sh | 2 +- script/dev-configure.sh | 3 ++- script/test-smoke.sh | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) (limited to 'script') diff --git a/script/dev-cluster.sh b/script/dev-cluster.sh index 3ca3f74b..9ac7ff34 100755 --- a/script/dev-cluster.sh +++ b/script/dev-cluster.sh @@ -69,7 +69,7 @@ done sleep 3 # Establish connections between nodes for count in $(seq 1 3); do - NODE=$(garage -c /tmp/config.$count.toml node-id -q) + NODE=$(garage -c /tmp/config.$count.toml node id -q) for count2 in $(seq 1 3); do garage -c /tmp/config.$count2.toml node connect $NODE done diff --git a/script/dev-configure.sh b/script/dev-configure.sh index add9a96a..f4bb338f 100755 --- a/script/dev-configure.sh +++ b/script/dev-configure.sh @@ -25,6 +25,7 @@ garage -c /tmp/config.1.toml status \ | grep 'NO ROLE' \ | grep -Po '^[0-9a-f]+' \ | while read id; do - garage -c /tmp/config.1.toml node configure -z dc1 -c 1 $id + garage -c /tmp/config.1.toml layout assign $id -z dc1 -c 1 done +garage -c /tmp/config.1.toml layout apply --version 1 diff --git a/script/test-smoke.sh b/script/test-smoke.sh index 86bbe3ee..87d99ca8 100755 --- a/script/test-smoke.sh +++ b/script/test-smoke.sh @@ -116,11 +116,11 @@ if [ -z "$SKIP_AWS" ]; then echo "🧪 Website Testing" echo "

hello world

" > /tmp/garage-index.html aws s3 cp /tmp/garage-index.html s3://eprouvette/index.html - [ `curl -s -o /dev/null -w "%{http_code}" --header "Host: eprouvette.garage.tld" http://127.0.0.1:3923/ ` == 404 ] + [ `curl -s -o /dev/null -w "%{http_code}" --header "Host: eprouvette.garage.tld" http://127.0.0.1:3921/ ` == 404 ] garage -c /tmp/config.1.toml bucket website --allow eprouvette - [ `curl -s -o /dev/null -w "%{http_code}" --header "Host: eprouvette.garage.tld" http://127.0.0.1:3923/ ` == 200 ] + [ `curl -s -o /dev/null -w "%{http_code}" --header "Host: eprouvette.garage.tld" http://127.0.0.1:3921/ ` == 200 ] garage -c /tmp/config.1.toml bucket website --deny eprouvette - [ `curl -s -o /dev/null -w "%{http_code}" --header "Host: eprouvette.garage.tld" http://127.0.0.1:3923/ ` == 404 ] + [ `curl -s -o /dev/null -w "%{http_code}" --header "Host: eprouvette.garage.tld" http://127.0.0.1:3921/ ` == 404 ] aws s3 rm s3://eprouvette/index.html rm /tmp/garage-index.html fi -- cgit v1.2.3