Skip to content

Release/012-Blondie-v3-mainnet #62

Release/012-Blondie-v3-mainnet

Release/012-Blondie-v3-mainnet #62

name: Deploy holoclis to prod[mainnet]
permissions:
id-token: write
contents: read # This is required for actions/checkout@v2
env:
AWS_REGION: us-west-2
IAM_ROLE: arn:aws:iam::177635894328:role/Github_role_to_access_ECR
ECR_REPOSITORY: holo-cli # notice: the same for all cli apps
#
MAINNET_IMAGE_TAG: mainnet-${{ github.sha }}
#
CLUSTER_NAME: prod0
#
AWS_KEY_ID: ${{ secrets.PROD0_CICD_USER_AWS_ACCESS_KEY_ID }}
AWS_ACCESS_KEY: ${{ secrets.PROD0_CICD_USER_AWS_SECRET_ACCESS_KEY }}
ALB_CERT_ARN: ${{ secrets.PROD_ALB_CERT_ARN_FOR_HOLOGRAPH_XYZ }} # TIP: the 2 CERTs are separated with \, in Github secret
#
MAINNET_HOLO_INDEXER_OPERATOR_API_KEY: ${{ secrets.HOLO_INDEXER_MAINNET_OPERATOR_API_KEY }}
MAINNET_HOLO_OPERATOR_OPERATOR_API_KEY: ${{ secrets.HOLO_OPERATOR_MAINNET_OPERATOR_API_KEY}}
#
MAINNET_HOLOGRAPH_INDEXER_HOST: 'http://blondie-holo-api.mainnet.svc.cluster.local:443'
MAINNET_HOLOGRAPH_OPERATOR_HOST: 'http://blondie-holo-api.mainnet.svc.cluster.local:443'
#
MAINNET_HOLO_INDEXER_PASSWORD: ${{ secrets.MAINNET_HOLO_INDEXER_PASSWORD }}
MAINNET_HOLO_OPERATOR_PASSWORD: ${{ secrets.MAINNET_HOLO_OPERATOR_PASSWORD }}
#
# set the RPC endpoints config files
INDEXER_HOLO_CONFIG_FILE_DATA: mainnet-config-file
OPERATOR_HOLO_CONFIG_FILE_DATA: mainnet-config-file
#
HOLOGRAPH_ENVIRONMENT: mainnet
#
MAINNET_DOMAIN: 'holograph.xyz'
#
MAINNET_COMMON_NAMESPACE: mainnet # NOTICE <---
#
### INDEXER MAINNET rpc endpoints
indexer_mainnet_avalanche_rpc_url: ${{ secrets.INDEXER_MAINNET_AVALANCHE_RPC_URL }}
indexer_mainnet_polygon_rpc_url: ${{ secrets.INDEXER_MAINNET_POLYGON_RPC_URL }}
indexer_mainnet_ethereum_rpc_url: ${{ secrets.INDEXER_MAINNET_ETHEREUM_RPC_URL }}
indexer_mainnet_optimism_rpc_url: ${{ secrets.INDEXER_MAINNET_OPTIMISM_RPC_URL }}
indexer_mainnet_arbitrum_rpc_url: ${{ secrets.INDEXER_MAINNET_ARBITRUM_RPC_URL }}
indexer_mainnet_binance_rpc_url: ${{ secrets.INDEXER_MAINNET_BINANCE_RPC_URL }}
indexer_mainnet_mantle_rpc_url: "http://rpc.mantle.xyz/"
indexer_mainnet_zora_rpc_url: "https://rpc.zora.energy"
#
indexer_mainnet_private_key: ${{ secrets.INDEXER_MAINNET_PRIVATE_KEY }}
indexer_mainnet_address: ${{ secrets.INDEXER_MAINNET_ADDRESS }}
### OPERATOR MAINNET rpc endpoints
operator_mainnet_avalanche_rpc_url: ${{ secrets.OPERATOR_MAINNET_AVALANCHE_RPC_URL }}
operator_mainnet_polygon_rpc_url: ${{ secrets.OPERATOR_MAINNET_POLYGON_RPC_URL }}
operator_mainnet_ethereum_rpc_url: ${{ secrets.OPERATOR_MAINNET_ETHEREUM_RPC_URL }}
operator_mainnet_optimism_rpc_url: ${{ secrets.OPERATOR_MAINNET_OPTIMISM_RPC_URL }}
operator_mainnet_arbitrum_rpc_url: ${{ secrets.OPERATOR_MAINNET_ARBITRUM_RPC_URL }}
operator_mainnet_binance_rpc_url: ${{ secrets.OPERATOR_MAINNET_BINANCE_RPC_URL }}
operator_mainnet_mantle_rpc_url: "http://rpc.mantle.xyz/"
operator_mainnet_zora_rpc_url: "https://rpc.zora.energy"
#
operator_mainnet_private_key: ${{ secrets.OPERATOR_MAINNET_PRIVATE_KEY }}
operator_mainnet_address: ${{ secrets.OPERATOR_MAINNET_ADDRESS }}
#
# SQS User [indexer_processor_sqs_user]
SQS_USER_AWS_ACCESS_KEY_ID: ${{ secrets.SQS_INDEXER_PROCESSOR_USER_AWS_KEY_ID }}
SQS_USER_AWS_SECRET_ACCESS_KEY: ${{ secrets.SQS_INDEXER_PROCESSOR_USER_AWS_ACCESS_KEY }}
MAINNET_SQS_ENDPOINT: 'https://sqs.us-west-2.amazonaws.com'
MAINNET_SQS_QUEUE_URL: 'https://sqs.us-west-2.amazonaws.com/177635894328/mainnet-indexer-processor'
#######################################
MAINNET_HOLO_INDEXER_HELM_CHART_VERSION: 0.1.3
INDEXER_RELEASE_NAME: blondie-indexer-mainnet # format -> [release_name]-indexer-[env]
#
MAINNET_HOLO_OPERATOR_HELM_CHART_VERSION: 0.0.76
OPERATOR_RELEASE_NAME: blondie-operator-mainnet # format -> [release_name]-operator-[env]
#######################################
## notice: the trigger
#on:
# push:
# branches:
# - 'something'
# # Excluded branches
# - '!develop'
# - '!main'
# - '!master'
# notice: the trigger
on:
pull_request:
branches:
- 'mainnet'
types: [closed]
jobs:
deploy-to-prod-mainnet:
if: github.event.pull_request.merged == true # so no workflow runs when some PR is just closed without being merged
name: Deploy-to-prod[mainnet]
runs-on: ubuntu-latest
steps:
- name: Use Githubs federated identity with AWS
uses: aws-actions/configure-aws-credentials@v1
with:
role-to-assume: ${{ env.IAM_ROLE }}
aws-region: ${{ env.AWS_REGION }}
- name: Login to ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Checkout the code
uses: actions/checkout@v2
# This is a separate action that sets up buildx runner
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
# So now you can use Actions' own caching!
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-single-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-single-buildx
# And make it available for builds
- name: Build image
uses: docker/build-push-action@v2
with:
context: .
builder: ${{ steps.buildx.outputs.name }}
file: Dockerfile
build-args: AWS_ECR_URL=${{ steps.login-ecr.outputs.registry }}
platforms: linux/amd64
tags: ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.MAINNET_IMAGE_TAG }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
push: true # set false to deactivate the push to ECR
# This ugly bit is necessary if you don't want your cache to grow forever until it hits GitHub's limit of 5GB.
# https://github.com/docker/build-push-action/issues/252 & https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Configure AWS creds to access EKS
# TIP: the deployment user must be in the masters group in the aws-auth config map in the cluster
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ env.AWS_KEY_ID }} #notice: unique for each env
aws-secret-access-key: ${{ env.AWS_ACCESS_KEY }} #notice: unique for each env
aws-region: ${{ env.AWS_REGION }}
- name: Create ns [${{ env.MAINNET_COMMON_NAMESPACE }}]
uses: tensor-hq/eksctl-helm-action@main
with:
eks_cluster: ${{ env.CLUSTER_NAME }}
command: |-
kubectl create namespace ${{ env.MAINNET_COMMON_NAMESPACE }} --dry-run=client -o yaml | kubectl apply -f -
#
#
# NOTICE: --- INDEXER ---
- name: Pull the holograph-indexer helm chart version x.x.x from ECR
shell: bash
env:
#
CHART_REPO: holo-indexer
CHART_VERSION: ${{ env.MAINNET_HOLO_INDEXER_HELM_CHART_VERSION }}
#
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
helm pull oci://$ECR_REGISTRY/$CHART_REPO --version $CHART_VERSION
######
- name: -> Deploy INDEXER cli in MAINNET [namespace -> ${{ env.MAINNET_COMMON_NAMESPACE }}]
uses: tensor-hq/eksctl-helm-action@main
env:
RELEASE_NAME: ${{ env.INDEXER_RELEASE_NAME }} # notice
#
ENABLE_DEBUG: 'true'
HEALTHCHECK: 'true'
MODE: 'auto'
ENABLE_UNSAFE: 'true'
ENABLE_SYNC: 'true'
ENABLE_PROCESS_BLOCK_RANGE: 'true' # undefined/true
UPDATE_BLOCK_HEIGHT: 'api' # api/file/disable
#
ENABLE_PROCESS_BLOCK_RANGE_arbitrum: 'true' # undefined/true
ENABLE_PROCESS_BLOCK_RANGE_optimism: 'true'
ENABLE_PROCESS_BLOCK_RANGE_binance: 'true'
ENABLE_PROCESS_BLOCK_RANGE_mantle: 'true'
ENABLE_PROCESS_BLOCK_RANGE_zora: 'true'
ENABLE_PROCESS_BLOCK_RANGE_avalanche: 'true'
ENABLE_PROCESS_BLOCK_RANGE_ethereum: 'true'
ENABLE_PROCESS_BLOCK_RANGE_polygon: 'true'
#
AVALANCHE_NETWORK: 'avalanche'
ETHEREUM_NETWORK: 'ethereum'
OPTIMISM_NETWORK: 'optimism'
ARBITRUM_NETWORK: 'arbitrumOne'
POLYGON_NETWORK: 'polygon'
BINANCE_NETWORK: 'binanceSmartChain'
MANTLE_NETWORK: 'mantle'
ZORA_NETWORK: 'zora'
with:
eks_cluster: ${{ env.CLUSTER_NAME }}
command: |-
helm upgrade --install $RELEASE_NAME \
holo-indexer-${{ env.MAINNET_HOLO_INDEXER_HELM_CHART_VERSION }}.tgz \
-n ${{ env.MAINNET_COMMON_NAMESPACE }} \
\
--set image.repository=${{ env.ECR_REPOSITORY }} \
--set image.image_tag=${{ env.MAINNET_IMAGE_TAG }} \
--set config_file_data=${{ env.INDEXER_HOLO_CONFIG_FILE_DATA }} \
--set holo_indexer_password=${{ env.MAINNET_HOLO_INDEXER_PASSWORD }} \
--set HOLO_INDEXER_HOST=${{ env.MAINNET_HOLOGRAPH_INDEXER_HOST }} \
--set OPERATOR_API_KEY=${{ env.MAINNET_HOLO_INDEXER_OPERATOR_API_KEY }} \
--set HOLOGRAPH_ENVIRONMENT=${{ env.HOLOGRAPH_ENVIRONMENT }} \
\
--set ENABLE_DEBUG=$ENABLE_DEBUG \
--set ENABLE_SYNC=$ENABLE_SYNC \
--set HEALTHCHECK=$HEALTHCHECK \
--set MODE=$MODE \
\
--set AVALANCHE_NETWORK="${AVALANCHE_NETWORK}" \
--set ETHEREUM_NETWORK="${ETHEREUM_NETWORK}" \
--set OPTIMISM_NETWORK="${OPTIMISM_NETWORK}" \
--set ARBITRUM_NETWORK="${ARBITRUM_NETWORK}" \
--set POLYGON_NETWORK="${POLYGON_NETWORK}" \
--set BINANCE_NETWORK="${BINANCE_NETWORK}" \
--set MANTLE_NETWORK="${MANTLE_NETWORK}" \
--set ZORA_NETWORK="${ZORA_NETWORK}" \
\
--set ENABLE_UNSAFE="${ENABLE_UNSAFE}" \
--set UPDATE_BLOCK_HEIGHT=$UPDATE_BLOCK_HEIGHT \
\
--set ENABLE_PROCESS_BLOCK_RANGE.arbitrum=$ENABLE_PROCESS_BLOCK_RANGE_arbitrum \
--set ENABLE_PROCESS_BLOCK_RANGE.binance=$ENABLE_PROCESS_BLOCK_RANGE_binance \
--set ENABLE_PROCESS_BLOCK_RANGE.avalanche=$ENABLE_PROCESS_BLOCK_RANGE_avalanche \
--set ENABLE_PROCESS_BLOCK_RANGE.optimism=$ENABLE_PROCESS_BLOCK_RANGE_optimism \
--set ENABLE_PROCESS_BLOCK_RANGE.ethereum=$ENABLE_PROCESS_BLOCK_RANGE_ethereum \
--set ENABLE_PROCESS_BLOCK_RANGE.polygon=$ENABLE_PROCESS_BLOCK_RANGE_polygon \
--set ENABLE_PROCESS_BLOCK_RANGE.mantle=$ENABLE_PROCESS_BLOCK_RANGE_mantle \
--set ENABLE_PROCESS_BLOCK_RANGE.zora=$ENABLE_PROCESS_BLOCK_RANGE_zora \
\
--set mainnet_rpc_config_values.avalanche_rpc_url=${{ env.indexer_mainnet_avalanche_rpc_url }} \
--set mainnet_rpc_config_values.polygon_rpc_url=${{ env.indexer_mainnet_polygon_rpc_url }} \
--set mainnet_rpc_config_values.ethereum_rpc_url=${{ env.indexer_mainnet_ethereum_rpc_url }} \
--set mainnet_rpc_config_values.optimism_rpc_url=${{ env.indexer_mainnet_optimism_rpc_url }} \
--set mainnet_rpc_config_values.arbitrum_rpc_url=${{ env.indexer_mainnet_arbitrum_rpc_url }} \
--set mainnet_rpc_config_values.binance_rpc_url=${{ env.indexer_mainnet_binance_rpc_url }} \
--set mainnet_rpc_config_values.mantle_rpc_url=${{ env.indexer_mainnet_mantle_rpc_url }} \
--set mainnet_rpc_config_values.zora_rpc_url=${{ env.indexer_mainnet_zora_rpc_url }} \
\
--set mainnet_rpc_config_values.private_key=${{ env.indexer_mainnet_private_key }} \
--set mainnet_rpc_config_values.address=${{ env.indexer_mainnet_address }} \
--set mainnet_rpc_config_values.version="beta3" \
\
--set datadog_tags.env=${{ env.CLUSTER_NAME }} \
--set datadog_tags.service=$RELEASE_NAME \
--set datadog_tags.version=$RELEASE_NAME-${{ env.MAINNET_HOLO_INDEXER_HELM_CHART_VERSION }} \
\
--set autoscaling.enabled=false \
--set replicaCount=1 \
\
--set resources.ethereum.limits.memory=2048Mi \
--set resources.ethereum.requests.cpu=950m \
--set resources.ethereum.requests.memory=2000Mi \
\
--set resources.optimism.limits.memory=2048Mi \
--set resources.optimism.requests.cpu=950m \
--set resources.optimism.requests.memory=2000Mi \
\
--set resources.arbitrum.limits.memory=2048Mi \
--set resources.arbitrum.requests.cpu=950m \
--set resources.arbitrum.requests.memory=2000Mi \
\
--set resources.polygon.limits.memory=2048Mi \
--set resources.polygon.requests.cpu=950m \
--set resources.polygon.requests.memory=2000Mi \
\
--set resources.avalanche.limits.memory=2048Mi \
--set resources.avalanche.requests.cpu=950m \
--set resources.avalanche.requests.memory=2000Mi \
\
--set resources.binance.limits.memory=2048Mi \
--set resources.binance.requests.cpu=950m \
--set resources.binance.requests.memory=2000Mi \
\
--set resources.mantle.limits.memory=2048Mi \
--set resources.mantle.requests.cpu=950m \
--set resources.mantle.requests.memory=2000Mi \
\
--set resources.zora.limits.memory=2048Mi \
--set resources.zora.requests.cpu=950m \
--set resources.zora.requests.memory=2000Mi \
\
--set sqs.SQS_USER_AWS_ACCESS_KEY_ID=${{ env.SQS_USER_AWS_ACCESS_KEY_ID }} \
--set sqs.SQS_USER_AWS_SECRET_ACCESS_KEY=${{ env.SQS_USER_AWS_SECRET_ACCESS_KEY }} \
--set sqs.SQS_ENDPOINT=${{ env.MAINNET_SQS_ENDPOINT }} \
--set sqs.SQS_QUEUE_URL=${{ env.MAINNET_SQS_QUEUE_URL }} \
--set sqs.AWS_REGION=us-west-2 \
\
--values .github/values_for_prod_alb_ingress.yaml \
--set ingress.annotations."alb\.ingress\.kubernetes\.io/certificate-arn"='${{ env.ALB_CERT_ARN }}' \
--set ingress.ingress_name=ing-$RELEASE_NAME-health \
--set ingress.host=$RELEASE_NAME-health.${{ env.MAINNET_DOMAIN }} \
--set ingress.target_svc_name=$RELEASE_NAME-holo-indexer \
--set ingress.blue_green_deployment=false
- name: Pause for 60 seconds
shell: bash
run: |
sleep 60
#
#
# NOTICE: --- OPERATOR ---
- name: Pull the holograph-operator helm chart version x.x.x from ECR
shell: bash
env:
#
CHART_REPO: holo-operator
CHART_VERSION: ${{ env.MAINNET_HOLO_OPERATOR_HELM_CHART_VERSION }}
#
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
run: |
helm pull oci://$ECR_REGISTRY/$CHART_REPO --version $CHART_VERSION
######
- name: -> Deploy OPERATOR cli in MAINNET [namespace -> ${{ env.MAINNET_COMMON_NAMESPACE }}]
uses: tensor-hq/eksctl-helm-action@main
env:
RELEASE_NAME: ${{ env.OPERATOR_RELEASE_NAME }} # notice
#
ENABLE_DEBUG: 'true'
ENABLE_SYNC: 'true'
HEALTHCHECK: 'true'
MODE: 'auto'
ENABLE_UNSAFE: 'true'
ENABLE_PROCESS_BLOCK_RANGE: 'true' # undefined/true
UPDATE_BLOCK_HEIGHT: 'api' # api/file/disable
#
ENABLE_PROCESS_BLOCK_RANGE_arbitrum: 'true' # undefined/true
ENABLE_PROCESS_BLOCK_RANGE_optimism: 'true'
ENABLE_PROCESS_BLOCK_RANGE_binance: 'true'
ENABLE_PROCESS_BLOCK_RANGE_mantle: 'true'
ENABLE_PROCESS_BLOCK_RANGE_zora: 'true'
ENABLE_PROCESS_BLOCK_RANGE_avalanche: 'true'
ENABLE_PROCESS_BLOCK_RANGE_ethereum: 'true'
ENABLE_PROCESS_BLOCK_RANGE_polygon: 'true'
#
AVALANCHE_NETWORK: 'avax'
POLYGON_NETWORK: 'matic'
ETHEREUM_NETWORK: 'eth'
OPTIMISM_NETWORK: 'optimism'
ARBITRUM_NETWORK: 'arbitrumOne'
BINANCE_NETWORK: 'binanceSmartChain'
MANTLE_NETWORK: 'mantle'
ZORA_NETWORK: 'zora'
with:
eks_cluster: ${{ env.CLUSTER_NAME }}
command: |-
helm upgrade --install $RELEASE_NAME \
holo-operator-${{ env.MAINNET_HOLO_OPERATOR_HELM_CHART_VERSION }}.tgz \
-n ${{ env.MAINNET_COMMON_NAMESPACE }} \
\
--set image.repository=${{ env.ECR_REPOSITORY }} \
--set image.image_tag=${{ env.MAINNET_IMAGE_TAG }} \
--set config_file_data=${{ env.OPERATOR_HOLO_CONFIG_FILE_DATA }} \
--set holo_operator_password=${{ env.MAINNET_HOLO_OPERATOR_PASSWORD }} \
--set HOLO_OPERATOR_HOST=${{ env.MAINNET_HOLOGRAPH_OPERATOR_HOST }} \
--set OPERATOR_API_KEY=${{ env.MAINNET_HOLO_OPERATOR_OPERATOR_API_KEY }} \
--set HOLOGRAPH_ENVIRONMENT=${{ env.HOLOGRAPH_ENVIRONMENT }} \
\
--set ENABLE_DEBUG=$ENABLE_DEBUG \
--set ENABLE_SYNC=$ENABLE_SYNC \
--set HEALTHCHECK=$HEALTHCHECK \
--set MODE=$MODE \
--set ENABLE_UNSAFE="${ENABLE_UNSAFE}" \
--set UPDATE_BLOCK_HEIGHT=$UPDATE_BLOCK_HEIGHT \
\
--set ENABLE_PROCESS_BLOCK_RANGE.arbitrum=$ENABLE_PROCESS_BLOCK_RANGE_arbitrum \
--set ENABLE_PROCESS_BLOCK_RANGE.binance=$ENABLE_PROCESS_BLOCK_RANGE_binance \
--set ENABLE_PROCESS_BLOCK_RANGE.avalanche=$ENABLE_PROCESS_BLOCK_RANGE_avalanche \
--set ENABLE_PROCESS_BLOCK_RANGE.optimism=$ENABLE_PROCESS_BLOCK_RANGE_optimism \
--set ENABLE_PROCESS_BLOCK_RANGE.ethereum=$ENABLE_PROCESS_BLOCK_RANGE_ethereum \
--set ENABLE_PROCESS_BLOCK_RANGE.polygon=$ENABLE_PROCESS_BLOCK_RANGE_polygon \
--set ENABLE_PROCESS_BLOCK_RANGE.mantle=$ENABLE_PROCESS_BLOCK_RANGE_mantle \
--set ENABLE_PROCESS_BLOCK_RANGE.zora=$ENABLE_PROCESS_BLOCK_RANGE_zora \
\
--set AVALANCHE_NETWORK=$AVALANCHE_NETWORK \
--set POLYGON_NETWORK=$POLYGON_NETWORK \
--set ETHEREUM_NETWORK=$ETHEREUM_NETWORK \
--set OPTIMISM_NETWORK=$OPTIMISM_NETWORK \
--set ARBITRUM_NETWORK=$ARBITRUM_NETWORK \
--set BINANCE_NETWORK=$BINANCE_NETWORK \
--set MANTLE_NETWORK=$MANTLE_NETWORK \
--set ZORA_NETWORK=$ZORA_NETWORK \
\
--set mainnet_rpc_config_values.avalanche_rpc_url=${{ env.operator_mainnet_avalanche_rpc_url }} \
--set mainnet_rpc_config_values.polygon_rpc_url=${{ env.operator_mainnet_polygon_rpc_url }} \
--set mainnet_rpc_config_values.ethereum_rpc_url=${{ env.operator_mainnet_ethereum_rpc_url }} \
--set mainnet_rpc_config_values.optimism_rpc_url=${{ env.operator_mainnet_optimism_rpc_url }} \
--set mainnet_rpc_config_values.arbitrum_rpc_url=${{ env.operator_mainnet_arbitrum_rpc_url }} \
--set mainnet_rpc_config_values.binance_rpc_url=${{ env.operator_mainnet_binance_rpc_url }} \
--set mainnet_rpc_config_values.mantle_rpc_url=${{ env.operator_mainnet_mantle_rpc_url }} \
--set mainnet_rpc_config_values.zora_rpc_url=${{ env.operator_mainnet_zora_rpc_url }} \
\
--set mainnet_rpc_config_values.private_key=${{ env.operator_mainnet_private_key }} \
--set mainnet_rpc_config_values.address=${{ env.operator_mainnet_address }} \
\
--set autoscaling.enabled=false \
--set replicaCount=1 \
\
--set resources.ethereum.limits.memory=1024Mi \
--set resources.ethereum.requests.cpu=300m \
--set resources.ethereum.requests.memory=1000Mi \
\
--set resources.optimism.limits.memory=550Mi \
--set resources.optimism.requests.cpu=200m \
--set resources.optimism.requests.memory=500Mi \
\
--set resources.arbitrum.limits.memory=550Mi \
--set resources.arbitrum.requests.cpu=200m \
--set resources.arbitrum.requests.memory=500Mi \
\
--set resources.polygon.limits.memory=550Mi \
--set resources.polygon.requests.cpu=200m \
--set resources.polygon.requests.memory=500Mi \
\
--set resources.avalanche.limits.memory=550Mi \
--set resources.avalanche.requests.cpu=200m \
--set resources.avalanche.requests.memory=500Mi \
\
--set resources.binance.limits.memory=820Mi \
--set resources.binance.requests.cpu=300m \
--set resources.binance.requests.memory=800Mi \
\
--set resources.mantle.limits.memory=820Mi \
--set resources.mantle.requests.cpu=300m \
--set resources.mantle.requests.memory=800Mi \
\
--set resources.zora.limits.memory=820Mi \
--set resources.zora.requests.cpu=300m \
--set resources.zora.requests.memory=800Mi \
\
--set datadog_tags.env=${{ env.CLUSTER_NAME }} \
--set datadog_tags.service=$RELEASE_NAME \
--set datadog_tags.version=$RELEASE_NAME-${{ env.MAINNET_HOLO_OPERATOR_HELM_CHART_VERSION }} \
\
--values .github/values_for_prod_alb_ingress.yaml \
--set ingress.annotations."alb\.ingress\.kubernetes\.io/certificate-arn"='${{ env.ALB_CERT_ARN }}' \
--set ingress.ingress_name=ing-$RELEASE_NAME-health \
--set ingress.host=$RELEASE_NAME-health.${{ env.MAINNET_DOMAIN }} \
--set ingress.target_svc_name=$RELEASE_NAME-holo-operator \
--set ingress.blue_green_deployment=false
- name: -> Info for the new deployments
uses: tensor-hq/eksctl-helm-action@main
env:
INDEXER_RELEASE_NAME: ${{ env.INDEXER_RELEASE_NAME }}
OPERATOR_RELEASE_NAME: ${{ env.OPERATOR_RELEASE_NAME }}
LB_URL: 'https://prod0-alb-1736382478.us-west-2.elb.amazonaws.com'
with:
eks_cluster: ${{ env.CLUSTER_NAME }}
command: |-
echo "------------------------- Last n Helm releases -------------------------"
echo "--INDEXER--"
helm history $INDEXER_RELEASE_NAME -n ${{ env.MAINNET_COMMON_NAMESPACE }} --max 3
echo "--OPERATOR--"
helm history $OPERATOR_RELEASE_NAME -n ${{ env.MAINNET_COMMON_NAMESPACE }} --max 3
echo "------------------------ Newly deployed image [same for all clis] ------------------------ "
echo "$MAINNET_IMAGE_TAG"
echo "------------------------ Healthchecks ------------------------"
sleep 55
ENDPOINT=$INDEXER_RELEASE_NAME-health.${{ env.MAINNET_DOMAIN }}
echo "curl -k -H \"Host: $ENDPOINT\" $LB_URL/healthcheck"
curl -k -H "Host: $ENDPOINT" $LB_URL/healthcheck | jq '.status'
ENDPOINT=$OPERATOR_RELEASE_NAME-health.${{ env.MAINNET_DOMAIN }}
echo "curl -k -H \"Host: $ENDPOINT\" $LB_URL/healthcheck"
curl -k -H "Host: $ENDPOINT" $LB_URL/healthcheck | jq '.status'