Set aws creds through environment variables locally

This commit is contained in:
Luke Van Seters 2022-02-04 16:30:34 -05:00
parent 00dba743d9
commit 040be01e9d
4 changed files with 43 additions and 12 deletions

View File

@ -53,7 +53,20 @@ docker_build("mev-inspect-py", ".",
trigger="./pyproject.toml"), trigger="./pyproject.toml"),
], ],
) )
k8s_yaml(helm('./k8s/mev-inspect', name='mev-inspect')) k8s_yaml(helm(
'./k8s/mev-inspect',
name='mev-inspect',
set=[
"extraEnv[0].name=AWS_ACCESS_KEY_ID",
"extraEnv[0].value=foobar",
"extraEnv[1].name=AWS_SECRET_ACCESS_KEY",
"extraEnv[1].value=foobar",
"extraEnv[2].name=AWS_REGION",
"extraEnv[2].value=us-east-1",
"extraEnv[3].name=AWS_ENDPOINT_URL",
"extraEnv[3].value=http://localstack:4566",
],
))
k8s_resource( k8s_resource(
workload="mev-inspect", workload="mev-inspect",
resource_deps=["postgresql", "redis-master"], resource_deps=["postgresql", "redis-master"],
@ -62,7 +75,17 @@ k8s_resource(
k8s_yaml(helm( k8s_yaml(helm(
'./k8s/mev-inspect-workers', './k8s/mev-inspect-workers',
name='mev-inspect-workers', name='mev-inspect-workers',
set=["replicaCount=1"], set=[
"extraEnv[0].name=AWS_ACCESS_KEY_ID",
"extraEnv[0].value=foobar",
"extraEnv[1].name=AWS_SECRET_ACCESS_KEY",
"extraEnv[1].value=foobar",
"extraEnv[2].name=AWS_REGION",
"extraEnv[2].value=us-east-1",
"extraEnv[3].name=AWS_ENDPOINT_URL",
"extraEnv[3].value=http://localstack:4566",
"replicaCount=1",
],
)) ))
k8s_resource( k8s_resource(
workload="mev-inspect-workers", workload="mev-inspect-workers",

View File

@ -91,6 +91,10 @@ spec:
name: mev-inspect-listener-healthcheck name: mev-inspect-listener-healthcheck
key: url key: url
optional: true optional: true
{{- range .Values.extraEnv }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}

View File

@ -96,6 +96,10 @@ spec:
configMapKeyRef: configMapKeyRef:
name: mev-inspect-export name: mev-inspect-export
key: export-bucket-name key: export-bucket-name
{{- range .Values.extraEnv }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
{{- with .Values.nodeSelector }} {{- with .Values.nodeSelector }}
nodeSelector: nodeSelector:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}

View File

@ -1,11 +1,13 @@
import json import json
import logging import logging
import os import os
from typing import Optional
import boto3 import boto3
from mev_inspect.text_io import BytesIteratorIO from mev_inspect.text_io import BytesIteratorIO
AWS_ENDPOINT_URL_ENV = "AWS_ENDPOINT_URL"
MEV_SUMMARY_EXPORT_QUERY = """ MEV_SUMMARY_EXPORT_QUERY = """
SELECT to_json(mev_summary) SELECT to_json(mev_summary)
FROM mev_summary FROM mev_summary
@ -20,8 +22,8 @@ logger = logging.getLogger(__name__)
def export_block_range( def export_block_range(
inspect_db_session, after_block_number: int, before_block_number inspect_db_session, after_block_number: int, before_block_number
) -> None: ) -> None:
export_bucket_name = os.environ["EXPORT_BUCKET_NAME"]
client = get_s3_client() client = get_s3_client()
bucket_name = os.environ["EXPORT_BUCKET_NAME"]
mev_summary_json_results = inspect_db_session.execute( mev_summary_json_results = inspect_db_session.execute(
statement=MEV_SUMMARY_EXPORT_QUERY, statement=MEV_SUMMARY_EXPORT_QUERY,
@ -39,19 +41,17 @@ def export_block_range(
client.upload_fileobj( client.upload_fileobj(
mev_summary_json_fileobj, mev_summary_json_fileobj,
Bucket=bucket_name, Bucket=export_bucket_name,
Key=key, Key=key,
) )
logger.info(f"Exported to {key}") logger.info(f"Exported to {key}")
# TODO - handle for production
def get_s3_client(): def get_s3_client():
return boto3.client( endpoint_url = get_endpoint_url()
"s3", return boto3.client("s3", endpoint_url=endpoint_url)
region_name="us-east-1",
endpoint_url="http://localstack:4566",
aws_access_key_id="test", def get_endpoint_url() -> Optional[str]:
aws_secret_access_key="test", return os.environ.get(AWS_ENDPOINT_URL_ENV)
)