From a60006945b44f04516c536113d586fa63a0626c2 Mon Sep 17 00:00:00 2001 From: Adw8 Date: Thu, 26 Sep 2024 15:11:06 +0530 Subject: [PATCH] Add rpc and gql endpoints to laconic console config --- service-provider-setup/README.md | 9 +++++--- service-provider-setup/deploy-backend.yml | 3 +++ service-provider-setup/deploy-frontend.yml | 1 + .../run-laconic-console.yml | 2 ++ service-provider-setup/run-laconicd.yml | 4 ++-- .../setup-container-registry.yml | 22 ++++++++++++++----- service-provider-setup/setup-k8s.yml | 2 +- .../templates/configs/console-config.env.j2 | 3 +++ .../templates/configs/webapp-ui-config.env.j2 | 2 +- .../templates/specs/webapp-deployer.spec.j2 | 4 ++-- .../vars/container-vars.example.yml | 2 +- .../vars/k8s-vars.example.yml | 1 + .../vars/webapp-vars.example.yml | 2 ++ 13 files changed, 41 insertions(+), 16 deletions(-) diff --git a/service-provider-setup/README.md b/service-provider-setup/README.md index 5ad4c98..bd6be04 100644 --- a/service-provider-setup/README.md +++ b/service-provider-setup/README.md @@ -4,7 +4,7 @@ To get started, follow the [installation](../README.md#installation) guide to setup ansible on your machine -## Setup User `dev` +## Setup a new User - Create a new `hosts.ini` file: @@ -95,7 +95,7 @@ To get started, follow the [installation](../README.md#installation) guide to se uid [ultimate] user ``` - Note the `0AFB10B643944C22` sequence of characters. This will be required later. + Note the `0AFB10B643944C22` sequence of characters after `sec`. This will be required later. - Copy the vars files: @@ -123,13 +123,16 @@ To get started, follow the [installation](../README.md#installation) guide to se org_id: "" # eg: lcn location_id: "" # eg: cad base_domain: "" # eg: laconic + support_email: "" # eg: support@laconic.com # vars/container-vars.yml container_registry_username: "" # username to login to the container registry container_registry_password: "" # password to login to the container registry # vars/webapp-vars.yml - authority_name: "" # eg: my-org-name + authority_name: "" # eg: my-org-name + cpu_reservation: "" # Minimum number of cpu cores to be used, eg: 2 + memory_reservation: "" # Minimum amount of memory in GB to be used, eg: 4G ``` - Update `ansible_user` in the [`hosts.ini`](./hosts.ini) file to the user on target host diff --git a/service-provider-setup/deploy-backend.yml b/service-provider-setup/deploy-backend.yml index 8fc79f1..679328a 100644 --- a/service-provider-setup/deploy-backend.yml +++ b/service-provider-setup/deploy-backend.yml @@ -99,6 +99,9 @@ src: "./templates/laconic.yml.j2" dest: "webapp-deployer/data/config/laconic.yml" + - name: login to the container registry + command: "docker login container-registry.pwa.{{ full_domain }} --username {{ container_registry_username }} --password {{ container_registry_password}}" + - name: Push images to container registry command: laconic-so deployment --dir webapp-deployer push-images diff --git a/service-provider-setup/deploy-frontend.yml b/service-provider-setup/deploy-frontend.yml index 855d61d..59a8318 100644 --- a/service-provider-setup/deploy-frontend.yml +++ b/service-provider-setup/deploy-frontend.yml @@ -7,6 +7,7 @@ vars_files: - vars/webapp-vars.yml - vars/dns-vars.yml + - vars/k8s-vars.yml tasks: - name: Clone webapp-deployment-status-ui repository diff --git a/service-provider-setup/run-laconic-console.yml b/service-provider-setup/run-laconic-console.yml index ef9d0e7..43655e7 100644 --- a/service-provider-setup/run-laconic-console.yml +++ b/service-provider-setup/run-laconic-console.yml @@ -6,6 +6,8 @@ vars_files: - vars/webapp-vars.yml + - vars/dns-vars.yml + - vars/k8s-vars.yml tasks: - name: Clone the stack repo diff --git a/service-provider-setup/run-laconicd.yml b/service-provider-setup/run-laconicd.yml index 33efa74..a148ca9 100644 --- a/service-provider-setup/run-laconicd.yml +++ b/service-provider-setup/run-laconicd.yml @@ -5,11 +5,11 @@ PATH: "{{ ansible_env.PATH }}:/home/{{ansible_user}}/bin" tasks: - - name: Clone the stack repo + - name: Clone the fixturenet-laconicd-stack repo command: laconic-so fetch-stack git.vdb.to/cerc-io/fixturenet-laconicd-stack --pull ignore_errors: yes - - name: Clone the fixturenet-laconicd repo + - name: Setup repos for fixturenet-laconicd command: laconic-so --stack ~/cerc/fixturenet-laconicd-stack/stack-orchestrator/stacks/fixturenet-laconicd setup-repositories - name: Build container images diff --git a/service-provider-setup/setup-container-registry.yml b/service-provider-setup/setup-container-registry.yml index 2d44e27..7b227e3 100644 --- a/service-provider-setup/setup-container-registry.yml +++ b/service-provider-setup/setup-container-registry.yml @@ -7,9 +7,10 @@ vars_files: - vars/k8s-vars.yml - vars/container-vars.yml + - vars/dns-vars.yml tasks: - - name: Generate the spec file for the container-registry stack + - name: Generate spec file for the container-registry stack template: src: "./templates/specs/container-registry.spec.j2" dest: "{{ansible_env.HOME}}/container-registry.spec" @@ -58,6 +59,11 @@ environment: KUBECONFIG: "{{ ansible_env.HOME }}/.kube/config-default.yaml" + # TODO: Investigate why container registry throws error if started immediately + - name: Wait for 90 seconds + pause: + seconds: 90 + - name: Deploy the container registry command: > laconic-so deployment --dir container-registry start @@ -69,26 +75,30 @@ - name: Decode and extract cluster-id set_fact: - cluster_id: "{{ deployment_file.content | b64decode | regex_search('cluster-id: (.+)', '\\1') }}" + extracted_cluster_id: "{{ deployment_file.content | b64decode | regex_search('cluster-id: (.+)', '\\1') }}" + + - name: Set modified cluster-id + set_fact: + formatted_cluster_id: "{{ extracted_cluster_id | replace('[', '') | replace(']', '') | replace(\"'\", '') }}" - name: Display the cluster ID debug: - msg: "The cluster ID is: {{ cluster_id }}" + msg: "The cluster ID is: {{ formatted_cluster_id }}" - name: Annotate ingress for proxy body size command: > - kubectl annotate ingress {{ cluster_id }}-ingress nginx.ingress.kubernetes.io/proxy-body-size=0 + kubectl annotate ingress {{ formatted_cluster_id }}-ingress nginx.ingress.kubernetes.io/proxy-body-size=0 environment: KUBECONFIG: "{{ ansible_env.HOME }}/.kube/config-default.yaml" - name: Annotate ingress for proxy read timeout command: > - kubectl annotate ingress {{ cluster_id }}-ingress nginx.ingress.kubernetes.io/proxy-read-timeout=600 + kubectl annotate ingress {{ formatted_cluster_id }}-ingress nginx.ingress.kubernetes.io/proxy-read-timeout=600 environment: KUBECONFIG: "{{ ansible_env.HOME }}/.kube/config-default.yaml" - name: Annotate ingress for proxy send timeout command: > - kubectl annotate ingress {{ cluster_id }}-ingress nginx.ingress.kubernetes.io/proxy-send-timeout=600 + kubectl annotate ingress {{ formatted_cluster_id }}-ingress nginx.ingress.kubernetes.io/proxy-send-timeout=600 environment: KUBECONFIG: "{{ ansible_env.HOME }}/.kube/config-default.yaml" diff --git a/service-provider-setup/setup-k8s.yml b/service-provider-setup/setup-k8s.yml index 37cc574..ba15ed6 100644 --- a/service-provider-setup/setup-k8s.yml +++ b/service-provider-setup/setup-k8s.yml @@ -116,7 +116,7 @@ src: ./templates/k8s.yml.j2 dest: "{{ ansible_env.HOME }}/service-provider-template/group_vars/{{ org_id }}_{{ location_id }}/k8s.yml" - - name: Copy wildcard-pwa-example.yml to the remote VM + - name: Copy wildcard-pwa-{{ base_domain }}.yaml to the remote VM template: src: ./templates/wildcard-pwa-example.yml.j2 dest: "{{ ansible_env.HOME }}/service-provider-template/files/manifests/wildcard-pwa-{{ base_domain }}.yaml" diff --git a/service-provider-setup/templates/configs/console-config.env.j2 b/service-provider-setup/templates/configs/console-config.env.j2 index 7ecc724..6c0e8a9 100644 --- a/service-provider-setup/templates/configs/console-config.env.j2 +++ b/service-provider-setup/templates/configs/console-config.env.j2 @@ -1,2 +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 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 c1fa0c7..c31574e 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=https://laconicd.laconic.com/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 }}-{{ 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 diff --git a/service-provider-setup/templates/specs/webapp-deployer.spec.j2 b/service-provider-setup/templates/specs/webapp-deployer.spec.j2 index d0191c7..b1a037b 100644 --- a/service-provider-setup/templates/specs/webapp-deployer.spec.j2 +++ b/service-provider-setup/templates/specs/webapp-deployer.spec.j2 @@ -25,8 +25,8 @@ security: resources: containers: reservations: - cpus: 4 - memory: 8G + cpus: "{{ cpu_reservation }}" + memory: "{{ memory_reservation }}" limits: cpus: 6 memory: 16G diff --git a/service-provider-setup/vars/container-vars.example.yml b/service-provider-setup/vars/container-vars.example.yml index 3b34f94..a3a3a04 100644 --- a/service-provider-setup/vars/container-vars.example.yml +++ b/service-provider-setup/vars/container-vars.example.yml @@ -1,3 +1,3 @@ container_registry_username: "" container_registry_password: "" -container_registry_domain: "container-registry.pwa.{{ dns_domain }}.com" +container_registry_domain: "container-registry.pwa.{{ full_domain }}" diff --git a/service-provider-setup/vars/k8s-vars.example.yml b/service-provider-setup/vars/k8s-vars.example.yml index 87e5a48..cceaeae 100644 --- a/service-provider-setup/vars/k8s-vars.example.yml +++ b/service-provider-setup/vars/k8s-vars.example.yml @@ -4,4 +4,5 @@ vault_passphrase: "" org_id: "" location_id: "" base_domain: "" +support_email: "" ansible_ssh_extra_args: '-o StrictHostKeyChecking=no' diff --git a/service-provider-setup/vars/webapp-vars.example.yml b/service-provider-setup/vars/webapp-vars.example.yml index 5c632f1..1a2d46c 100644 --- a/service-provider-setup/vars/webapp-vars.example.yml +++ b/service-provider-setup/vars/webapp-vars.example.yml @@ -1,3 +1,5 @@ authority_name: "" ALICE_PK: "{{ ALICE_PK }}" BOND_ID: "{{ BOND_ID }}" +cpu_reservation: "" +memory_reservation: ""