(MODE-11365) Testing artifact creation and upload to dev.

This commit is contained in:
Sokratis Siozos-Drosos 2019-04-24 13:04:30 +02:00
parent ab90f181d6
commit 2f12a0e362
1297 changed files with 22834 additions and 5 deletions

View file

@ -1,11 +1,56 @@
version: 2 version: 2
jobs: jobs:
build-package:
working_directory: /tmp/repo
docker:
- image: monosolutions/iitesting
steps:
- checkout
- run: npm install
- run:
name: Build Artifact
command: |
mkdir ./artifact
DEPLOYABLE="${CIRCLE_PROJECT_REPONAME}-${CIRCLE_SHA1}.tar.gz"
cp -rf * ./artifact/
pushd ./artifact
echo "Taring ${DEPLOYABLE}"
tar -zcvf $DEPLOYABLE *
popd
- persist_to_workspace:
root: /tmp/repo
paths:
- artifact
upload-package:
environment:
ENVIRONMENT: "dev"
REGION: "eu-central-1"
working_directory: /tmp/repo
docker:
- image: monosolutions/awscli:latest
steps:
- attach_workspace:
at: /tmp/repo
- run:
name: Upload Artifact Dev
command: |
aws configure set aws_access_key_id "${AWS_DEV_ACCESS_KEY}"
aws configure set aws_secret_access_key "${AWS_DEV_SECRET_KEY}"
BUCKET="mono-deployment-${ENVIRONMENT}"
DEPLOYABLE="${CIRCLE_PROJECT_REPONAME}-${CIRCLE_SHA1}.tar.gz"
{
aws s3api create-bucket --bucket "${BUCKET}"
} || {
echo "Bucket is here"
}
aws s3 cp "/tmp/repo/artifact/${DEPLOYABLE}" "s3://${BUCKET}/tileserver-gl/${DEPLOYABLE}"
deploy-to-dev: deploy-to-dev:
docker: docker:
- image: monosolutions/terraform:1.0.4 - image: monosolutions/terraform:1.0.4
working_directory: /tmp/repo working_directory: /tmp/repo
environment: environment:
REGION: "eu-central-1" REGION: "eu-central-1"
ENVIRONMENT: "dev"
steps: steps:
- checkout - checkout
- run: - run:
@ -17,6 +62,8 @@ jobs:
wget https://github.com/gruntwork-io/terragrunt/releases/download/v0.14.10/terragrunt_linux_amd64 -O terragrunt wget https://github.com/gruntwork-io/terragrunt/releases/download/v0.14.10/terragrunt_linux_amd64 -O terragrunt
chmod a+x terragrunt chmod a+x terragrunt
mv terragrunt /bin/ mv terragrunt /bin/
sed -i -e "s/repo_version =/repo_version = \"${CIRCLE_SHA1}\"/g" \
"${REGION}/${ENVIRONMENT}/tileserver/terraform.tfvars"
- run: - run:
name: Deploy tileserver to fra dev name: Deploy tileserver to fra dev
command: | command: |
@ -25,4 +72,15 @@ workflows:
version: 2 version: 2
deploy: deploy:
jobs: jobs:
- deploy-to-dev - build-package:
filters:
branches:
only:
- master
- MODE-11365
- upload-package:
requires:
- build-package
- deploy-to-dev:
requires:
- upload-package

50
configuration/nginx.conf Normal file
View file

@ -0,0 +1,50 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=STATIC:100m inactive=24h max_size=30g;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto 'https';
proxy_pass http://localhost:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache STATIC;
proxy_cache_valid 200 1d;
proxy_cache_key "$scheme$host$request_uri$cookie_user";
if ($request_uri ~ ^(.*)[_](.*)$) {
add_header 'Access-Control-Allow-Origin' '*';
return 301 https://$host$1-$2;
}
if ($request_uri ~ ^(.*)mono-blw(.*)$) {
add_header 'Access-Control-Allow-Origin' '*';
return 301 https://$host$1mono-blue-water$2;
}
}
}
server {
listen 81;
location / { return 400; }
location = /__isAlive.html {
return 209;
}
}
}

View file

