diff --git a/examples/common/insert_commerce_data.sql b/examples/common/insert_commerce_data.sql new file mode 100644 index 00000000000..32c4ab332fd --- /dev/null +++ b/examples/common/insert_commerce_data.sql @@ -0,0 +1,12 @@ +insert into customer(email) values('alice@domain.com'); +insert into customer(email) values('bob@domain.com'); +insert into customer(email) values('charlie@domain.com'); +insert into customer(email) values('dan@domain.com'); +insert into customer(email) values('eve@domain.com'); +insert into product(sku, description, price) values('SKU-1001', 'Monitor', 100); +insert into product(sku, description, price) values('SKU-1002', 'Keyboard', 30); +insert into corder(customer_id, sku, price) values(1, 'SKU-1001', 100); +insert into corder(customer_id, sku, price) values(2, 'SKU-1002', 30); +insert into corder(customer_id, sku, price) values(3, 'SKU-1002', 30); +insert into corder(customer_id, sku, price) values(4, 'SKU-1002', 30); +insert into corder(customer_id, sku, price) values(5, 'SKU-1002', 30); diff --git a/examples/common/select_commerce_data.sql b/examples/common/select_commerce_data.sql new file mode 100644 index 00000000000..d7494950b2d --- /dev/null +++ b/examples/common/select_commerce_data.sql @@ -0,0 +1,8 @@ +\! echo 'Using commerce/0' +use commerce/0; +\! echo 'Customer' +select * from customer; +\! echo 'Product' +select * from product; +\! echo 'COrder' +select * from corder; diff --git a/examples/common/select_customer-80_data.sql b/examples/common/select_customer-80_data.sql new file mode 100644 index 00000000000..2155068b423 --- /dev/null +++ b/examples/common/select_customer-80_data.sql @@ -0,0 +1,6 @@ +\! echo 'Using customer/-80' +use customer/-80; +\! echo 'Customer' +select * from customer; +\! echo 'COrder' +select * from corder; diff --git a/examples/common/select_customer0_data.sql b/examples/common/select_customer0_data.sql new file mode 100644 index 00000000000..01b0548ce3f --- /dev/null +++ b/examples/common/select_customer0_data.sql @@ -0,0 +1,6 @@ +\! echo 'Using customer/0' +use customer/0; +\! echo 'Customer' +select * from customer; +\! echo 'COrder' +select * from corder; diff --git a/examples/common/select_customer80-_data.sql b/examples/common/select_customer80-_data.sql new file mode 100644 index 00000000000..9e4a3c95dea --- /dev/null +++ b/examples/common/select_customer80-_data.sql @@ -0,0 +1,6 @@ +\! echo 'Using customer/80-' +use customer/80-; +\! echo 'Customer' +select * from customer; +\! echo 'COrder' +select * from corder; diff --git a/examples/local/101_initial_cluster.sh b/examples/local/101_initial_cluster.sh index a325f9ad2a0..a3f9793f290 100755 --- a/examples/local/101_initial_cluster.sh +++ b/examples/local/101_initial_cluster.sh @@ -14,20 +14,38 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components +# this script brings up zookeeper and all the vitess components # required for a single shard deployment. set -e -script_root=`dirname "${BASH_SOURCE}"` +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") -CELL=zone1 $script_root/zk-up.sh -CELL=zone1 $script_root/vtctld-up.sh -CELL=zone1 KEYSPACE=commerce UID_BASE=100 $script_root/vttablet-up.sh +# start topo server +if [ "${TOPO}" = "etcd2" ]; then + CELL=zone1 "$script_root/etcd-up.sh" +else + CELL=zone1 "$script_root/zk-up.sh" +fi + +# start vtctld +CELL=zone1 "$script_root/vtctld-up.sh" + +# start vttablets for keyspace commerce +CELL=zone1 KEYSPACE=commerce UID_BASE=100 "$script_root/vttablet-up.sh" sleep 15 + +# set one of the replicas to master ./lvtctl.sh InitShardMaster -force commerce/0 zone1-100 + +# create the schema ./lvtctl.sh ApplySchema -sql-file create_commerce_schema.sql commerce + +# create the vschema ./lvtctl.sh ApplyVSchema -vschema_file vschema_commerce_initial.json commerce -CELL=zone1 $script_root/vtgate-up.sh + +# start vtgate +CELL=zone1 "$script_root/vtgate-up.sh" disown -a diff --git a/examples/local/201_customer_keyspace.sh b/examples/local/201_customer_keyspace.sh index 0aedba25fe7..210c4eaf5a9 100755 --- a/examples/local/201_customer_keyspace.sh +++ b/examples/local/201_customer_keyspace.sh @@ -14,8 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script creates a new keyspace in preparation for vertical resharding set -e diff --git a/examples/local/202_customer_tablets.sh b/examples/local/202_customer_tablets.sh index 235b76fd4f0..05cc4ff9e6e 100755 --- a/examples/local/202_customer_tablets.sh +++ b/examples/local/202_customer_tablets.sh @@ -14,14 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script creates the tablets and initializes them for vertical +# resharding it also splits the vschema between the two keyspaces +# old (commerce) and new (customer) set -e -script_root=`dirname "${BASH_SOURCE}"` +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") -CELL=zone1 KEYSPACE=customer UID_BASE=200 $script_root/vttablet-up.sh +CELL=zone1 KEYSPACE=customer UID_BASE=200 "$script_root/vttablet-up.sh" sleep 15 ./lvtctl.sh InitShardMaster -force customer/0 zone1-200 ./lvtctl.sh CopySchemaShard -tables customer,corder commerce/0 customer/0 diff --git a/examples/local/203_vertical_split.sh b/examples/local/203_vertical_split.sh index 053a97f7b38..d5a67d6c8f7 100755 --- a/examples/local/203_vertical_split.sh +++ b/examples/local/203_vertical_split.sh @@ -14,18 +14,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script copies over all the data from commerce keyspace to +# customer keyspace for the customer and corder tables set -e -script_root=`dirname "${BASH_SOURCE}"` -source $script_root/env.sh +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") -$VTROOT/bin/vtworker \ +# shellcheck source=./env.sh +# shellcheck disable=SC1091 +source "$script_root/env.sh" + +# shellcheck disable=SC2086 +"$VTROOT"/bin/vtworker \ $TOPOLOGY_FLAGS \ -cell zone1 \ - -log_dir $VTDATAROOT/tmp \ + -log_dir "$VTDATAROOT"/tmp \ -alsologtostderr \ -use_v3_resharding_mode \ VerticalSplitClone -min_healthy_rdonly_tablets=1 -tables=customer,corder customer/0 diff --git a/examples/local/204_vertical_migrate_replicas.sh b/examples/local/204_vertical_migrate_replicas.sh index 4c9acc38445..3bb6c6dccbf 100755 --- a/examples/local/204_vertical_migrate_replicas.sh +++ b/examples/local/204_vertical_migrate_replicas.sh @@ -14,13 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script migrates traffic for the new customer keyspace to the new +# tablets of types rdonly and replica set -e -script_root=`dirname "${BASH_SOURCE}"` - ./lvtctl.sh MigrateServedFrom customer/0 rdonly ./lvtctl.sh MigrateServedFrom customer/0 replica diff --git a/examples/local/205_vertical_migrate_master.sh b/examples/local/205_vertical_migrate_master.sh index a21c1bf6848..1b42b0cab0d 100755 --- a/examples/local/205_vertical_migrate_master.sh +++ b/examples/local/205_vertical_migrate_master.sh @@ -14,13 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script migrates master traffic for the customer keyspace to the +# new master tablet set -e -script_root=`dirname "${BASH_SOURCE}"` - ./lvtctl.sh MigrateServedFrom customer/0 master disown -a diff --git a/examples/local/206_clean_commerce.sh b/examples/local/206_clean_commerce.sh index 010bd8ba999..2aa66b2f91d 100755 --- a/examples/local/206_clean_commerce.sh +++ b/examples/local/206_clean_commerce.sh @@ -14,13 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script removes the customer and corder tables from the commerce +# keyspace set -e -script_root=`dirname "${BASH_SOURCE}"` - ./lvtctl.sh ApplySchema -sql-file drop_commerce_tables.sql commerce ./lvtctl.sh SetShardTabletControl -blacklisted_tables=customer,corder -remove commerce/0 rdonly ./lvtctl.sh SetShardTabletControl -blacklisted_tables=customer,corder -remove commerce/0 replica diff --git a/examples/local/301_customer_sharded.sh b/examples/local/301_customer_sharded.sh index a1774158b30..2932f5d8776 100755 --- a/examples/local/301_customer_sharded.sh +++ b/examples/local/301_customer_sharded.sh @@ -14,13 +14,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script creates vitess sequences for the auto_increment fields +# and alters the fields to no longer be auto_increment in preparation +# for horizontal sharding +# it also changes the customer vschema from unsharded to sharded and +# sets up the necessary vindexes set -e -script_root=`dirname "${BASH_SOURCE}"` - ./lvtctl.sh ApplySchema -sql-file create_commerce_seq.sql commerce ./lvtctl.sh ApplyVSchema -vschema_file vschema_commerce_seq.json commerce ./lvtctl.sh ApplySchema -sql-file create_customer_sharded.sql customer diff --git a/examples/local/302_new_shards.sh b/examples/local/302_new_shards.sh index de480e1494e..e70c211b847 100755 --- a/examples/local/302_new_shards.sh +++ b/examples/local/302_new_shards.sh @@ -14,15 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script brings up new tablets for the two new shards that we will +# be creating in the customer keyspace and copies the schema set -e -script_root=`dirname "${BASH_SOURCE}"` +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") -SHARD=-80 CELL=zone1 KEYSPACE=customer UID_BASE=300 $script_root/vttablet-up.sh -SHARD=80- CELL=zone1 KEYSPACE=customer UID_BASE=400 $script_root/vttablet-up.sh +SHARD=-80 CELL=zone1 KEYSPACE=customer UID_BASE=300 "$script_root/vttablet-up.sh" +SHARD=80- CELL=zone1 KEYSPACE=customer UID_BASE=400 "$script_root/vttablet-up.sh" sleep 15 ./lvtctl.sh InitShardMaster -force customer/-80 zone1-300 ./lvtctl.sh InitShardMaster -force customer/80- zone1-400 diff --git a/examples/local/303_horizontal_split.sh b/examples/local/303_horizontal_split.sh index 8859b5dcf0a..9fb583d9dc1 100755 --- a/examples/local/303_horizontal_split.sh +++ b/examples/local/303_horizontal_split.sh @@ -14,18 +14,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script copies the data from customer/0 to customer/-80 and customer/80- +# each row will be copied to exactly one shard based on the vindex value set -e -script_root=`dirname "${BASH_SOURCE}"` -source $script_root/env.sh +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") -$VTROOT/bin/vtworker \ +# shellcheck source=./env.sh +# shellcheck disable=SC1091 +source "${script_root}/env.sh" + +# shellcheck disable=SC2086 +"$VTROOT"/bin/vtworker \ $TOPOLOGY_FLAGS \ -cell zone1 \ - -log_dir $VTDATAROOT/tmp \ + -log_dir "$VTDATAROOT"/tmp \ -alsologtostderr \ -use_v3_resharding_mode \ SplitClone -min_healthy_rdonly_tablets=1 customer/0 diff --git a/examples/local/304_migrate_replicas.sh b/examples/local/304_migrate_replicas.sh index 6722e21e2f2..39c86fe60e2 100755 --- a/examples/local/304_migrate_replicas.sh +++ b/examples/local/304_migrate_replicas.sh @@ -14,15 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script migrates traffic for the rdonly and replica tablets set -e -script_root=`dirname "${BASH_SOURCE}"` - ./lvtctl.sh MigrateServedTypes customer/0 rdonly ./lvtctl.sh MigrateServedTypes customer/0 replica - disown -a diff --git a/examples/local/305_migrate_master.sh b/examples/local/305_migrate_master.sh index ede4e3c970f..f5f1170ebc0 100755 --- a/examples/local/305_migrate_master.sh +++ b/examples/local/305_migrate_master.sh @@ -14,13 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script migrates traffic for the master tablet set -e -script_root=`dirname "${BASH_SOURCE}"` - ./lvtctl.sh MigrateServedTypes customer/0 master +# data has been copied over to shards, and databases for the new shards are now available disown -a diff --git a/examples/local/306_down_shard_0.sh b/examples/local/306_down_shard_0.sh index e8fe8112ddf..530746846d0 100755 --- a/examples/local/306_down_shard_0.sh +++ b/examples/local/306_down_shard_0.sh @@ -14,13 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script brings down the tablets for customer/0 keyspace set -e -script_root=`dirname "${BASH_SOURCE}"` +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") -./lvtctl.sh DeleteShard -recursive customer/0 +CELL=zone1 UID_BASE=100 "$script_root/vttablet-down.sh" disown -a diff --git a/examples/local/307_delete_shard_0.sh b/examples/local/307_delete_shard_0.sh new file mode 100755 index 00000000000..284e6aba3ab --- /dev/null +++ b/examples/local/307_delete_shard_0.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Copyright 2018 The Vitess Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# this script deletes the old shard 0 which has been replaced by 2 shards + +set -e + +./lvtctl.sh DeleteShard -recursive customer/0 + +disown -a diff --git a/examples/local/401_teardown.sh b/examples/local/401_teardown.sh index dc58874c4f6..f314b6a6073 100755 --- a/examples/local/401_teardown.sh +++ b/examples/local/401_teardown.sh @@ -14,19 +14,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this scripts brings up zookeeper and all the vitess components -# required for a single shard deployment. +# this script brings down zookeeper and all the vitess components +# we brought up in the example +# optionally, you may want to delete everything that was created +# by the example from $VTDATAROOT set -e -script_root=`dirname "${BASH_SOURCE}"` +# shellcheck disable=SC2128 +script_root=$(dirname "${BASH_SOURCE}") ./vtgate-down.sh -CELL=zone1 UID_BASE=100 $script_root/vttablet-down.sh -CELL=zone1 UID_BASE=200 $script_root/vttablet-down.sh -CELL=zone1 UID_BASE=300 $script_root/vttablet-down.sh -CELL=zone1 UID_BASE=400 $script_root/vttablet-down.sh +CELL=zone1 UID_BASE=200 "$script_root/vttablet-down.sh" +CELL=zone1 UID_BASE=300 "$script_root/vttablet-down.sh" +CELL=zone1 UID_BASE=400 "$script_root/vttablet-down.sh" ./vtctld-down.sh -./zk-down.sh + +if [ "${TOPO}" = "etcd2" ]; then + CELL=zone1 "$script_root/etcd-down.sh" +else + CELL=zone1 "$script_root/zk-down.sh" +fi disown -a diff --git a/examples/local/env.sh b/examples/local/env.sh index 00ab9bacdaa..dab3ae00be6 100644 --- a/examples/local/env.sh +++ b/examples/local/env.sh @@ -28,6 +28,15 @@ if [ -z "$VT_MYSQL_ROOT" ]; then export VT_MYSQL_ROOT=$(dirname `dirname $mysql_path`) fi +# restore MYSQL_FLAVOR, saved by bootstrap.sh +if [ -r "$VTROOT/dist/MYSQL_FLAVOR" ]; then + MYSQL_FLAVOR=$(cat "$VTROOT/dist/MYSQL_FLAVOR") + export MYSQL_FLAVOR +fi + +if [ -z "$MYSQL_FLAVOR" ]; then + export MYSQL_FLAVOR=MySQL56 +fi if [ "${TOPO}" = "etcd2" ]; then echo "enter etcd2 env" diff --git a/examples/local/etcd-down.sh b/examples/local/etcd-down.sh index 5888ddb52e8..5bc10ac0cf4 100755 --- a/examples/local/etcd-down.sh +++ b/examples/local/etcd-down.sh @@ -26,5 +26,5 @@ source "${script_root}/env.sh" # Stop etcd servers. echo "Stopping etcd servers..." -ETCD_VERSION=$(cat "$VTROOT/dist/etcd/version") +ETCD_VERSION=$(cat "$VTROOT/dist/etcd/.installed_version") kill -9 "$(pgrep -f "dist/etcd/etcd-${ETCD_VERSION}-linux-amd64/etcd")" diff --git a/examples/local/etcd-up.sh b/examples/local/etcd-up.sh index 7d68dae9f27..955169e88fd 100755 --- a/examples/local/etcd-up.sh +++ b/examples/local/etcd-up.sh @@ -25,9 +25,9 @@ script_root=$(dirname "${BASH_SOURCE[0]}") # shellcheck disable=SC1091 source "${script_root}/env.sh" -ETCD_VERSION=$(cat "${VTROOT}/dist/etcd/version") +ETCD_VERSION=$(cat "${VTROOT}/dist/etcd/.installed_version") -"${VTROOT}"/dist/etcd/etcd-"${ETCD_VERSION}"-linux-amd64/etcd --data-dir "${VTDATAROOT}/etcd/" --listen-client-urls "http://${ETCD_SERVER}" --advertise-client-urls "http://${ETCD_SERVER}" & +"${VTROOT}"/dist/etcd/etcd-"${ETCD_VERSION}"-linux-amd64/etcd --data-dir "${VTDATAROOT}/etcd/" --listen-client-urls "http://${ETCD_SERVER}" --advertise-client-urls "http://${ETCD_SERVER}" > "${VTDATAROOT}"/tmp/etcd.out 2>&1 & sleep 5 echo "add /vitess/global" @@ -37,7 +37,7 @@ echo "add /vitess/global" echo "add /vitess/$cell" "${VTROOT}"/dist/etcd/etcd-"${ETCD_VERSION}"-linux-amd64/etcdctl --endpoints "http://${ETCD_SERVER}" mkdir /vitess/$cell & -# And also add the CellInfo description for the 'test' cell. +# And also add the CellInfo description for the cell. # If the node already exists, it's fine, means we used existing data. echo "add $cell CellInfo" set +e diff --git a/examples/local/lmysql.sh b/examples/local/lmysql.sh new file mode 100755 index 00000000000..1382e517b8d --- /dev/null +++ b/examples/local/lmysql.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Copyright 2018 The Vitess Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This is a convenience script to run mysql client against the local vtgate. + +mysql -h 127.0.0.1 -P 15306 -u mysql_user diff --git a/examples/local/vschema.json b/examples/local/vschema.json deleted file mode 100644 index 17e5dedf0c8..00000000000 --- a/examples/local/vschema.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "sharded": true, - "vindexes": { - "hash": { - "type": "hash" - } - }, - "tables": { - "messages": { - "column_vindexes": [ - { - "column": "page", - "name": "hash" - } - ] - } - } -} diff --git a/examples/local/vtgate-up.sh b/examples/local/vtgate-up.sh index f79a4d9dc6d..77483499e71 100755 --- a/examples/local/vtgate-up.sh +++ b/examples/local/vtgate-up.sh @@ -54,13 +54,19 @@ then optional_tls_args="-grpc_cert $cert_dir/server-cert.pem -grpc_key $cert_dir/server-key.pem -grpc_ca $cert_dir/ca-cert.pem" fi -optional_auth_args='' +optional_auth_args='-mysql_auth_server_impl none' if [ "$1" = "--enable-grpc-static-auth" ]; then echo "Enabling Auth with static authentication in grpc" optional_auth_args='-grpc_auth_static_client_creds ./grpc_static_client_auth.json' fi +if [ "$1" = "--enable-mysql-static-auth" ]; +then + echo "Enabling Auth with mysql static authentication" + optional_auth_args='-mysql_auth_server_static_file ./mysql_auth_server_static_creds.json' +fi + # Start vtgate. # shellcheck disable=SC2086 $VTROOT/bin/vtgate \ @@ -71,7 +77,6 @@ $VTROOT/bin/vtgate \ -grpc_port $grpc_port \ -mysql_server_port $mysql_server_port \ -mysql_server_socket_path $mysql_server_socket_path \ - -mysql_auth_server_static_file "./mysql_auth_server_static_creds.json" \ -cell $cell \ -cells_to_watch $cell \ -tablet_types_to_wait MASTER,REPLICA \ diff --git a/examples/local/vttablet-up.sh b/examples/local/vttablet-up.sh index b5ccd4a2e43..00cea50a5b5 100755 --- a/examples/local/vttablet-up.sh +++ b/examples/local/vttablet-up.sh @@ -43,11 +43,9 @@ export EXTRA_MY_CNF=$VTROOT/config/mycnf/default-fast.cnf case "$MYSQL_FLAVOR" in "MySQL56") export EXTRA_MY_CNF=$EXTRA_MY_CNF:$VTROOT/config/mycnf/master_mysql56.cnf -# export EXTRA_MY_CNF=$VTROOT/config/mycnf/master_mysql56.cnf ;; "MariaDB") export EXTRA_MY_CNF=$EXTRA_MY_CNF:$VTROOT/config/mycnf/master_mariadb.cnf -# export EXTRA_MY_CNF=$VTROOT/config/mycnf/master_mariadb.cnf ;; *) echo "Please set MYSQL_FLAVOR to MySQL56 or MariaDB." @@ -57,7 +55,7 @@ esac mkdir -p $VTDATAROOT/backups -# Start 5 vttablets by default. +# Start 3 vttablets by default. # Pass TABLETS_UIDS indices as env variable to change uids=${TABLETS_UIDS:-'0 1 2'}