Tiltfile: optional pyth and explorer deployment
This adds the explorer and Pyth as optional components to improve Tilt startup times, as originally suggested by Justin. Defaults to true in CI. Change-Id: Id9fffe5b11311baadc042815c0cc747de037554e
This commit is contained in:
parent
7914512797
commit
ef0cb91ac6
155
Tiltfile
155
Tiltfile
|
@ -29,12 +29,18 @@ config.define_string("namespace", False, "Kubernetes namespace to use")
|
||||||
config.define_string("gcpProject", False, "GCP project ID for BigTable persistence")
|
config.define_string("gcpProject", False, "GCP project ID for BigTable persistence")
|
||||||
config.define_string("bigTableKeyPath", False, "Path to BigTable json key file")
|
config.define_string("bigTableKeyPath", False, "Path to BigTable json key file")
|
||||||
|
|
||||||
|
# Components
|
||||||
|
config.define_bool("pyth", False, "Enable Pyth-to-Wormhole component")
|
||||||
|
config.define_bool("explorer", False, "Enable explorer component")
|
||||||
|
|
||||||
cfg = config.parse()
|
cfg = config.parse()
|
||||||
num_guardians = int(cfg.get("num", "5"))
|
num_guardians = int(cfg.get("num", "5"))
|
||||||
namespace = cfg.get("namespace", "wormhole")
|
namespace = cfg.get("namespace", "wormhole")
|
||||||
gcpProject = cfg.get("gcpProject", "local-dev")
|
gcpProject = cfg.get("gcpProject", "local-dev")
|
||||||
bigTableKeyPath = cfg.get("bigTableKeyPath", "./event_database/devnet_key.json")
|
bigTableKeyPath = cfg.get("bigTableKeyPath", "./event_database/devnet_key.json")
|
||||||
ci = cfg.get("ci", False)
|
ci = cfg.get("ci", False)
|
||||||
|
pyth = cfg.get("pyth", ci)
|
||||||
|
explorer = cfg.get("explorer", ci)
|
||||||
|
|
||||||
# namespace
|
# namespace
|
||||||
|
|
||||||
|
@ -75,12 +81,13 @@ local_resource(
|
||||||
|
|
||||||
# node
|
# node
|
||||||
|
|
||||||
k8s_yaml_with_ns(
|
if explorer:
|
||||||
secret_yaml_generic(
|
k8s_yaml_with_ns(
|
||||||
"bridge-bigtable-key",
|
secret_yaml_generic(
|
||||||
from_file = "bigtable-key.json=" + bigTableKeyPath,
|
"bridge-bigtable-key",
|
||||||
),
|
from_file = "bigtable-key.json=" + bigTableKeyPath,
|
||||||
)
|
),
|
||||||
|
)
|
||||||
|
|
||||||
docker_build(
|
docker_build(
|
||||||
ref = "guardiand-image",
|
ref = "guardiand-image",
|
||||||
|
@ -98,7 +105,19 @@ def build_node_yaml():
|
||||||
if container["name"] != "guardiand":
|
if container["name"] != "guardiand":
|
||||||
fail("container 0 is not guardiand")
|
fail("container 0 is not guardiand")
|
||||||
container["command"] += ["--devNumGuardians", str(num_guardians)]
|
container["command"] += ["--devNumGuardians", str(num_guardians)]
|
||||||
container["command"] += ["--bigTableGCPProject", gcpProject]
|
|
||||||
|
if explorer:
|
||||||
|
container["command"] += [
|
||||||
|
"--bigTablePersistenceEnabled",
|
||||||
|
"--bigTableInstanceName",
|
||||||
|
"wormhole",
|
||||||
|
"--bigTableTableName",
|
||||||
|
"v2Events",
|
||||||
|
"--bigTableKeyPath",
|
||||||
|
"/tmp/mounted-keys/bigtable-key.json",
|
||||||
|
"--bigTableGCPProject",
|
||||||
|
gcpProject,
|
||||||
|
]
|
||||||
|
|
||||||
return encode_yaml_stream(node_yaml)
|
return encode_yaml_stream(node_yaml)
|
||||||
|
|
||||||
|
@ -110,14 +129,15 @@ k8s_resource("guardian", resource_deps = ["proto-gen", "solana-devnet"], port_fo
|
||||||
port_forward(7071, name = "Public REST [:7071]"),
|
port_forward(7071, name = "Public REST [:7071]"),
|
||||||
])
|
])
|
||||||
|
|
||||||
docker_build(
|
if pyth:
|
||||||
ref = "pyth",
|
docker_build(
|
||||||
context = ".",
|
ref = "pyth",
|
||||||
dockerfile = "third_party/pyth/Dockerfile.pyth",
|
context = ".",
|
||||||
)
|
dockerfile = "third_party/pyth/Dockerfile.pyth",
|
||||||
k8s_yaml_with_ns("./devnet/pyth.yaml")
|
)
|
||||||
|
k8s_yaml_with_ns("./devnet/pyth.yaml")
|
||||||
|
|
||||||
k8s_resource("pyth", resource_deps = ["solana-devnet"])
|
k8s_resource("pyth", resource_deps = ["solana-devnet"])
|
||||||
|
|
||||||
# publicRPC proxy that allows grpc over http1, for local development
|
# publicRPC proxy that allows grpc over http1, for local development
|
||||||
|
|
||||||
|
@ -168,22 +188,24 @@ k8s_resource(
|
||||||
|
|
||||||
# pyth2wormhole client
|
# pyth2wormhole client
|
||||||
|
|
||||||
docker_build(
|
if pyth:
|
||||||
ref = "p2w-client",
|
docker_build(
|
||||||
context = ".",
|
ref = "p2w-client",
|
||||||
only = ["./solana", "./third_party"],
|
context = ".",
|
||||||
dockerfile = "./third_party/pyth/Dockerfile.p2w-client",
|
only = ["./solana", "./third_party"],
|
||||||
|
dockerfile = "./third_party/pyth/Dockerfile.p2w-client",
|
||||||
|
|
||||||
# Ignore target folders from local (non-container) development.
|
# Ignore target folders from local (non-container) development.
|
||||||
ignore = ["./solana/*/target"],
|
ignore = ["./solana/*/target"],
|
||||||
)
|
)
|
||||||
|
|
||||||
k8s_yaml_with_ns("devnet/p2w-client.yaml")
|
k8s_yaml_with_ns("devnet/p2w-client.yaml")
|
||||||
|
|
||||||
k8s_resource("p2w-client",
|
k8s_resource(
|
||||||
resource_deps=["solana-devnet", "pyth"],
|
"p2w-client",
|
||||||
port_forwards=[]
|
resource_deps = ["solana-devnet", "pyth"],
|
||||||
)
|
port_forwards = [],
|
||||||
|
)
|
||||||
|
|
||||||
# eth devnet
|
# eth devnet
|
||||||
|
|
||||||
|
@ -237,51 +259,52 @@ def build_cloud_function(container_name, go_func_name, path, builder):
|
||||||
[path],
|
[path],
|
||||||
)
|
)
|
||||||
|
|
||||||
build_cloud_function(
|
if explorer:
|
||||||
container_name = "cloud-function-readrow",
|
build_cloud_function(
|
||||||
go_func_name = "ReadRow",
|
container_name = "cloud-function-readrow",
|
||||||
path = "./event_database/cloud_functions",
|
go_func_name = "ReadRow",
|
||||||
builder = "gcr.io/buildpacks/builder:v1",
|
path = "./event_database/cloud_functions",
|
||||||
)
|
builder = "gcr.io/buildpacks/builder:v1",
|
||||||
|
)
|
||||||
|
|
||||||
local_resource(
|
local_resource(
|
||||||
name = "pack-bin",
|
name = "pack-bin",
|
||||||
cmd = "go build -mod=readonly -o bin/pack github.com/buildpacks/pack/cmd/pack",
|
cmd = "go build -mod=readonly -o bin/pack github.com/buildpacks/pack/cmd/pack",
|
||||||
dir = "tools",
|
dir = "tools",
|
||||||
)
|
)
|
||||||
|
|
||||||
k8s_yaml_with_ns("devnet/bigtable.yaml")
|
k8s_yaml_with_ns("devnet/bigtable.yaml")
|
||||||
|
|
||||||
k8s_resource("bigtable-emulator", port_forwards = [
|
k8s_resource("bigtable-emulator", port_forwards = [
|
||||||
port_forward(8086, name = "BigTable clients [:8086]"),
|
port_forward(8086, name = "BigTable clients [:8086]"),
|
||||||
])
|
])
|
||||||
k8s_resource(
|
k8s_resource(
|
||||||
"bigtable-readrow",
|
"bigtable-readrow",
|
||||||
resource_deps = ["proto-gen"],
|
resource_deps = ["proto-gen"],
|
||||||
port_forwards = [port_forward(8090, name = "ReadRow [:8090]")],
|
port_forwards = [port_forward(8090, name = "ReadRow [:8090]")],
|
||||||
)
|
)
|
||||||
|
|
||||||
# explorer web app
|
# explorer web app
|
||||||
docker_build(
|
docker_build(
|
||||||
ref = "explorer",
|
ref = "explorer",
|
||||||
context = "./explorer",
|
context = "./explorer",
|
||||||
dockerfile = "./explorer/Dockerfile",
|
dockerfile = "./explorer/Dockerfile",
|
||||||
ignore = ["./explorer/node_modules"],
|
ignore = ["./explorer/node_modules"],
|
||||||
live_update = [
|
live_update = [
|
||||||
sync("./explorer/src", "/home/node/app/src"),
|
sync("./explorer/src", "/home/node/app/src"),
|
||||||
sync("./explorer/public", "/home/node/app/public"),
|
sync("./explorer/public", "/home/node/app/public"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
k8s_yaml_with_ns("devnet/explorer.yaml")
|
k8s_yaml_with_ns("devnet/explorer.yaml")
|
||||||
|
|
||||||
k8s_resource(
|
k8s_resource(
|
||||||
"explorer",
|
"explorer",
|
||||||
resource_deps = ["proto-gen-web"],
|
resource_deps = ["proto-gen-web"],
|
||||||
port_forwards = [
|
port_forwards = [
|
||||||
port_forward(8001, name = "Explorer Web UI [:8001]"),
|
port_forward(8001, name = "Explorer Web UI [:8001]"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
# terra devnet
|
# terra devnet
|
||||||
|
|
||||||
|
|
|
@ -105,13 +105,6 @@ spec:
|
||||||
- /tmp/admin.sock
|
- /tmp/admin.sock
|
||||||
- --dataDir
|
- --dataDir
|
||||||
- /tmp/data
|
- /tmp/data
|
||||||
- --bigTablePersistenceEnabled
|
|
||||||
- --bigTableInstanceName
|
|
||||||
- wormhole
|
|
||||||
- --bigTableTableName
|
|
||||||
- v2Events
|
|
||||||
- --bigTableKeyPath
|
|
||||||
- /tmp/mounted-keys/bigtable-key.json
|
|
||||||
# - --logLevel=debug
|
# - --logLevel=debug
|
||||||
securityContext:
|
securityContext:
|
||||||
capabilities:
|
capabilities:
|
||||||
|
|
Loading…
Reference in New Issue