-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTiltfile
137 lines (118 loc) · 4.58 KB
/
Tiltfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# -*- mode: Python -*-
load('ext://dotenv', 'dotenv')
load('ext://secret', 'secret_create_generic', 'secret_from_dict')
load('ext://uibutton', 'cmd_button')
secret_settings(disable_scrub=True)
if os.path.exists("./Tiltfile.overrides"):
include("./Tiltfile.overrides")
IS_CI = config.tilt_subcommand == 'ci'
dotenv('.env.local')
if IS_CI:
values = ['tilt-ci.yaml']
else:
values = []
k8s_yaml(helm('./helm', values=values))
GRAFANA_PORT_FORWARD=3001
API_PORT_FORWARD=8080
GRAPH_PORT_FORWARD=8082
RPC_PORT_FORWARD=50055
load('./containers/tilt/extensions/go/Tiltfile', 'go_compile', 'go_image')
go_compile('api-compile', './services/api', ['./services/api'])
go_image('api', './services/api')
k8s_resource(
"api",
port_forwards=[port_forward(API_PORT_FORWARD, 8080, "api")],
resource_deps=["graph"],
links=[
link("localhost:%s/swagger/index.html" % API_PORT_FORWARD, "swagger"),
],
labels=["app"],
)
go_compile('rpc-compile', './services/rpc', ['./services/rpc'])
go_image('rpc', './services/rpc')
k8s_yaml(secret_from_dict("rpc-auth", inputs={
"DB_MYSQL_DSN": "amalgam-user:amalgam-password@tcp(mysql:3306)/amalgam-db?charset=utf8mb4&parseTime=True&loc=Local"
}))
k8s_resource(
"rpc",
port_forwards=[
port_forward(RPC_PORT_FORWARD, 50051, 'grpc'),
port_forward(9091, 9090, 'metrics'),
],
resource_deps=["mysql-migrate","temporal"],
links=[
link("https://learning.postman.com/docs/sending-requests/grpc/grpc-client-overview/", "postman"),
],
labels=["app"],
)
go_compile('graph-compile', './services/graph', ['./services/graph'])
go_image('graph', './services/graph')
k8s_resource("graph",
port_forwards=[
port_forward(GRAPH_PORT_FORWARD, 8080, "playground")
],
resource_deps=["rpc"],
links=[
link("http://localhost:%s/query" % GRAPH_PORT_FORWARD, "query"),
link("http://localhost:%s/metrics" % GRAPH_PORT_FORWARD, "metrics"),
link("https://learning.postman.com/docs/sending-requests/graphql/graphql-overview/", "postman"),
],
labels=["app"]
)
go_compile('echo-compile', './services/echo', ['./services/echo'])
go_image('echo', './services/echo')
k8s_resource("echo", port_forwards=[port_forward(8083, 8080, "http")], labels=["services"])
docker_build(
"ui-image",
context="./ui",
live_update=[sync("./ui", "/usr/src/app")],
dockerfile="ui/dev.Dockerfile",
)
k8s_resource("ui", port_forwards=[port_forward(3000, 3000, "ui")], labels=["app"])
go_compile('faker-compile', './services/faker', ['./services/faker'])
go_image('faker', './services/faker')
k8s_resource("faker", port_forwards=[port_forward(8084, 8080, "http")], labels=["services"])
cmd_button('random feed',
argv=['sh', '-c', 'curl "http://localhost:8084/feed/$(uuidgen)" 2>/dev/null'],
resource='faker',
icon_name='add_to_queue',
text='fake',
)
k8s_yaml(secret_from_dict("data-pipeline-auth", inputs={
"MINIO_ACCESS_KEY": "minio",
"MINIO_SECRET_ACCESS_KEY": "minio-password",
}))
go_compile('feed-worker-compile', './data-pipeline/temporal/feed_fetch/worker', ['./data-pipeline/temporal'])
go_image('feed-worker', './data-pipeline/temporal/feed_fetch/worker')
k8s_resource("feed-worker", resource_deps=["temporal","rpc"], labels=["data-pipeline"], auto_init=(not IS_CI),
port_forwards=[port_forward(9096, 9090, "metrics")],
)
go_compile('feed-tasks-worker-compile', './data-pipeline/temporal/feed_tasks/worker', ['./data-pipeline/temporal'])
go_image('feed-tasks-worker', './data-pipeline/temporal/feed_tasks/worker')
k8s_resource("feed-tasks-worker", resource_deps=["temporal","rpc"], labels=["data-pipeline"], auto_init=(not IS_CI),
port_forwards=[port_forward(9097, 9090, "metrics")],
)
cmd_button('fetch feeds', argv=['sh', '-c', 'cd data-pipeline/temporal/feed_fetch && go run start/main.go'],
resource='temporal', icon_name='add_to_queue', text='fetch feeds',
)
cmd_button('generate feeds', argv=['sh', '-c', 'cd data-pipeline/temporal/feed_tasks && go run start/main.go'],
resource='temporal', icon_name='add_to_queue', text='generate fake feeds',
env=["FAKE_HOST=faker:8080"],
)
load('./containers/tilt/extensions/temporal/Tiltfile', 'deploy_temporal')
deploy_temporal()
load('./containers/tilt/extensions/mysql/Tiltfile', 'deploy_mysql')
deploy_mysql(root_pw="password", user_pw="amalgam-password", migration_pw="password")
load('./containers/tilt/extensions/lgtm/Tiltfile', 'deploy_lgtm')
deploy_lgtm(
grafana_port=GRAFANA_PORT_FORWARD,
auto_init=(not IS_CI),
)
load('./containers/tilt/extensions/minio/Tiltfile', 'deploy_minio')
deploy_minio(
secret_name="feed-minio-auth",
root_user="minio",
root_password="minio-password",
# auto_init=(not IS_CI),
)
include('Tiltfile.tests')