diff --git a/.env.telos b/.env.telos index dd5a455c..cdf1fc94 100644 --- a/.env.telos +++ b/.env.telos @@ -59,11 +59,16 @@ HAPI_CREATE_ACCOUNT_ACTION_NAME= # hapi-evm HAPI_EVM_SERVER_PORT=9090 HAPI_EVM_SERVER_ADDRESS=hapi-evm +HAPI_EVM_HASURA_URL=http://hasura:8080/v1/graphql +HAPI_EVM_HASURA_ADMIN_SECRET=myadminsecretkey +HAPI_EVM_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb HAPI_EVM_ENDPOINT=https://testnet.telos.net/evm HAPI_EVM_API_ENDPOINTS=["https://telos.greymass.com","https://telos.eosphere.io","telos.caleos.io","mainnet.telosusa.io"] HAPI_EVM_NETWORK_CHAIN_ID=4667b205c6838ef70ff7988f6e8257e8be0e1284a2f59699054a018f743b1d11 HAPI_EVM_EOS_EVM_ACCOUNT=eosio.evm -HAPI_BLOCK_INTERVAL_SEC=0.3 +HAPI_EVM_BLOCK_INTERVAL_SEC=0.3 +HAPI_EVM_HYPERION_API=https://telos.eosusa.io +HAPI_EVM_HYPERION_START_AT=2021-06-02T00:00:00.000+00:00 #webapp PORT=3000 diff --git a/.env.telostestnet b/.env.telostestnet index 61abd7d3..9c22efdd 100644 --- a/.env.telostestnet +++ b/.env.telostestnet @@ -56,6 +56,20 @@ HAPI_RE_CAPTCHA_PROJECT_ID= HAPI_PUBLIC_RE_CAPTCHA_KEY= HAPI_CREATE_ACCOUNT_ACTION_NAME= +# hapi-evm +HAPI_EVM_SERVER_PORT=9090 +HAPI_EVM_SERVER_ADDRESS=hapi-evm +HAPI_EVM_HASURA_URL=http://hasura:8080/v1/graphql +HAPI_EVM_HASURA_ADMIN_SECRET=myadminsecretkey +HAPI_EVM_DATABASE_URL=postgres://eoscr:password@postgres:5432/localdb +HAPI_EVM_ENDPOINT=https://testnet.telos.net/evm +HAPI_EVM_API_ENDPOINTS=["https://telos-testnet.edenia.cloud","https://telos-testnet.cryptolions.io","https://testnet.telos.eosrio.io","https://test.telos.eosusa.io"] +HAPI_EVM_NETWORK_CHAIN_ID=1eaa0824707c8c16bd25145493bf062aecddfeb56c736f6ba6397f3195f33c9f +HAPI_EVM_EOS_EVM_ACCOUNT=eosio.evm +HAPI_EVM_BLOCK_INTERVAL_SEC=0.3 +HAPI_EVM_HYPERION_API=https://test.telos.eosusa.io +HAPI_EVM_HYPERION_START_AT=2021-06-02T00:00:00.000+00:00 + #webapp PORT=3000 REACT_APP_VERSION=dev diff --git a/.github/workflows/deploy-telos-testnet.yaml b/.github/workflows/deploy-telos-testnet.yaml index c4d18507..c8b52c7a 100644 --- a/.github/workflows/deploy-telos-testnet.yaml +++ b/.github/workflows/deploy-telos-testnet.yaml @@ -66,7 +66,8 @@ jobs: id: build_kubernetes_files run: | make \ - build-kubernetes + build-kubernetes \ + build-kubernetes-evm env: # general NAMESPACE: telos-testnet-dashboard diff --git a/.github/workflows/deploy-telos.yaml b/.github/workflows/deploy-telos.yaml index eaff756e..a07d6c06 100644 --- a/.github/workflows/deploy-telos.yaml +++ b/.github/workflows/deploy-telos.yaml @@ -66,7 +66,8 @@ jobs: id: build_kubernetes_files run: | make \ - build-kubernetes + build-kubernetes \ + build-kubernetes-evm env: # general NAMESPACE: telos-dashboard diff --git a/docker-compose.yaml b/docker-compose.yaml index ac4ca2b3..c9ef0526 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -86,14 +86,16 @@ services: environment: HAPI_EVM_SERVER_PORT: '${HAPI_EVM_SERVER_PORT}' HAPI_EVM_SERVER_ADDRESS: '${HAPI_EVM_SERVER_ADDRESS}' + HAPI_EVM_HASURA_URL: '${HAPI_EVM_HASURA_URL}' + HAPI_EVM_HASURA_ADMIN_SECRET: '${HAPI_EVM_HASURA_ADMIN_SECRET}' + HAPI_EVM_DATABASE_URL: '${HAPI_EVM_DATABASE_URL}' HAPI_EVM_ENDPOINT: '${HAPI_EVM_ENDPOINT}' HAPI_EVM_API_ENDPOINTS: '${HAPI_EVM_API_ENDPOINTS}' HAPI_EVM_NETWORK_CHAIN_ID: '${HAPI_EVM_NETWORK_CHAIN_ID}' HAPI_EVM_EOS_EVM_ACCOUNT: '${HAPI_EVM_EOS_EVM_ACCOUNT}' - HAPI_EVM_HASURA_URL: '${HAPI_HASURA_URL}' - HAPI_EVM_HASURA_ADMIN_SECRET: '${HAPI_HASURA_ADMIN_SECRET}' - HAPI_EVM_DATABASE_URL: '${HAPI_DATABASE_URL}' - HAPI_BLOCK_INTERVAL_SEC: '${HAPI_BLOCK_INTERVAL_SEC}' + HAPI_EVM_BLOCK_INTERVAL_SEC: '${HAPI_EVM_BLOCK_INTERVAL_SEC}' + HAPI_EVM_HYPERION_API: '${HAPI_EVM_HYPERION_API}' + HAPI_EVM_HYPERION_START_AT: '${HAPI_EVM_HYPERION_START_AT}' hasura: container_name: '${STAGE}-${APP_NAME}-hasura' image: hasura/graphql-engine:v2.16.0.cli-migrations-v3 diff --git a/hapi-evm/src/config/hyperion.config.ts b/hapi-evm/src/config/hyperion.config.ts index aa4f6e2d..5852e926 100644 --- a/hapi-evm/src/config/hyperion.config.ts +++ b/hapi-evm/src/config/hyperion.config.ts @@ -1,4 +1,4 @@ export const api = - process.env.HAPI_HYPERION_API || 'https://test.telos.eosusa.io' + process.env.HAPI_EVM_HYPERION_API || 'https://test.telos.eosusa.io' export const startAt = - process.env.HAPI_HYPERION_START_AT || '2021-06-02T00:00:00.000+00:00' + process.env.HAPI_EVM_HYPERION_START_AT || '2021-06-02T00:00:00.000+00:00' diff --git a/hapi-evm/src/config/network.config.ts b/hapi-evm/src/config/network.config.ts index f056ae73..8c1449c4 100644 --- a/hapi-evm/src/config/network.config.ts +++ b/hapi-evm/src/config/network.config.ts @@ -1,9 +1,9 @@ export const evmEndpoint = process.env.HAPI_EVM_ENDPOINT || 'http://localhost/evm' -export const chainId = process.env.HAPI_NETWORK_CHAIN_ID || 'chainid1' +export const chainId = process.env.HAPI_EVM_NETWORK_CHAIN_ID || 'chainid1' export const evmAccount = process.env.HAPI_EVM_EOS_EVM_ACCOUNT || 'eosio.evm' export const eosEndpoints = process.env.HAPI_EVM_EOS_EVM_ACCOUNT?.split(',') || [] export const blockIntervalSec = parseFloat( - process.env.HAPI_BLOCK_INTERVAL_SEC || '0.5' + process.env.HAPI_EVM_BLOCK_INTERVAL_SEC || '0.5' ) diff --git a/kubernetes-evm/hapi-evm-deployment.yaml b/kubernetes-evm/hapi-evm-deployment.yaml new file mode 100644 index 00000000..d5af5007 --- /dev/null +++ b/kubernetes-evm/hapi-evm-deployment.yaml @@ -0,0 +1,29 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: dashboard-hapi-evm + name: dashboard-hapi-evm +spec: + replicas: 1 + selector: + matchLabels: + app: dashboard-hapi-evm + strategy: + type: Recreate + template: + metadata: + labels: + app: dashboard-hapi-evm + spec: + imagePullSecrets: + - name: regcred + containers: + - image: ${DOCKER_REGISTRY}/${IMAGE_NAME_HAPI_EVM}:${VERSION} + imagePullPolicy: "Always" + name: "dashboard-hapi-evm" + envFrom: + - configMapRef: + name: dashboard-hapi-evm-config + ports: + - containerPort: 9090 diff --git a/kubernetes-evm/hapi-evm-service.yaml b/kubernetes-evm/hapi-evm-service.yaml new file mode 100644 index 00000000..88c28f79 --- /dev/null +++ b/kubernetes-evm/hapi-evm-service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: dashboard-hapi-evm + name: dashboard-hapi-evm +spec: + ports: + - name: hapi + port: 9091 + targetPort: 9090 + selector: + app: dashboard-hapi-evm diff --git a/kubernetes/configmap-dashboard.yaml b/kubernetes/configmap-dashboard.yaml index c3785bb3..962d5adc 100644 --- a/kubernetes/configmap-dashboard.yaml +++ b/kubernetes/configmap-dashboard.yaml @@ -103,6 +103,25 @@ data: --- apiVersion: v1 kind: ConfigMap +metadata: + name: dashboard-hapi-evm-config +data: + # hapi-evm + HAPI_EVM_SERVER_PORT: '${HAPI_EVM_SERVER_PORT}' + HAPI_EVM_SERVER_ADDRESS: '${HAPI_EVM_SERVER_ADDRESS}' + HAPI_EVM_HASURA_URL: '${HAPI_EVM_HASURA_URL}' + HAPI_EVM_HASURA_ADMIN_SECRET: '${HAPI_EVM_HASURA_ADMIN_SECRET}' + HAPI_EVM_DATABASE_URL: '${HAPI_EVM_DATABASE_URL}' + HAPI_EVM_ENDPOINT: '${HAPI_EVM_ENDPOINT}' + HAPI_EVM_API_ENDPOINTS: '${HAPI_EVM_API_ENDPOINTS}' + HAPI_EVM_NETWORK_CHAIN_ID: '${HAPI_EVM_NETWORK_CHAIN_ID}' + HAPI_EVM_EOS_EVM_ACCOUNT: '${HAPI_EVM_EOS_EVM_ACCOUNT}' + HAPI_EVM_BLOCK_INTERVAL_SEC: '${HAPI_EVM_BLOCK_INTERVAL_SEC}' + HAPI_EVM_HYPERION_API: '${HAPI_EVM_HYPERION_API}' + HAPI_EVM_HYPERION_START_AT: '${HAPI_EVM_HYPERION_START_AT}' +--- +apiVersion: v1 +kind: ConfigMap metadata: name: dashboard-hasura-config data: diff --git a/makefile b/makefile index 8e1f0810..eea8370d 100644 --- a/makefile +++ b/makefile @@ -10,6 +10,7 @@ RESET := $(shell tput -Txterm sgr0) K8S_BUILD_DIR ?= ./build_k8s K8S_FILES := $(shell find ./kubernetes -name '*.yaml' | sed 's:./kubernetes/::g') +K8S_FILES_EVM := $(shell find ./kubernetes-evm -name '*.yaml' | sed 's:./kubernetes-evm/::g') run: @echo "$(BLUE)running action $(filter-out $@,$(MAKECMDGOALS))$(RESET)" @@ -165,6 +166,15 @@ build-kubernetes: ./kubernetes $(SHELL_EXPORT) envsubst <./kubernetes/$$file >$(K8S_BUILD_DIR)/$$file; \ done +build-kubernetes-evm: ##@devops Generate proper k8s files based on the templates for evm +build-kubernetes-evm: ./kubernetes-evm + @echo "Build kubernetes files for evm..." + @mkdir -p $(K8S_BUILD_DIR) + @for file in $(K8S_FILES_EVM); do \ + mkdir -p `dirname "$(K8S_BUILD_DIR)/$$file"`; \ + $(SHELL_EXPORT) envsubst <./kubernetes-evm/$$file >$(K8S_BUILD_DIR)/$$file; \ + done + deploy-kubernetes: ##@devops Publish the build k8s files deploy-kubernetes: $(K8S_BUILD_DIR) @kubectl create ns $(NAMESPACE) || echo "Namespace '$(NAMESPACE)' already exists."; diff --git a/utils/meta.mk b/utils/meta.mk index 9f9f4e92..64912889 100644 --- a/utils/meta.mk +++ b/utils/meta.mk @@ -4,13 +4,14 @@ VERSION ?= $(shell git rev-parse --short HEAD) IMAGE_NAME_WEBAPP=dashboard-webapp IMAGE_NAME_HAPI=dashboard-hapi +IMAGE_NAME_HAPI_EVM=dashboard-hapi-evm IMAGE_NAME_HASURA=dashboard-hasura IMAGE_NAME_WALLET=dashboard-wallet DOCKER_REGISTRY=ghcr.io/edenia SUBDIRS = webapp hapi hasura wallet -MAKE_ENV += DOCKER_REGISTRY VERSION IMAGE_NAME_WEBAPP IMAGE_NAME_HAPI IMAGE_NAME_WALLET IMAGE_NAME_HASURA +MAKE_ENV += DOCKER_REGISTRY VERSION IMAGE_NAME_WEBAPP IMAGE_NAME_HAPI IMAGE_NAME_HAPI_EVM IMAGE_NAME_WALLET IMAGE_NAME_HASURA SHELL_EXPORT := $(foreach v,$(MAKE_ENV),$(v)='$($(v))')