From 98cca1e774be21e116b52ca42c7e3b98d9485b13 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Wed, 22 Jul 2020 11:59:20 -0700 Subject: [PATCH] Add configuration info --- storage-bigtable/README.md | 22 ++++++++++++++++++++++ storage-bigtable/init-bigtable.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 storage-bigtable/README.md create mode 100755 storage-bigtable/init-bigtable.sh diff --git a/storage-bigtable/README.md b/storage-bigtable/README.md new file mode 100644 index 0000000000..66914bf2a6 --- /dev/null +++ b/storage-bigtable/README.md @@ -0,0 +1,22 @@ + +## BigTable Setup + +### Development Environment +The Cloud BigTable emulator can be used during development/test. See +https://cloud.google.com/bigtable/docs/emulator for general setup information. + +Process: +1. Run `gcloud beta emulators bigtable start` in the background +2. Run `$(gcloud beta emulators bigtable env-init)` to establish the `BIGTABLE_EMULATOR_HOST` environment variable +3. Run `./init-bigtable.sh` to configure the emulator +4. Develop/test + +### Production Environment +Export a standard `GOOGLE_APPLICATION_CREDENTIALS` environment variable to your +service account credentials. The project should contain a BigTable instance +called `solana-ledger` that has been initialized by running the `./init-bigtable.sh` script. + +Depending on what operation mode is required, either the +`https://www.googleapis.com/auth/bigtable.data` or +`https://www.googleapis.com/auth/bigtable.data.readonly` OAuth scope will be +requested using the provided credentials. diff --git a/storage-bigtable/init-bigtable.sh b/storage-bigtable/init-bigtable.sh new file mode 100755 index 0000000000..3b988e2ef6 --- /dev/null +++ b/storage-bigtable/init-bigtable.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# +# Configures a BigTable instance with the expected tables +# + +set -e + +instance=solana-ledger + +cbt=( + cbt + -instance + "$instance" +) +if [[ -n $BIGTABLE_EMULATOR_HOST ]]; then + cbt+=(-project emulator) +fi + +for table in blocks tx tx-by-addr; do + ( + set -x + "${cbt[@]}" createtable $table + "${cbt[@]}" createfamily $table x + "${cbt[@]}" setgcpolicy $table x maxversions=1 + "${cbt[@]}" setgcpolicy $table x maxage=360d + ) +done