Skip to content
Switch branches/tags
Go to file

Latest commit

Because of how much K8s related code and pieces there are,
maintaining largely duplicative models is becoming cumbersome.

In trying to disentangle some of the pieces here, this will
start using the API model for a `Container`, which is almost
identical to the prior store version.

The biggest change is that the state representation now more
closely mirrors K8s and the other APIs. This is richer than
what the store model previously had, so there's some fairly
mechanical changes to look at whether fields are nil rather
than boolean.

Another minor change is that we can't store a `reference.Named`
on the API object, so the image as presented by K8s is stored
untouched. There is actually only one place that needs it,
which already conditionally filters out for a variety of reasons,
so it simply does the parsing and handles the error there (by
ignoring it, as was done previously). In practice, it should
never be able to fail parsing (or it wouldn't have been accepted
by K8s in the first place), so there should not really be a
difference here.

Lastly, the type definitions around `string` for container ID
and name are gone; these are now just strings in the API. The
engine converts them back to strongly-typed helpers upon
consumption for its own internal use. (These are useful within
internal code, but not really canonical in the apiserver models
at the moment. If desired, they can trivially be reintroduced
there in the future.)

Note that to limit the blast radius somewhat, a type alias is
used transitionally. A separate commit that eliminates that and
updates imports throughout the codebase will be done as its own
PR to avoid making this commit (which includes a handful of actual
logic changes) unreadable.

Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status GoDoc

Kubernetes for Prod, Tilt for Dev

Modern apps are made of too many services. They're everywhere and in constant communication.

Tilt powers multi-service development and makes sure they behave! Run tilt up to work in a complete dev environment configured for your team.

Tilt automates all the steps from a code change to a new process: watching files, building container images, and bringing your environment up-to-date. Think docker build && kubectl apply or docker-compose up.

Watch: Tilt in Two Minutes


Install Tilt

Installing the tilt binary is a one-step command.


curl -fsSL | bash


iex ((new-object net.webclient).DownloadString(''))

For specific package managers (Homebrew, Scoop, Conda, asdf), see the Installation Guide.

Run Tilt

New to Tilt? Our tutorial will get you started.

Configuring a Service? We have best practice guides for HTML, NodeJS, Python, Go, Java, and C#.

Optimizing a Tiltfile? Search for the function you need in our complete API reference.

Don’t Tilt Alone, Take This

Tilt Cloud

Are you seeing an error from a server that you don't even work on?

With Tilt Cloud, create web-based interactive reproductions of your local cluster’s state.

Save and share a snapshot with your team so that they can dig into the problem later. A snapshot lets you explore the status of running services, errors, logs, and more.

Community & Contributions

Questions: Join the Kubernetes slack and find us in the #tilt channel. Or file an issue. For code snippets of Tiltfile functionality shared by the Tilt community, check out Tilt Extensions.

Roadmap: Help us figure out what to prioritize. Sign up for Tilt office hours. We'll discuss your experience with Tilt and ask for reactions on visuals or prototypes we're working on.

Contribute: Check out our guidelines to contribute to Tilt's source code. To extend the capabilities of Tilt via new Tiltfile functionality, read more about Extensions.

Follow along: @tilt_dev on Twitter. Updates and announcements on the Tilt blog.

Help us make Tilt even better: Tilt sends anonymized usage data, so we can improve Tilt on every platform. Details in "What does Tilt send?". If you find a security issue in Tilt, see our security policy.

We expect everyone in our community (users, contributors, followers, and employees alike) to abide by our Code of Conduct.


Copyright 2018 Windmill Engineering

Licensed under the Apache License, Version 2.0