diff --git a/service-provider-setup/README.md b/service-provider-setup/README.md index 1ce8bfa..0d52e07 100644 --- a/service-provider-setup/README.md +++ b/service-provider-setup/README.md @@ -62,7 +62,7 @@ To get started, follow the [installation](../README.md#installation) guide to se # password of the user you want to setup on the target host password: "" - # path to the ssh key on your machine, eg: "/home/dev/.ssh/id_rsa.pub" + # path to the ssh key on your machine, eg: "/home/user/.ssh/id_rsa.pub" path_to_ssh_key: "" ``` @@ -166,8 +166,8 @@ To get started, follow the [installation](../README.md#installation) guide to se After the playbook finishes executing, the following services will be deployed (your setup should look similar to the example below): -- laconicd chain RPC endpoint: http://lcn-cad-cluster-control.laconic.com:26657 -- laconic console: http://lcn-cad-cluster-control.laconic.com:8080/registry -- laconicd GQL endpoint: http://lcn-cad-cluster-control.laconic.com:9473/api +- laconicd chain RPC endpoint: http://lcn-daemon.laconic.com:26657 +- laconic console: http://lcn-daemon.laconic.com:8080/registry +- laconicd GQL endpoint: http://lcn-daemon.laconic.com:9473/api - webapp deployer API: https://webapp-deployer-api.pwa.laconic.com - webapp deployer UI: https://webapp-deployer-ui.pwa.laconic.com diff --git a/service-provider-setup/run-laconic-console.yml b/service-provider-setup/run-laconic-console.yml index 1374ca5..d47e3dd 100644 --- a/service-provider-setup/run-laconic-console.yml +++ b/service-provider-setup/run-laconic-console.yml @@ -53,7 +53,7 @@ register: dns_check retries: 5 delay: 5 - until: dns_check.rc == 0 + until: dns_check.rc == 0 ignore_errors: yes - name: Fail if DNS does not resolve after retries diff --git a/service-provider-setup/setup-dns.yml b/service-provider-setup/setup-dns.yml index 18d6c18..1e7d424 100644 --- a/service-provider-setup/setup-dns.yml +++ b/service-provider-setup/setup-dns.yml @@ -3,6 +3,7 @@ vars_files: - vars/dns-vars.yml + - vars/k8s-vars.yml tasks: - name: Create a domain @@ -21,6 +22,15 @@ name: "{{ subdomain_prefix }}-cluster-control" data: "{{ service_provider_ip }}" + - name: Create record for daemon machine + community.digitalocean.digital_ocean_domain_record: + state: present + oauth_token: "{{ do_api_token }}" + domain: "{{ full_domain }}" + type: A + name: "{{ org_id }}-daemon" + data: "{{ service_provider_ip }}" + - name: Create CNAME record for www community.digitalocean.digital_ocean_domain_record: state: present @@ -38,16 +48,57 @@ data: "{{ subdomain_cluster_control }}.{{ full_domain }}" domain: "{{ full_domain }}" type: CNAME - name: "{{ subdomain_prefix }}" + name: "{{ subdomain_prefix }}.{{ full_domain }}" ttl: 43200 - - name: Create wildcard CNAME record for subdomain + - name: Create CNAME record for laconicd endpoint community.digitalocean.digital_ocean_domain_record: state: present oauth_token: "{{ do_api_token }}" - data: "{{ subdomain_cluster_control }}.{{ full_domain }}" + data: "{{ org_id }}-daemon.{{ full_domain }}" domain: "{{ full_domain }}" type: CNAME + name: "laconicd.{{ full_domain }}" + ttl: 43200 + + - name: Create CNAME record for backend + community.digitalocean.digital_ocean_domain_record: + state: present + oauth_token: "{{ do_api_token }}" + data: "{{ org_id }}-daemon.{{ full_domain }}" + domain: "{{ full_domain }}" + type: CNAME + name: "{{ org_id }}-backend.{{ full_domain }}" + ttl: 43200 + + - name: Create CNAME record for console + community.digitalocean.digital_ocean_domain_record: + state: present + oauth_token: "{{ do_api_token }}" + data: "{{ org_id }}-daemon.{{ full_domain }}" + domain: "{{ full_domain }}" + type: CNAME + name: "{{ org_id }}-console.{{ full_domain }}" + ttl: 43200 + + - name: Create CNAME record for org and location + community.digitalocean.digital_ocean_domain_record: + state: present + oauth_token: "{{ do_api_token }}" + data: "{{ org_id }}-daemon.{{ full_domain }}" + domain: "{{ full_domain }}" + type: CNAME + name: "{{ subdomain_prefix }}" + ttl: 43200 + + - name: Create wildcard A record for subdomain + community.digitalocean.digital_ocean_domain_record: + state: present + oauth_token: "{{ do_api_token }}" + name: "{{ subdomain_cluster_control }}.{{ full_domain }}" + data: "{{ service_provider_ip }}" + domain: "{{ full_domain }}" + type: A name: "*.{{ subdomain_prefix }}" ttl: 43200 @@ -61,12 +112,13 @@ name: "pwa" ttl: 43200 - - name: Create wildcard CNAME record for pwa + - name: Create wildcard A record for pwa community.digitalocean.digital_ocean_domain_record: state: present oauth_token: "{{ do_api_token }}" - data: "{{ subdomain_cluster_control }}.{{ full_domain }}" + name: "{{ subdomain_cluster_control }}.{{ full_domain }}" + data: "{{ service_provider_ip }}" domain: "{{ full_domain }}" - type: CNAME + type: A name: "*.pwa" ttl: 43200 diff --git a/service-provider-setup/setup-k8s.yml b/service-provider-setup/setup-k8s.yml index e28e8c6..bb46a95 100644 --- a/service-provider-setup/setup-k8s.yml +++ b/service-provider-setup/setup-k8s.yml @@ -28,6 +28,7 @@ name: "{{ ansible_user }}" groups: docker append: true + become: yes - name: Install Ansible on remote host pip: diff --git a/service-provider-setup/setup-system.yml b/service-provider-setup/setup-system.yml index b729e45..9c71616 100644 --- a/service-provider-setup/setup-system.yml +++ b/service-provider-setup/setup-system.yml @@ -48,6 +48,7 @@ hostname: name: "{{ inventory_hostname }}" when: ansible_hostname != inventory_hostname + become: yes - name: Verify status of firewalld and enable sshguard systemd: @@ -72,11 +73,13 @@ - snapd.seeded - snapd.snap-repair.timer ignore_errors: yes + become: yes - name: Purge snapd apt: name: snapd state: absent + become: yes - name: Remove snap directories file: diff --git a/service-provider-setup/templates/configs/console-config.env.j2 b/service-provider-setup/templates/configs/console-config.env.j2 index 6c0e8a9..c9e72b3 100644 --- a/service-provider-setup/templates/configs/console-config.env.j2 +++ b/service-provider-setup/templates/configs/console-config.env.j2 @@ -1,5 +1,5 @@ CERC_LACONICD_USER_KEY={{ALICE_PK}} CERC_LACONICD_BOND_ID={{BOND_ID}} -CERC_LACONICD_RPC_ENDPOINT=http://{{ org_id }}-{{ location_id }}-cluster-control.{{ full_domain }}:26657 -CERC_LACONICD_GQL_ENDPOINT=http://{{ org_id }}-{{ location_id }}-cluster-control.{{ full_domain }}:9473/api -LACONIC_HOSTED_ENDPOINT=http://{{ org_id }}-{{ location_id }}-cluster-control.{{ full_domain }}:9473 +CERC_LACONICD_RPC_ENDPOINT=http://{{ org_id }}-daemon.{{ full_domain }}:26657 +CERC_LACONICD_GQL_ENDPOINT=http://{{ org_id }}-daemon.{{ full_domain }}:9473/api +LACONIC_HOSTED_ENDPOINT=http://{{ org_id }}-daemon.{{ full_domain }}:9473 diff --git a/service-provider-setup/templates/configs/webapp-ui-config.env.j2 b/service-provider-setup/templates/configs/webapp-ui-config.env.j2 index c31574e..2836229 100644 --- a/service-provider-setup/templates/configs/webapp-ui-config.env.j2 +++ b/service-provider-setup/templates/configs/webapp-ui-config.env.j2 @@ -1,3 +1,3 @@ CERC_WEBAPP_DEBUG=0.1.0 LACONIC_HOSTED_CONFIG_app_api_url=https://webapp-deployer-api.pwa.{{ full_domain }} -LACONIC_HOSTED_CONFIG_app_console_link=http://{{ org_id }}-{{ location_id }}-cluster-control.{{ full_domain }}:9473/console?query=%0A%20%20fragment%20ValueParts%20on%20Value%20%7B%0A%20%20%20%20...%20on%20BooleanValue%20%7B%0A%20%20%20%20%20%20bool%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20IntValue%20%7B%0A%20%20%20%20%20%20int%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20FloatValue%20%7B%0A%20%20%20%20%20%20float%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20StringValue%20%7B%0A%20%20%20%20%20%20string%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20BytesValue%20%7B%0A%20%20%20%20%20%20bytes%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20LinkValue%20%7B%0A%20%20%20%20%20%20link%3A%20value%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20fragment%20AttrParts%20on%20Attribute%20%7B%0A%20%20%20%20key%0A%20%20%20%20value%20%7B%0A%20%20%20%20%20%20...ValueParts%0A%20%20%20%20%20%20...%20on%20ArrayValue%20%7B%0A%20%20%20%20%20%20%20%20value%20%7B%0A%20%20%20%20%20%20%20%20%20%20...ValueParts%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%7B%0A%20%20%20%20getRecordsByIds(ids%3A%20%5B%22#RQID#%22%5D)%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20names%0A%20%20%20%20%20%20bondId%0A%20%20%20%20%20%20createTime%0A%20%20%20%20%20%20expiryTime%0A%20%20%20%20%20%20owners%0A%20%20%20%20%20%20attributes%20%7B%0A%20%20%20%20%20%20%20%20...AttrParts%0A%20%20%20%20%20%20%20%20value%20%7B%0A%20%20%20%20%20%20%20%20%20%20...%20on%20MapValue%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20map%3A%20value%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20...AttrParts%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A +LACONIC_HOSTED_CONFIG_app_console_link=http://{{ org_id }}-daemon.{{ full_domain }}:9473/console?query=%0A%20%20fragment%20ValueParts%20on%20Value%20%7B%0A%20%20%20%20...%20on%20BooleanValue%20%7B%0A%20%20%20%20%20%20bool%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20IntValue%20%7B%0A%20%20%20%20%20%20int%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20FloatValue%20%7B%0A%20%20%20%20%20%20float%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20StringValue%20%7B%0A%20%20%20%20%20%20string%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20BytesValue%20%7B%0A%20%20%20%20%20%20bytes%3A%20value%0A%20%20%20%20%7D%0A%20%20%20%20...%20on%20LinkValue%20%7B%0A%20%20%20%20%20%20link%3A%20value%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20fragment%20AttrParts%20on%20Attribute%20%7B%0A%20%20%20%20key%0A%20%20%20%20value%20%7B%0A%20%20%20%20%20%20...ValueParts%0A%20%20%20%20%20%20...%20on%20ArrayValue%20%7B%0A%20%20%20%20%20%20%20%20value%20%7B%0A%20%20%20%20%20%20%20%20%20%20...ValueParts%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%7B%0A%20%20%20%20getRecordsByIds(ids%3A%20%5B%22#RQID#%22%5D)%20%7B%0A%20%20%20%20%20%20id%0A%20%20%20%20%20%20names%0A%20%20%20%20%20%20bondId%0A%20%20%20%20%20%20createTime%0A%20%20%20%20%20%20expiryTime%0A%20%20%20%20%20%20owners%0A%20%20%20%20%20%20attributes%20%7B%0A%20%20%20%20%20%20%20%20...AttrParts%0A%20%20%20%20%20%20%20%20value%20%7B%0A%20%20%20%20%20%20%20%20%20%20...%20on%20MapValue%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20map%3A%20value%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20...AttrParts%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A diff --git a/service-provider-setup/templates/laconic.yml.j2 b/service-provider-setup/templates/laconic.yml.j2 index dd09501..c9e625a 100644 --- a/service-provider-setup/templates/laconic.yml.j2 +++ b/service-provider-setup/templates/laconic.yml.j2 @@ -1,7 +1,7 @@ services: registry: - rpcEndpoint: 'http://{{ subdomain_cluster_control }}.{{ full_domain }}:26657' - gqlEndpoint: 'http://{{ subdomain_cluster_control}}.{{ full_domain }}:9473/api' + rpcEndpoint: 'http://{{ org_id }}-daemon.{{ full_domain }}:26657' + gqlEndpoint: 'http://{{ org_id }}-daemon.{{ full_domain }}:9473/api' userKey: "{{ ALICE_PK }}" bondId: "{{ BOND_ID }}" chainId: lorotestnet-1