- name: Setup and run laconic console hosts: "{{target_host}}" environment: PATH: "{{ ansible_env.PATH }}:/home/{{ansible_user}}/bin" vars_files: - vars/webapp-vars.yml - vars/dns-vars.yml - vars/k8s-vars.yml - vars/laconicd-vars.yml tasks: - name: Clone the stack repo command: laconic-so fetch-stack git.vdb.to/cerc-io/testnet-laconicd-stack --pull ignore_errors: yes - name: Clone required repositories for laconic-console command: laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console setup-repositories --pull - name: Build container images command: laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console build-containers --force-rebuild - name: Generate spec file for laconic console deployment template: src: "./templates/specs/laconic-console-spec.yml.j2" dest: "laconic-console-spec.yml" - name: Check if the deployment directory exists stat: path: laconic-console-deployment register: deployment_dir - name: Create a deployment from the spec file command: laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-console deploy create --spec-file laconic-console-spec.yml --deployment-dir laconic-console-deployment when: not deployment_dir.stat.exists - name: Place deployment in the same namespace as fixturenet-laconicd copy: src: "fixturenet-laconicd-deployment/deployment.yml" dest: "laconic-console-deployment/deployment.yml" remote_src: yes - name: Fetch user key from laconicd command: laconic-so deployment --dir fixturenet-laconicd-deployment exec laconicd "echo y | laconicd keys export alice --unarmored-hex --unsafe" register: alice_pk - name: Set Private key for console deployment set_fact: ALICE_PK: "{{ alice_pk.stdout }}" - name: Check if DNS resolves for daemon command: getent ahosts {{ org_id }}-daemon.{{ full_domain }} register: dns_check retries: 5 delay: 5 until: dns_check.rc == 0 ignore_errors: yes - name: Fail if DNS does not resolve after retries fail: msg: "DNS resolution failed for example.com after 5 retries" when: dns_check.rc != 0 - name: Start the laconic console deployment command: laconic-so deployment --dir laconic-console-deployment start - name: Create a bond using cli shell: laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry bond create --type alnt --quantity 1000000000000 --user-key {{ALICE_PK}}" | jq -r '.bondId' register: bond_id - name: Set Bond ID for console deployment set_fact: BOND_ID: "{{ bond_id.stdout }}" - name: Stop the console deployment command: laconic-so deployment --dir laconic-console-deployment stop - name: Modify the console config with alice_pk and bond_id template: src: "./templates/configs/console-config.env.j2" dest: "laconic-console-deployment/config.env" - name: Start the laconic console deployment with updated config command: laconic-so deployment --dir laconic-console-deployment start - name: Reserve an authority command: laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry authority reserve {{authority_name}}" - name: Set authority using bond id command: laconic-so deployment --dir laconic-console-deployment exec cli "laconic registry authority bond set {{authority_name}} {{BOND_ID}}"