@ -16,3 +16,4 @@ mono_efs_remote_state = "dev/mono-efs/terraform.tfstate"
mono_region = "fra" mono_region = "fra"
version = "2.1" version = "2.1"
state_bucket = "tg-state-eu-central-1" state_bucket = "tg-state-eu-central-1"
repo_version =

View file

@ -16,3 +16,4 @@ mono_efs_remote_state = "prod/mono-efs/terraform.tfstate"
mono_region = "fra" mono_region = "fra"
version = "2.0" version = "2.0"
state_bucket = "tg-state-eu-central-1" state_bucket = "tg-state-eu-central-1"
repo_version =

View file

@ -8,10 +8,15 @@ data "aws_ami" "amazon_linux" {
filter { filter {
name = "name" name = "name"
values = ["mono-tileserver-ami *"] values = ["ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server-*"]
} }
owners = ["self"] filter {
name = "virtualization-type"
values = ["hvm"]
}
owners = ["099720109477"] # Canonical
} }
data "terraform_remote_state" "mono_vpc" { data "terraform_remote_state" "mono_vpc" {
@ -31,6 +36,9 @@ data "template_file" "shell-script" {
template = "${file("files/user-data.sh")}" template = "${file("files/user-data.sh")}"
vars { vars {
efs_dns_name = "${data.terraform_remote_state.mono_efs.efs_dns_name}" efs_dns_name = "${data.terraform_remote_state.mono_efs.efs_dns_name}"
region = "${var.region}"
mono_region = "${var.mono_region}"
repo_version = "${var.repo_version}"
} }
} }

View file

@ -1,6 +1,61 @@
#!/bin/bash #!/bin/bash
set -x set -x
#shellcheck disable=SC2154,SC2086,SC2035 #shellcheck disable=SC2154,SC2086,SC2035
REGION=${region}
ENVIRONMENT=${evironment}
MONO_REGION=${mono_region}
REPO_VERSION=${repo_version}
DEPLOYABLE="tileserver-gl-$REPO_VERSION.tar.gz"
FULL_BUCKET_URI="s3://$BUCKET/tileserver-gl/$DEPLOYABLE"
# Setup dependencies
sudo rm /var/lib/dpkg/lock
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y apt-transport-https \
curl unzip build-essential python libcairo2-dev \
libgles2-mesa-dev libgbm-dev libllvm3.9 libprotobuf-dev \
libxxf86vm-dev libjpeg-dev xvfb nginx git nodejs nfs-common \
heat-cfntools software-properties-common cloud-init
# Setup environment
sudo tee -a /etc/environment << EOL
REGION=$REGION
ENVIRONMENT=$ENVIRONMENT
MONO_REGION=$MONO_REGION
EOL
sudo rm /etc/apt/sources.list.d/microsoft.list
sudo groupadd nginx
sudo useradd nginx -g nginx
sudo mkdir -p /usr/src/app/. \
/data/mbtiles/. \
/tmp/uncompressed/.
sudo chown -R ubuntu:ubuntu /usr/src/app/.
# Setup project
{
aws s3 cp "FULL_BUCKET_URI" /tmp/tileserver-gl.tar.gz
tar xzf /tmp/tileserver-gl.tar.gz -C /tmp/uncompressed/
# Setup map files
sudo mv /tmp/uncompressed/map_files/* /data/.
sudo chown -R ubuntu:ubuntu /data/.
# Setup app
mv /tmp/uncompressed/* /usr/src/app/.
# Setup nginx
sudo mv /tmp/uncompressed/configuration/nginx.conf /etc/nginx/.
# cd /usr/src/app/. && npm install
} || {
echo ""
echo "Failed to setup project!"
echo "Tried fetching FULL_BUCKET_URI: $FULL_BUCKET_URI"
echo ""
echo "Tried modifying the following directories:"
echo "/data/."
echo "/usr/src/app/."
echo "/etc/nginx"
echo ""
}
# git clone https://github.com/klokantech/tileserver-gl.git /home/ubuntu/tileserver-gl
# Configure service
sudo sed -i -e 's/node \/usr\/src\/app\/ -p 80 "$@" \&/node \/usr\/src\/app\/ -p 8080 "$@" -c config.json \&/g' /usr/src/app/run.sh sudo sed -i -e 's/node \/usr\/src\/app\/ -p 80 "$@" \&/node \/usr\/src\/app\/ -p 8080 "$@" -c config.json \&/g' /usr/src/app/run.sh
{ {
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport "${efs_dns_name}:/mbtiles/" /data/mbtiles sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport "${efs_dns_name}:/mbtiles/" /data/mbtiles

View file

@ -40,6 +40,18 @@
"Effect": "Allow", "Effect": "Allow",
"Action": "logs:*", "Action": "logs:*",
"Resource": "*" "Resource": "*"
},
{
"Sid": "",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::mono-deployment-dev",
"arn:aws:s3:::mono-deployment-dev/tileserver-gl/*"
]
} }
] ]
} }

View file

@ -22,7 +22,7 @@ variable "version" {
variable "mono_region" { variable "mono_region" {
type = "string" type = "string"
description = "Dns zone id" description = "fra/yyz"
} }
variable "mono_vpc_remote_state" { variable "mono_vpc_remote_state" {
@ -49,3 +49,8 @@ variable "mono_alb_remote_state" {
type = "string" type = "string"
description = "Remote state for mono_alb" description = "Remote state for mono_alb"
} }
variable "repo_version" {
type = "string"
description = "Version of repo to fetch and setup from S3"
}

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,3 @@

Open Sans Bold 10240-10495

View file

@ -0,0 +1,3 @@

Open Sans Bold 10496-10751

View file

@ -0,0 +1,3 @@

Open Sans Bold 10752-11007

View file

@ -0,0 +1,3 @@

Open Sans Bold 11008-11263

View file

@ -0,0 +1,3 @@

Open Sans Bold 11264-11519

View file

@ -0,0 +1,3 @@

Open Sans Bold 11520-11775

View file

@ -0,0 +1,3 @@

Open Sans Bold 11776-12031

View file

@ -0,0 +1,3 @@

Open Sans Bold 12032-12287

View file

@ -0,0 +1,3 @@

Open Sans Bold 12288-12543

View file

@ -0,0 +1,3 @@

Open Sans Bold 12544-12799

Binary file not shown.

View file

@ -0,0 +1,3 @@

Open Sans Bold 12800-13055

View file

@ -0,0 +1,3 @@

Open Sans Bold 13056-13311

View file

@ -0,0 +1,3 @@

Open Sans Bold 13312-13567

View file

@ -0,0 +1,3 @@

Open Sans Bold 13568-13823

View file

@ -0,0 +1,3 @@

Open Sans Bold 13824-14079

View file

@ -0,0 +1,3 @@

Open Sans Bold 14080-14335

View file

@ -0,0 +1,3 @@

Open Sans Bold 14336-14591

View file

@ -0,0 +1,3 @@

Open Sans Bold 14592-14847

View file

@ -0,0 +1,3 @@

Open Sans Bold 14848-15103

View file

@ -0,0 +1,3 @@

Open Sans Bold 15104-15359

View file

@ -0,0 +1,3 @@

Open Sans Bold 1536-1791

View file

@ -0,0 +1,3 @@

Open Sans Bold 15360-15615

View file

@ -0,0 +1,3 @@

Open Sans Bold 15616-15871

View file

@ -0,0 +1,3 @@

Open Sans Bold 15872-16127

View file

@ -0,0 +1,3 @@

Open Sans Bold 16128-16383

View file

@ -0,0 +1,3 @@

Open Sans Bold 16384-16639

View file

@ -0,0 +1,3 @@

Open Sans Bold 16640-16895

View file

@ -0,0 +1,3 @@

Open Sans Bold 16896-17151

View file

@ -0,0 +1,3 @@

Open Sans Bold 17152-17407

View file

@ -0,0 +1,3 @@

Open Sans Bold 17408-17663

View file

@ -0,0 +1,3 @@

Open Sans Bold 17664-17919

View file

@ -0,0 +1,3 @@

Open Sans Bold 1792-2047

View file

@ -0,0 +1,3 @@

Open Sans Bold 17920-18175

View file

@ -0,0 +1,3 @@

Open Sans Bold 18176-18431

View file

@ -0,0 +1,3 @@

Open Sans Bold 18432-18687

View file

@ -0,0 +1,3 @@

Open Sans Bold 18688-18943

View file

@ -0,0 +1,3 @@

Open Sans Bold 18944-19199

View file

@ -0,0 +1,3 @@

Open Sans Bold 19200-19455

View file

@ -0,0 +1,3 @@

Open Sans Bold 19456-19711

View file

@ -0,0 +1,3 @@

Open Sans Bold 19712-19967

View file

@ -0,0 +1,3 @@

Open Sans Bold 19968-20223

View file

@ -0,0 +1,3 @@

Open Sans Bold 20224-20479

View file

@ -0,0 +1,3 @@

Open Sans Bold 2048-2303

View file

@ -0,0 +1,3 @@

Open Sans Bold 20480-20735

View file

@ -0,0 +1,3 @@

Open Sans Bold 20736-20991

View file

@ -0,0 +1,3 @@

Open Sans Bold 20992-21247

View file

@ -0,0 +1,3 @@

Open Sans Bold 21248-21503

View file

@ -0,0 +1,3 @@

Open Sans Bold 21504-21759

View file

@ -0,0 +1,3 @@

Open Sans Bold 21760-22015

View file

@ -0,0 +1,3 @@

Open Sans Bold 22016-22271

View file

@ -0,0 +1,3 @@

Open Sans Bold 22272-22527

View file

@ -0,0 +1,3 @@

Open Sans Bold 22528-22783

View file

@ -0,0 +1,3 @@

Open Sans Bold 22784-23039

View file

@ -0,0 +1,3 @@

Open Sans Bold 2304-2559

View file

@ -0,0 +1,3 @@

Open Sans Bold 23040-23295

View file

@ -0,0 +1,3 @@

Open Sans Bold 23296-23551

View file

@ -0,0 +1,3 @@

Open Sans Bold 23552-23807

View file

@ -0,0 +1,3 @@

Open Sans Bold 23808-24063

View file

@ -0,0 +1,3 @@

Open Sans Bold 24064-24319

View file

@ -0,0 +1,3 @@

Open Sans Bold 24320-24575

View file

@ -0,0 +1,3 @@

Open Sans Bold 24576-24831

View file

@ -0,0 +1,3 @@

Open Sans Bold 24832-25087

View file

@ -0,0 +1,3 @@

Open Sans Bold 25088-25343

View file

@ -0,0 +1,3 @@

Open Sans Bold 25344-25599

Binary file not shown.

View file

@ -0,0 +1,3 @@

Open Sans Bold 2560-2815

View file

@ -0,0 +1,3 @@

Open Sans Bold 25600-25855

View file

@ -0,0 +1,3 @@

Open Sans Bold 25856-26111

View file

@ -0,0 +1,3 @@

Open Sans Bold 26112-26367

View file

@ -0,0 +1,3 @@

Open Sans Bold 26368-26623

View file

@ -0,0 +1,3 @@

Open Sans Bold 26624-26879

View file

@ -0,0 +1,3 @@

Open Sans Bold 26880-27135

View file

@ -0,0 +1,3 @@

Open Sans Bold 27136-27391

View file

@ -0,0 +1,3 @@

Open Sans Bold 27392-27647

View file

@ -0,0 +1,3 @@

Open Sans Bold 27648-27903

View file

@ -0,0 +1,3 @@

Open Sans Bold 27904-28159

View file

@ -0,0 +1,3 @@

Open Sans Bold 2816-3071

View file

@ -0,0 +1,3 @@

Open Sans Bold 28160-28415

View file

@ -0,0 +1,3 @@

Open Sans Bold 28416-28671

View file

@ -0,0 +1,3 @@

Open Sans Bold 28672-28927

View file

@ -0,0 +1,3 @@

Open Sans Bold 28928-29183

View file

@ -0,0 +1,3 @@

Open Sans Bold 29184-29439

View file

@ -0,0 +1,3 @@

Open Sans Bold 29440-29695

View file

@ -0,0 +1,3 @@

Open Sans Bold 29696-29951

View file

@ -0,0 +1,3 @@

Open Sans Bold 29952-30207

View file

@ -0,0 +1,3 @@

Open Sans Bold 30208-30463

View file

@ -0,0 +1,3 @@

Open Sans Bold 30464-30719

View file

@ -0,0 +1,3 @@

Open Sans Bold 3072-3327

View file

@ -0,0 +1,3 @@

Open Sans Bold 30720-30975

Some files were not shown because too many files have changed in this diff Show more