Re:Tilt: dev environment as code
by patwoz on Saturday April 26, 2025 @05:42PM
(#43807456)
How does Tilt compare to “skaffold dev“? We use skaffold exactly for that purpose. To develop within a the cluster.
[ Parent
| on HN ]
Re:Tilt: dev environment as code
by eats_indigo on Saturday April 26, 2025 @06:21PM
(#43807733)
Migrated from Skaffold to Tilt at my last co, found it was much more easier to configure granular rebuild rules, which lead to faster dev loop cycles
Any catch?
Re:Tilt: dev environment as code
by turtlebits on Saturday April 26, 2025 @05:56PM
(#43807561)
Skaffold works but its DX is pretty poor. Too many knobs via yaml- tilt has just enough magic that it doesn't feel like a chore to setup local dev.
I've always appreciated that Tilt chose Starlark instead of YAML. Makes things so much cleaner!
Re:Tilt: dev environment as code
by tomjakubowski on Saturday April 26, 2025 @06:17PM
(#43807708)
Well, now you've really got me interested. Almost every case of a YAML eDSL would be better served by Starlark instead, in my Bazel-brained opinion.
I think Tilt Extensions highlights the combined power and composability that using Starlarks brings to Tilt: https://docs.tilt.dev/extensions.html.
Want to create a Kubernetes secret? It's as simple as:
load('ext://secret', 'secret_yaml_generic')
k8s_yaml(secret_yaml_generic(...))
Want to create that secret from Vault instead? load('ext://vault_client', 'vault_read_secret', 'vault_set_env_vars')
vault_set_env_vars('https://localhost:8200','mytoken')
my_foo = vault_read_secret('path/myfoo', 'value')
my_bar = vault_read_secret('path/mybar', 'foobar')Much more flexible than Skaffold thanks to Starlark config vs. a rigid YAML structure.
Starlark does allow for much more concise and powerful config specification. I am building https://github.com/claceio/clace, which is an application server for teams to deploy internal tools.
Clace uses Starlark for defining apps, instead of something like YAML. https://github.com/claceio/clace/blob/main/examples/utils.st... is a config file which defines around seven apps (apps are downloaded and deployed directly from git).
Clace uses Starlark for defining app level routing rules also. This avoids the need to use a nginx like DSL for routing.