From f2ac24bc8a42bc8ec7f9d56425cf9e6b3b4e0a1f Mon Sep 17 00:00:00 2001 From: Alexander Danilenko Date: Sun, 6 Mar 2022 22:57:37 +0200 Subject: [PATCH 1/2] Do not set container name and image name for being able to use docker-compose `--scale` argument. (#135) --- docker-compose.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index cd19f83..5b4f99b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,6 @@ services: uashield: build: . restart: always - container_name: uashield - image: uashield:latest environment: WORKERS: '256' USEPROXY: 'true' From 4432ecec3bfc824dea7ef11a231b0c90644bb994 Mon Sep 17 00:00:00 2001 From: rdemachkovych Date: Wed, 9 Mar 2022 21:15:34 +0100 Subject: [PATCH 2/2] Added Makefile and docker-compose for uashields deployment (#140) * Added Makefile and docker-compose for uashields deployment * Updated README --- .../github-actions-buildelectronmacos.yml | 2 +- quasar.conf.js | 8 +++- tools/terraform-do-uashield/Makefile | 26 +++++++++++ tools/terraform-do-uashield/README.md | 44 +++++++++++-------- .../terraform-do-uashield/docker-compose.yml | 16 +++++++ .../terraform-do-uashield/scripts/uashield.sh | 3 ++ 6 files changed, 79 insertions(+), 20 deletions(-) create mode 100644 tools/terraform-do-uashield/Makefile create mode 100644 tools/terraform-do-uashield/docker-compose.yml diff --git a/.github/workflows/github-actions-buildelectronmacos.yml b/.github/workflows/github-actions-buildelectronmacos.yml index 8f470c9..9d155b6 100644 --- a/.github/workflows/github-actions-buildelectronmacos.yml +++ b/.github/workflows/github-actions-buildelectronmacos.yml @@ -25,4 +25,4 @@ jobs: rm -rf dist/ npm install -g @quasar/cli yarn --force yarn install - EP_GH_IGNORE_TIME=true quasar build --mode electron --publish always -T darwin \ No newline at end of file + quasar build --mode electron --publish always -T darwin diff --git a/quasar.conf.js b/quasar.conf.js index a0be29f..b5c095f 100644 --- a/quasar.conf.js +++ b/quasar.conf.js @@ -231,7 +231,13 @@ module.exports = configure(function (ctx) { ] }, mac: { - target: 'dmg' + target: [ { + target: 'dmg', + arch: [ + "x64", "arm64" + ] + } + ] }, linux: { target: ['AppImage', 'tar.gz'] diff --git a/tools/terraform-do-uashield/Makefile b/tools/terraform-do-uashield/Makefile new file mode 100644 index 0000000..bc0dcae --- /dev/null +++ b/tools/terraform-do-uashield/Makefile @@ -0,0 +1,26 @@ +.PHONY: tf-deploy +tf-deploy: tf-init tf-apply + +.PHONY: tf-init +tf-init: + docker-compose -f docker-compose.yml run terraform init + +.PHONY: tf-fmt +tf-fmt: + docker-compose -f docker-compose.yml run terraform fmt + +.PHONY: tf-validate +tf-validate: + docker-compose -f docker-compose.yml run terraform validate + +.PHONY: tf-plan +tf-plan: + docker-compose -f docker-compose.yml run terraform plan + +.PHONY: tf-apply +tf-apply: + docker-compose -f docker-compose.yml run terraform apply -auto-approve -auto-approv + +.PHONY: tf-destroy +tf-destroy: + docker-compose -f docker-compose.yml run terraform destroy -auto-approve -auto-approv diff --git a/tools/terraform-do-uashield/README.md b/tools/terraform-do-uashield/README.md index ec1d9ca..0243a1a 100644 --- a/tools/terraform-do-uashield/README.md +++ b/tools/terraform-do-uashield/README.md @@ -4,33 +4,41 @@ ## Requirements -- [Instal terraform](https://www.terraform.io/downloads) -- [Add SSH key](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-account/) to DO with name `ssh` - +- docker +- docker-compose +- [DO PAT](https://docs.digitalocean.com/reference/api/create-personal-access-token/) +- [Add SSH key](https://docs.digitalocean.com/products/droplets/how-to/add-ssh-keys/to-account/) to DO with name `ssh` (TODO: hardcoded) ## Export environment vars -Extra logs ``` -export TF_LOG=INFO +# Create and export DO PAT +# https://docs.digitalocean.com/reference/api/create-personal-access-token/ +export DO_PAT="" + +# Provide and export ssh key +export SSH_KEY_PATH="$HOME/.ssh/id_ed25519" + +# Logs level +export TF_LOG="INFO" ``` -## Create and export DO PAT -- [DO PAT](https://docs.digitalocean.com/reference/api/create-personal-access-token/) +Use DROPLET_INSTANCE_NUMBER and DROPLET_INSTANCE_SIZE environment variables to change droplet number and size. ``` -export DO_PAT="" +export DROPLET_INSTANCE_NUMBER=5 ``` -## Init terraform +### Deploy the uashields infrastructure to DO ``` -terraform init +make tf-deploy ``` - +### Destroy the uashields infrastructure +``` +make tf-destroy ``` -terraform apply \ - -var "do_token=${DO_PAT}" \ - -var "pvt_key=$HOME/.ssh/id_ed25519" +>NOTE: Make do not work for Windows user, please use command below: ``` +# To deploy +> docker-compose -f docker-compose.yml run terraform init +> docker-compose -f docker-compose.yml run terraform apply +# To destroy +> docker-compose -f docker-compose.yml run terraform destroy ``` -terraform destroy \ - -var "do_token=${DO_PAT}" \ - -var "pvt_key=$HOME/.ssh/id_ed25519" -``` \ No newline at end of file diff --git a/tools/terraform-do-uashield/docker-compose.yml b/tools/terraform-do-uashield/docker-compose.yml new file mode 100644 index 0000000..f2b3414 --- /dev/null +++ b/tools/terraform-do-uashield/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.8' + +services: + terraform: + image: hashicorp/terraform:1.1.7 + volumes: + - .:/infra + - ${SSH_KEY_PATH}:/root/.ssh/id_ed25519:ro + + working_dir: /infra + environment: + - TF_VAR_do_token=${DO_PAT} + - TF_VAR_pvt_key=/root/.ssh/id_ed25519 + - TF_LOG=${TF_LOG} + - TF_VAR_droplet_instance_number=$(DROPLET_INSTANCE_NUMBER) + - TF_VAR_droplet_instance_size=$(DROPLET_INSTANCE_SIZE) diff --git a/tools/terraform-do-uashield/scripts/uashield.sh b/tools/terraform-do-uashield/scripts/uashield.sh index cedca7e..ccc9f10 100644 --- a/tools/terraform-do-uashield/scripts/uashield.sh +++ b/tools/terraform-do-uashield/scripts/uashield.sh @@ -25,6 +25,9 @@ services: worker: image: ghcr.io/opengs/uashield:latest restart: always + environment: + WORKERS: '256' + USEPROXY: 'true' command: - \"7500\" - \"true\"" >> /home/docker-compose.yaml