Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions devops/aws/cloudformation/infrastructure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,23 @@ Resources:
# Install the updates
apt-get upgrade -y

apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

apt-get update -y

apt-get install -y docker-ce docker-ce-cli containerd.io

usermod -aG docker ubuntu

# Update docker-compose to 1.28+
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose

# Get latest cfn scripts and install them;
apt-get install -y python3-setuptools
mkdir -p /opt/aws/bin
Expand Down
38 changes: 38 additions & 0 deletions devops/aws/roles/rpc/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,48 @@
enabled: yes
become: yes

- name: Build required packages
shell: yarn build:packages
args:
chdir: '{{ remote_code_path }}'
# Run in async fashion for max duration of 1 hr
async: 3600
poll: 0
register: build_result

- name: Check on build async task
async_status:
jid: '{{ build_result.ansible_job_id }}'
register: job_result
until: job_result.finished
# Max number of times to check for status
retries: 36
# Check for the status every 100s
delay: 100

- name: Run query node containers
command: yarn workspace query-node-root start:dev
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the .env which is picked up by docker-compose has JOYSTREAM_NODE_WS=ws://joystream-node:9944/ assumes the local joystream-node was run as docker-container.

we need to override this for indexer to work correctly.
So setting it to wss://{{ inventory_hostname }}.nip.io/ws-rpc or simply ws://{{ inventory_hostname }}:9944/

args:
chdir: '{{ remote_code_path }}'
async: 1800
poll: 0
register: compose_result

- name: Check on yarn start task
async_status:
jid: '{{ compose_result.ansible_job_id }}'
register: job_result
until: job_result.finished
# Max number of times to check for status
retries: 18
# Check for the status every 100s
delay: 100

- name: Set websocket and http endpoint variables
set_fact:
ws_rpc: "{{ inventory_hostname }}.nip.io/ws-rpc"
http_rpc: "{{ inventory_hostname }}.nip.io/http-rpc"
nip_domain: "{{ inventory_hostname }}.nip.io"
run_once: yes

- name: Install and configure Caddy
Expand Down
14 changes: 14 additions & 0 deletions devops/aws/roles/rpc/templates/Caddyfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,17 @@
{{ http_rpc }} {
reverse_proxy localhost:9933
}

{{ nip_domain }}/@apollographql/* {
reverse_proxy localhost:8081
}

{{ nip_domain }}/query-node/server* {
uri strip_prefix /query-node/server
reverse_proxy localhost:8081
}

{{ nip_domain }}/query-node/indexer* {
uri strip_prefix /query-node/indexer
reverse_proxy localhost:4000
}