From 0eb9720204198604579287b0a48c6a851008dd89 Mon Sep 17 00:00:00 2001 From: nitramiz Date: Sun, 29 Jan 2023 17:21:30 +0000 Subject: [PATCH 1/2] Nginx: Add client timeouts and add rate limiter to more endpoints --- contrib/nginx.conf.in | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/contrib/nginx.conf.in b/contrib/nginx.conf.in index 22508dd3..934fa71c 100644 --- a/contrib/nginx.conf.in +++ b/contrib/nginx.conf.in @@ -41,6 +41,11 @@ server { keepalive_timeout 650s; {NGINX_LOGGING}; server_tokens off; + + # client timeouts + client_body_timeout 5s; + client_header_timeout 5s; + add_header X-Frame-Options SAMEORIGIN always; add_header Content-Security-Policy "{NGINX_CSP}" always; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; @@ -66,6 +71,7 @@ server { } location /{NGINX_PATH}electrum-websocket/ { limit_req zone=lightlimitzone burst=10 nodelay; + client_body_timeout 60s; proxy_pass http://electrum_websocket/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; @@ -75,9 +81,11 @@ server { } location = /{NGINX_PATH}nojs { + limit_req zone=lightlimitzone burst=10 nodelay; return 301 " /{NGINX_PATH}nojs/"; } location ~ ^/{NGINX_PATH}((tx|block|block-height|address|assets?)/|[a-zA-Z0-9]+$) { + limit_req zone=lightlimitzone burst=10 nodelay; expires 60m; if ($args = "nojs") { {NGINX_REWRITE_NOJS}; @@ -85,6 +93,7 @@ server { try_files $uri /index.html; } location /{NGINX_PATH} { + limit_req zone=lightlimitzone burst=10 nodelay; expires 60m; if ($args = "nojs") { {NGINX_REWRITE_NOJS}; @@ -92,6 +101,7 @@ server { {NGINX_REWRITE} } location = /{NGINX_NOSLASH_PATH} { + limit_req zone=lightlimitzone burst=10 nodelay; if ($args = "nojs") { {NGINX_REWRITE_NOJS}; } From e32d8c5c3316be2c797a7ee231a149315cf8375c Mon Sep 17 00:00:00 2001 From: Chase Sillevis Date: Mon, 30 Jan 2023 20:48:50 +0100 Subject: [PATCH 2/2] gitlab CI: switch to cloud --- .gitlab-ci.yml | 458 +++++++++++++++++++++++++++---------------------- 1 file changed, 250 insertions(+), 208 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 230ee4de..1d543961 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,7 +22,13 @@ test_docker_build_image: image: docker@sha256:16a1f4b3e64c5a8e1ac80987bc2b8907dbc1c79c1b13be0781f4d24a2072e698 stage: build tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind before_script: @@ -34,22 +40,28 @@ test_docker_build_image: - docker pull blockstream/esplora-base:latest - docker pull blockstream/esplora:latest - docker build - --network=host - --cache-from blockstream/esplora-base:latest - -f Dockerfile.deps - -t esplora-base . + --network=host + --cache-from blockstream/esplora-base:latest + -f Dockerfile.deps + -t esplora-base . - docker build - --network=host - --build-arg FOOT_HTML='' - --cache-from blockstream/esplora:latest - -t esplora . + --network=host + --build-arg FOOT_HTML='' + --cache-from blockstream/esplora:latest + -t esplora . - docker rmi esplora-base || true - docker rmi esplora || true build_staging: stage: build tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind only: @@ -65,18 +77,24 @@ build_staging: - esplora_base_sha=$(docker inspect --format='{{index .RepoDigests 0}}' blockstream/esplora-base:$CI_COMMIT_REF_SLUG) - sed -i "s~blockstream/esplora-base:latest~${esplora_base_sha}~g" Dockerfile - curl "https://hub.docker.com/v2/repositories/blockstream/esplora/tags/" | grep -q "$CI_COMMIT_SHA" || ( - docker pull blockstream/esplora:latest - && docker build - --network=host - --build-arg FOOT_HTML='' - --cache-from blockstream/esplora:latest - -t blockstream/esplora:$CI_COMMIT_SHA . - && docker push blockstream/esplora:$CI_COMMIT_SHA) + docker pull blockstream/esplora:latest + && docker build + --network=host + --build-arg FOOT_HTML='' + --cache-from blockstream/esplora:latest + -t blockstream/esplora:$CI_COMMIT_SHA . + && docker push blockstream/esplora:$CI_COMMIT_SHA) build: stage: build tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind only: @@ -93,19 +111,19 @@ build: - esplora_base_sha=$(docker inspect --format='{{index .RepoDigests 0}}' blockstream/esplora-base:$CI_COMMIT_REF_SLUG) - sed -i "s~blockstream/esplora-base:latest~${esplora_base_sha}~g" Dockerfile - curl "https://hub.docker.com/v2/repositories/blockstream/esplora/tags/" | grep -q "$CI_COMMIT_SHA" || ( - docker pull blockstream/esplora:latest - && docker build - --network=host - --build-arg FOOT_HTML='' - --cache-from blockstream/esplora:latest - -t blockstream/esplora:latest . - && docker push blockstream/esplora:latest - && docker build - --network=host - --build-arg FOOT_HTML='' - --cache-from blockstream/esplora:latest - -t blockstream/esplora:$CI_COMMIT_SHA . - && docker push blockstream/esplora:$CI_COMMIT_SHA) + docker pull blockstream/esplora:latest + && docker build + --network=host + --build-arg FOOT_HTML='' + --cache-from blockstream/esplora:latest + -t blockstream/esplora:latest . + && docker push blockstream/esplora:latest + && docker build + --network=host + --build-arg FOOT_HTML='' + --cache-from blockstream/esplora:latest + -t blockstream/esplora:$CI_COMMIT_SHA . + && docker push blockstream/esplora:$CI_COMMIT_SHA) plan: except: @@ -121,21 +139,21 @@ plan: - (echo -n "$V3_PK" > terraform/modules/tor/v3.pk) - (echo -n "$V3_PUBK" > terraform/modules/tor/v3.pubk) - (cd terraform && terraform init -input=false && - terraform workspace select main && - terraform init -input=false && - terraform plan - -var "prometheus_allowed_source_ip=$PROMETHEUS_ALLOWED_SOURCE_IP" - -var "hosts=$HOSTS" - -var "hosts_onion=$HOSTS_ONION" - -var "cluster_size=$NODE_CLUSTER_SIZE" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE" - -var "instance_type=$NODE_INSTANCE_TYPE" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "ssl_certs=$SSL_CERTS" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -input=false) + terraform workspace select main && + terraform init -input=false && + terraform plan + -var "prometheus_allowed_source_ip=$PROMETHEUS_ALLOWED_SOURCE_IP" + -var "hosts=$HOSTS" + -var "hosts_onion=$HOSTS_ONION" + -var "cluster_size=$NODE_CLUSTER_SIZE" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE" + -var "instance_type=$NODE_INSTANCE_TYPE" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "ssl_certs=$SSL_CERTS" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -input=false) plan_main: stage: deploy @@ -146,21 +164,21 @@ plan_main: - (echo -n "$V3_PK" > terraform/modules/tor/v3.pk) - (echo -n "$V3_PUBK" > terraform/modules/tor/v3.pubk) - (cd terraform && terraform init -input=false && - terraform workspace select main && - terraform init -input=false && - terraform plan - -var "prometheus_allowed_source_ip=$PROMETHEUS_ALLOWED_SOURCE_IP" - -var "hosts=$HOSTS" - -var "hosts_onion=$HOSTS_ONION" - -var "cluster_size=$NODE_CLUSTER_SIZE" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE" - -var "instance_type=$NODE_INSTANCE_TYPE" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "ssl_certs=$SSL_CERTS" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -input=false) + terraform workspace select main && + terraform init -input=false && + terraform plan + -var "prometheus_allowed_source_ip=$PROMETHEUS_ALLOWED_SOURCE_IP" + -var "hosts=$HOSTS" + -var "hosts_onion=$HOSTS_ONION" + -var "cluster_size=$NODE_CLUSTER_SIZE" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE" + -var "instance_type=$NODE_INSTANCE_TYPE" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "ssl_certs=$SSL_CERTS" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -input=false) deploy_main: when: manual @@ -172,21 +190,21 @@ deploy_main: - (echo -n "$V3_PK" > terraform/modules/tor/v3.pk) - (echo -n "$V3_PUBK" > terraform/modules/tor/v3.pubk) - (cd terraform && terraform init -input=false && - terraform workspace select main && - terraform init -input=false && - terraform apply - -var "prometheus_allowed_source_ip=$PROMETHEUS_ALLOWED_SOURCE_IP" - -var "hosts=$HOSTS" - -var "hosts_onion=$HOSTS_ONION" - -var "cluster_size=$NODE_CLUSTER_SIZE" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE" - -var "instance_type=$NODE_INSTANCE_TYPE" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "ssl_certs=$SSL_CERTS" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -input=false -auto-approve) + terraform workspace select main && + terraform init -input=false && + terraform apply + -var "prometheus_allowed_source_ip=$PROMETHEUS_ALLOWED_SOURCE_IP" + -var "hosts=$HOSTS" + -var "hosts_onion=$HOSTS_ONION" + -var "cluster_size=$NODE_CLUSTER_SIZE" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE" + -var "instance_type=$NODE_INSTANCE_TYPE" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "ssl_certs=$SSL_CERTS" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -input=false -auto-approve) plan_bitcoin_mainnet: stage: deploy @@ -194,28 +212,34 @@ plan_bitcoin_mainnet: - /^bitcoin_mainnet.*/ script: - (cd terraform && terraform init -input=false && - terraform workspace select bitcoin-mainnet && - terraform init -input=false && - terraform plan - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_BTCM" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCM" - -var "instance_type=$NODE_INSTANCE_TYPE_BTCM" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCM" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=300" - -var "initial_delay_sec=1200" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/_sync" - -input=false) + terraform workspace select bitcoin-mainnet && + terraform init -input=false && + terraform plan + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_BTCM" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCM" + -var "instance_type=$NODE_INSTANCE_TYPE_BTCM" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCM" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=300" + -var "initial_delay_sec=1200" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/_sync" + -input=false) deploy_bitcoin_mainnet: when: manual stage: deploy tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind only: @@ -225,22 +249,22 @@ deploy_bitcoin_mainnet: - docker tag blockstream/esplora:$CI_COMMIT_SHA blockstream/esplora:builder-bitcoin-mainnet - docker push blockstream/esplora:builder-bitcoin-mainnet - (cd terraform && terraform init -input=false && - terraform workspace select bitcoin-mainnet && - terraform init -input=false && - terraform apply - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_BTCM" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCM" - -var "instance_type=$NODE_INSTANCE_TYPE_BTCM" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCM" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=300" - -var "initial_delay_sec=1200" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/_sync" - -input=false -auto-approve) + terraform workspace select bitcoin-mainnet && + terraform init -input=false && + terraform apply + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_BTCM" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCM" + -var "instance_type=$NODE_INSTANCE_TYPE_BTCM" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCM" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=300" + -var "initial_delay_sec=1200" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/_sync" + -input=false -auto-approve) plan_bitcoin_testnet: stage: deploy @@ -248,28 +272,34 @@ plan_bitcoin_testnet: - /^bitcoin_testnet.*/ script: - (cd terraform && terraform init -input=false && - terraform workspace select bitcoin-testnet && - terraform init -input=false && - terraform plan - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_BTCT" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCT" - -var "instance_type=$NODE_INSTANCE_TYPE_BTCT" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCT" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=60" - -var "initial_delay_sec=600" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/testnet/_sync" - -input=false) + terraform workspace select bitcoin-testnet && + terraform init -input=false && + terraform plan + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_BTCT" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCT" + -var "instance_type=$NODE_INSTANCE_TYPE_BTCT" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCT" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=60" + -var "initial_delay_sec=600" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/testnet/_sync" + -input=false) deploy_bitcoin_testnet: when: manual stage: deploy tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind only: @@ -279,22 +309,22 @@ deploy_bitcoin_testnet: - docker tag blockstream/esplora:$CI_COMMIT_SHA blockstream/esplora:builder-bitcoin-testnet - docker push blockstream/esplora:builder-bitcoin-testnet - (cd terraform && terraform init -input=false && - terraform workspace select bitcoin-testnet && - terraform init -input=false && - terraform apply - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_BTCT" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCT" - -var "instance_type=$NODE_INSTANCE_TYPE_BTCT" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCT" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=60" - -var "initial_delay_sec=600" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/testnet/_sync" - -input=false -auto-approve) + terraform workspace select bitcoin-testnet && + terraform init -input=false && + terraform apply + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_BTCT" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_BTCT" + -var "instance_type=$NODE_INSTANCE_TYPE_BTCT" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_BTCT" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=60" + -var "initial_delay_sec=600" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/testnet/_sync" + -input=false -auto-approve) plan_liquid_mainnet: stage: deploy @@ -302,28 +332,34 @@ plan_liquid_mainnet: - /^liquid_mainnet.*/ script: - (cd terraform && terraform init -input=false && - terraform workspace select liquid-mainnet && - terraform init -input=false && - terraform plan - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_LQM" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQM" - -var "instance_type=$NODE_INSTANCE_TYPE_LQM" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQM" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=60" - -var "initial_delay_sec=900" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/liquid/_sync" - -input=false) + terraform workspace select liquid-mainnet && + terraform init -input=false && + terraform plan + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_LQM" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQM" + -var "instance_type=$NODE_INSTANCE_TYPE_LQM" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQM" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=60" + -var "initial_delay_sec=900" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/liquid/_sync" + -input=false) deploy_liquid_mainnet: when: manual stage: deploy tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind only: @@ -333,22 +369,22 @@ deploy_liquid_mainnet: - docker tag blockstream/esplora:$CI_COMMIT_SHA blockstream/esplora:builder-liquid-mainnet - docker push blockstream/esplora:builder-liquid-mainnet - (cd terraform && terraform init -input=false && - terraform workspace select liquid-mainnet && - terraform init -input=false && - terraform apply - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_LQM" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQM" - -var "instance_type=$NODE_INSTANCE_TYPE_LQM" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQM" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=60" - -var "initial_delay_sec=900" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/liquid/_sync" - -input=false -auto-approve) + terraform workspace select liquid-mainnet && + terraform init -input=false && + terraform apply + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_LQM" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQM" + -var "instance_type=$NODE_INSTANCE_TYPE_LQM" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQM" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=60" + -var "initial_delay_sec=900" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/liquid/_sync" + -input=false -auto-approve) plan_liquid_testnet: stage: deploy @@ -356,28 +392,34 @@ plan_liquid_testnet: - /^liquid_testnet.*/ script: - (cd terraform && terraform init -input=false && - terraform workspace select liquid-testnet && - terraform init -input=false && - terraform plan - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_LQT" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQT" - -var "instance_type=$NODE_INSTANCE_TYPE_LQT" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQT" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=60" - -var "initial_delay_sec=900" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/liquidtestnet/_sync" - -input=false) + terraform workspace select liquid-testnet && + terraform init -input=false && + terraform plan + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_LQT" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQT" + -var "instance_type=$NODE_INSTANCE_TYPE_LQT" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQT" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=60" + -var "initial_delay_sec=900" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/liquidtestnet/_sync" + -input=false) deploy_liquid_testnet: when: manual stage: deploy tags: - - k8s-docker + - cloud + retry: + max: 2 + when: + - runner_system_failure + - unknown_failure + - stuck_or_timeout_failure services: - docker:20.10.12-dind only: @@ -387,22 +429,22 @@ deploy_liquid_testnet: - docker tag blockstream/esplora:$CI_COMMIT_SHA blockstream/esplora:builder-liquid-testnet - docker push blockstream/esplora:builder-liquid-testnet - (cd terraform && terraform init -input=false && - terraform workspace select liquid-testnet && - terraform init -input=false && - terraform apply - -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" - -var "cluster_size=$NODE_CLUSTER_SIZE_LQT" - -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQT" - -var "instance_type=$NODE_INSTANCE_TYPE_LQT" - -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQT" - -var "regions=$REGIONS" - -var "zones=$ZONES" - -var "min_ready_sec=60" - -var "initial_delay_sec=900" - -var "image_source_project=$IMAGE_SOURCE_PROJECT" - -var "mempooldat=$MEMPOOLDAT" - -var "fullurl=https://blockstream.info/liquidtestnet/_sync" - -input=false -auto-approve) + terraform workspace select liquid-testnet && + terraform init -input=false && + terraform apply + -var "docker_tag_explorer=blockstream/esplora:$CI_COMMIT_SHA" + -var "cluster_size=$NODE_CLUSTER_SIZE_LQT" + -var "preemptible_cluster_size=$NODE_PREEMPTIBLE_CLUSTER_SIZE_LQT" + -var "instance_type=$NODE_INSTANCE_TYPE_LQT" + -var "preemptible_instance_type=$NODE_PREEMPTIBLE_INSTANCE_TYPE_LQT" + -var "regions=$REGIONS" + -var "zones=$ZONES" + -var "min_ready_sec=60" + -var "initial_delay_sec=900" + -var "image_source_project=$IMAGE_SOURCE_PROJECT" + -var "mempooldat=$MEMPOOLDAT" + -var "fullurl=https://blockstream.info/liquidtestnet/_sync" + -input=false -auto-approve) deploy_staging_bitcoin_mainnet: when: manual