@@ -13,7 +13,9 @@ settings = {
13
13
}
14
14
15
15
# global settings
16
- tilt_file = "./tilt-settings.yaml" if os .path .exists ("./tilt-settings.yaml" ) else "./tilt-settings.json"
16
+ tilt_file = "./tilt-settings.yaml" if os .path .exists (
17
+ "./tilt-settings.yaml" ,
18
+ ) else "./tilt-settings.json"
17
19
settings .update (read_yaml (
18
20
tilt_file ,
19
21
default = {},
@@ -119,21 +121,27 @@ COPY --from=tilt-helper /usr/bin/kubectl /usr/bin/kubectl
119
121
# ]
120
122
# }
121
123
# }
124
+
122
125
def load_provider_tiltfiles ():
123
126
provider_repos = settings .get ("provider_repos" , [])
124
127
125
128
for repo in provider_repos :
126
- file = repo + "/tilt-provider.yaml" if os .path .exists (repo + "/tilt-provider.yaml" ) else repo + "/tilt-provider.json"
129
+ file = repo + "/tilt-provider.yaml" if os .path .exists (
130
+ repo + "/tilt-provider.yaml" ,
131
+ ) else repo + "/tilt-provider.json"
127
132
if not os .path .exists (file ):
128
- fail ("Failed to load provider. No tilt-provider.{yaml|json} file found in " + repo )
133
+ fail (
134
+ "Failed to load provider. No tilt-provider.{yaml|json} file found in " + repo ,
135
+ )
129
136
provider_details = read_yaml (file , default = {})
130
137
if type (provider_details ) != type ([]):
131
138
provider_details = [provider_details ]
132
139
for item in provider_details :
133
140
provider_name = item ["name" ]
134
141
provider_config = item ["config" ]
135
142
if "context" in provider_config :
136
- provider_config ["context" ] = repo + "/" + provider_config ["context" ]
143
+ provider_config ["context" ] = repo + \
144
+ "/" + provider_config ["context" ]
137
145
else :
138
146
provider_config ["context" ] = repo
139
147
if "kustomize_config" not in provider_config :
@@ -144,7 +152,7 @@ def load_provider_tiltfiles():
144
152
145
153
tilt_helper_dockerfile_header = """
146
154
# Tilt image
147
- FROM golang:1.17 .3 as tilt-helper
155
+ FROM golang:1.18 .3 as tilt-helper
148
156
# Support live reloading with Tilt
149
157
RUN go get github.com/go-delve/delve/cmd/dlv
150
158
RUN wget --output-document /restart.sh --quiet https://raw.githubusercontent.com/windmilleng/rerun-process-wrapper/master/restart.sh && \
@@ -166,6 +174,7 @@ COPY manager .
166
174
# 1. Enables a local_resource go build of the provider's manager binary
167
175
# 2. Configures a docker build for the provider, with live updating of the manager binary
168
176
# 3. Runs kustomize for the provider's config/default and applies it
177
+
169
178
def enable_provider (name , debug ):
170
179
p = providers .get (name )
171
180
context = p .get ("context" )
@@ -224,8 +233,14 @@ def enable_provider(name, debug):
224
233
labels = [label , "ALL.binaries" ],
225
234
)
226
235
227
- additional_docker_helper_commands = p .get ("additional_docker_helper_commands" , "" )
228
- additional_docker_build_commands = p .get ("additional_docker_build_commands" , "" )
236
+ additional_docker_helper_commands = p .get (
237
+ "additional_docker_helper_commands" ,
238
+ "" ,
239
+ )
240
+ additional_docker_build_commands = p .get (
241
+ "additional_docker_build_commands" ,
242
+ "" ,
243
+ )
229
244
230
245
dockerfile_contents = "\n " .join ([
231
246
tilt_helper_dockerfile_header ,
@@ -244,11 +259,13 @@ def enable_provider(name, debug):
244
259
profiler_port = int (debug .get ("profiler_port" , 0 ))
245
260
if metrics_port != 0 :
246
261
port_forwards .append (port_forward (metrics_port , 8080 ))
247
- links .append (link ("http://localhost:" + str (metrics_port ) + "/metrics" , "metrics" ))
262
+ links .append (link ("http://localhost:" +
263
+ str (metrics_port ) + "/metrics" , "metrics" ))
248
264
249
265
if profiler_port != 0 :
250
266
port_forwards .append (port_forward (profiler_port , 6060 ))
251
- links .append (link ("http://localhost:" + str (profiler_port ) + "/debug/pprof" , "profiler" ))
267
+ links .append (link ("http://localhost:" +
268
+ str (profiler_port ) + "/debug/pprof" , "profiler" ))
252
269
253
270
# Set up an image build for the provider. The live update configuration syncs the output from the local_resource
254
271
# build into the container.
@@ -292,12 +309,14 @@ def find_object_qualified_name(objs, kind):
292
309
293
310
# Users may define their own Tilt customizations in tilt.d. This directory is excluded from git and these files will
294
311
# not be checked in to version control.
312
+
295
313
def include_user_tilt_files ():
296
314
user_tiltfiles = listdir ("tilt.d" )
297
315
for f in user_tiltfiles :
298
316
include (f )
299
317
300
318
# Enable core cluster-api plus everything listed in 'enable_providers' in tilt-settings.json
319
+
301
320
def enable_providers ():
302
321
for name in get_providers ():
303
322
enable_provider (name , settings .get ("debug" ).get (name , {}))
@@ -311,46 +330,79 @@ def deploy_provider_crds():
311
330
# it is required to control precedence between creating this CRDs and creating providers.
312
331
k8s_yaml (read_file ("./.tiltbuild/yaml/clusterctl.crd.yaml" ))
313
332
k8s_resource (
314
- objects = ["providers.clusterctl.cluster.x-k8s.io:CustomResourceDefinition:default" ],
333
+ objects = [
334
+ "providers.clusterctl.cluster.x-k8s.io:CustomResourceDefinition:default" ,
335
+ ],
315
336
new_name = "provider_crd" ,
316
337
)
317
338
318
339
def deploy_observability ():
319
340
if "promtail" in settings .get ("deploy_observability" , []):
320
- k8s_yaml (read_file ("./.tiltbuild/yaml/promtail.observability.yaml" ), allow_duplicates = True )
321
- k8s_resource (workload = "promtail" , extra_pod_selectors = [{"app" : "promtail" }], labels = ["observability" ], resource_deps = ["loki" ])
341
+ k8s_yaml (read_file (
342
+ "./.tiltbuild/yaml/promtail.observability.yaml" ,
343
+ ), allow_duplicates = True )
344
+ k8s_resource (workload = "promtail" , extra_pod_selectors = [
345
+ {"app" : "promtail" },
346
+ ], labels = ["observability" ], resource_deps = ["loki" ])
322
347
323
348
if "loki" in settings .get ("deploy_observability" , []):
324
- k8s_yaml (read_file ("./.tiltbuild/yaml/loki.observability.yaml" ), allow_duplicates = True )
325
- k8s_resource (workload = "loki" , port_forwards = "3100" , extra_pod_selectors = [{"app" : "loki" }], labels = ["observability" ])
349
+ k8s_yaml (
350
+ read_file ("./.tiltbuild/yaml/loki.observability.yaml" ),
351
+ allow_duplicates = True ,
352
+ )
353
+ k8s_resource (workload = "loki" , port_forwards = "3100" , extra_pod_selectors = [
354
+ {"app" : "loki" },
355
+ ], labels = ["observability" ])
326
356
327
357
cmd_button (
328
358
"loki:import logs" ,
329
- argv = ["sh" , "-c" , "cd ./hack/tools/log-push && go run ./main.go --log-path=$LOG_PATH" ],
359
+ argv = [
360
+ "sh" ,
361
+ "-c" ,
362
+ "cd ./hack/tools/log-push && go run ./main.go --log-path=$LOG_PATH" ,
363
+ ],
330
364
resource = "loki" ,
331
365
icon_name = "import_export" ,
332
366
text = "Import logs" ,
333
367
inputs = [
334
- text_input ("LOG_PATH" , label = "Log path, one of: GCS path, ProwJob URL or local folder" ),
368
+ text_input (
369
+ "LOG_PATH" ,
370
+ label = "Log path, one of: GCS path, ProwJob URL or local folder" ,
371
+ ),
335
372
],
336
373
)
337
374
338
375
if "grafana" in settings .get ("deploy_observability" , []):
339
- k8s_yaml (read_file ("./.tiltbuild/yaml/grafana.observability.yaml" ), allow_duplicates = True )
340
- k8s_resource (workload = "grafana" , port_forwards = "3001:3000" , extra_pod_selectors = [{"app" : "grafana" }], labels = ["observability" ])
376
+ k8s_yaml (read_file (
377
+ "./.tiltbuild/yaml/grafana.observability.yaml" ,
378
+ ), allow_duplicates = True )
379
+ k8s_resource (workload = "grafana" , port_forwards = "3001:3000" , extra_pod_selectors = [
380
+ {"app" : "grafana" },
381
+ ], labels = ["observability" ])
341
382
342
383
if "prometheus" in settings .get ("deploy_observability" , []):
343
- k8s_yaml (read_file ("./.tiltbuild/yaml/prometheus.observability.yaml" ), allow_duplicates = True )
344
- k8s_resource (workload = "prometheus-server" , new_name = "prometheus" , port_forwards = "9090" , extra_pod_selectors = [{"app" : "prometheus" }], labels = ["observability" ])
384
+ k8s_yaml (read_file (
385
+ "./.tiltbuild/yaml/prometheus.observability.yaml" ,
386
+ ), allow_duplicates = True )
387
+ k8s_resource (
388
+ workload = "prometheus-server" ,
389
+ new_name = "prometheus" ,
390
+ port_forwards = "9090" ,
391
+ extra_pod_selectors = [{"app" : "prometheus" }],
392
+ labels = ["observability" ],
393
+ )
345
394
346
395
def prepare_all ():
347
396
allow_k8s_arg = ""
348
397
if settings .get ("allowed_contexts" ):
349
398
if type (settings .get ("allowed_contexts" )) == "string" :
350
- allow_k8s_arg = "--allow-k8s-contexts={} " .format (settings .get ("allowed_contexts" ))
399
+ allow_k8s_arg = "--allow-k8s-contexts={} " .format (
400
+ settings .get ("allowed_contexts" ),
401
+ )
351
402
if type (settings .get ("allowed_contexts" )) == "list" :
352
403
for context in settings .get ("allowed_contexts" ):
353
- allow_k8s_arg = allow_k8s_arg + "--allow-k8s-contexts={} " .format (context )
404
+ allow_k8s_arg = allow_k8s_arg + \
405
+ "--allow-k8s-contexts={} " .format (context )
354
406
355
407
tools_arg = "--tools kustomize,envsubst "
356
408
cert_manager_arg = ""
@@ -361,7 +413,10 @@ def prepare_all():
361
413
# a dependency between these resources and provider resources.
362
414
kustomize_build_arg = "--kustomize-builds clusterctl.crd:./cmd/clusterctl/config/crd/ "
363
415
for tool in settings .get ("deploy_observability" , []):
364
- kustomize_build_arg = kustomize_build_arg + "--kustomize-builds {tool}.observability:./hack/observability/{tool}/ " .format (tool = tool )
416
+ kustomize_build_arg = kustomize_build_arg + \
417
+ "--kustomize-builds {tool}.observability:./hack/observability/{tool}/ " .format (
418
+ tool = tool ,
419
+ )
365
420
providers_arg = ""
366
421
for name in get_providers ():
367
422
p = providers .get (name )
0 commit comments