Live data from Hacker News

Tilt – Local Kubernetes development with no stress

github.com

41–50 of 76 posts

Re: Tilt – Local Kubernetes development with no stress

#41
post #31

Earlier quoted context omitted.

Hey, I'm CEO of Tilt. Thanks for the feedback. The problem this solves is that distsys devs don't get enough feedback. You say you use docker-compose. Compared to docker-compose, Tilt has two advantages: 1) It updates the services as you edit them 2) Its UI makes it easy to see where errors are occurring, without you having to play 20 questions on the command-line or worry about things scrolling off-screen. The Tiltf…

Hi! Thanks for checking in on HN. I'm very interested in k8s productivity but had some trouble understanding what Tilt is actually doing--is it a replacement for minikube, hosted kubernetes, etc.? Is there an architecture diagram that shows what runs where?

There isn't an architecture diagram, and there should be. Thanks.

Tilt replaces `docker build && kubectl apply` or `docker-compose`. It watches your files, updates automatically, and gives you a UI that shows you error so you don't have to spelunk with kubectl.

It uses minikube or docker-for-desktop or a cloud k8s cluster (AKS, EKS, GKE, whatever).

It's like skaffold or draft or garden.

Does that help?

Re: Tilt – Local Kubernetes development with no stress

#42

Earlier quoted context omitted.

Docker containers/lxc require Linux. They are a Linux technology.

This is technically true but in practice Docker for Mac hides this from you and does not require a prohibitive amount of memory. 99% of the developers at my company have 16gb MBPs and we all build multiple Docker containers daily.

Thanks. I didn’t know the visualization system changed. I will check this out again.

Re: Tilt – Local Kubernetes development with no stress

#43

Earlier quoted context omitted.

Building containers requires Linux, so I need to run a VM or build on another box/the cloud.

This is somewhat outdated. Docker for Mac uses a relatively lightweight and largely-invisible virtualization layer now.

Thanks. I didn’t know the visualization system changed. I will check this out again.

Re: Tilt – Local Kubernetes development with no stress

#44
post #30
post #2

Uuuuh not using YAML. Controversial. (in the docker/k8s ecosphere, where YAML seems ubiquitous) I don't love YAML though I am not sure Starlark looks any more readable. YACL => Yet another config language...?

YAML, especially how it's used in k8s, is terrible. Writing it by hand is mind-numbingly toilful and extremely error prone, and templating YAML with Go (like Helm does) is a travesty. The most sensible approach I've seen is to use jsonnet+kubecfg. This lets me use a somewhat sane, composable, turing complete language that spits out a tree of k8s objects. I can use as much or little repeated definitions (or abstractio…

Have you seen https://github.com/stripe/skycfg ? It’s kind of early development stages tho

Re: Tilt – Local Kubernetes development with no stress

#45
post #37

Earlier quoted context omitted.

Running a VM is a total drag. I only have 16GB RAM. Then even if I run a VM, the docker registry is not the same as my production docker registry (GCR). I guess I can account for this with a variable in my helm templates, but then it’s just more complexity. Would you recommend minikube even with 16GB RAM? How much do you allot to the VM?

I'm a long-time minikube fan, I like the isolation (totally worth whatever minor VM memory overhead), reliability, ease-of-use; it feels like an appliance in a good way, which is something I traditionally associate with VMs. minikube contributed strongly to me personally getting excited about k8s in 2016. The local docker registry is an asset because it gives me flexible when offline.

Thank you for your report! I will look into this.

Re: Tilt – Local Kubernetes development with no stress

#46
post #7

Earlier quoted context omitted.

Is the problem with building containers that you don't have a Dockerfile and you don't want to spend time making one? Draft does that pretty well with Draftpacks, in my experience if there is a Draftpack for what you're using then the Dockerfile that draft spits out will get you pretty close to a workable container image with basically no effort, or sometimes even all the way there. I'm trying to understand what you…

I’m all aboard Docker, but I don’t use Linux natively, so I’d need to run a VM inside macOS, or have another box to build containers. Even if I did, I use GCR in production, so I’d need to template my container images in helm to use GCR only in production versus whatever I use locally for development. And what would that even be? I haven’t explored minikube to know what it does for local dev container registry. Anywa…

Sounds like you should try skaffold, it has a workflow for local builds, with fast hotloading to auto-rebuild your image. It also redeploys automatically too. If you're using Minikube it'll share the docker daemon so that you don't have to push anything anywhere.

I find Docker for Mac to be completely fine, and Minikube can be a resource hog, but still workable if you make your resource allocations configurable (i.e. don't request 1G for each pod in your local env, even if you need to do so in prod). There is an xhyve driver for Minikube that should reduce the footprint by not requiring you to run virtualbox.

Re: Tilt – Local Kubernetes development with no stress

#47
post #30
post #2

Uuuuh not using YAML. Controversial. (in the docker/k8s ecosphere, where YAML seems ubiquitous) I don't love YAML though I am not sure Starlark looks any more readable. YACL => Yet another config language...?

YAML, especially how it's used in k8s, is terrible. Writing it by hand is mind-numbingly toilful and extremely error prone, and templating YAML with Go (like Helm does) is a travesty. The most sensible approach I've seen is to use jsonnet+kubecfg. This lets me use a somewhat sane, composable, turing complete language that spits out a tree of k8s objects. I can use as much or little repeated definitions (or abstractio…

I don't see how Starlark is better... Does it validate what you write somehow - in a way that couldn't be done by validating a YAML?

Re: Tilt – Local Kubernetes development with no stress

#48
post #41

Earlier quoted context omitted.

Hi! Thanks for checking in on HN. I'm very interested in k8s productivity but had some trouble understanding what Tilt is actually doing--is it a replacement for minikube, hosted kubernetes, etc.? Is there an architecture diagram that shows what runs where?

There isn't an architecture diagram, and there should be. Thanks. Tilt replaces `docker build && kubectl apply` or `docker-compose`. It watches your files, updates automatically, and gives you a UI that shows you error so you don't have to spelunk with kubectl. It uses minikube or docker-for-desktop or a cloud k8s cluster (AKS, EKS, GKE, whatever). It's like skaffold or draft or garden. Does that help?

Does it allow you to replace the `docker build` step? Currently we use Nix's buildLayeredImage[0] to build our images and some custom machinery to generate our Kubernetes definitions from this, but I really like Tilt's status TUI.

[0]: https://grahamc.com/blog/nix-and-layered-docker-images

Re: Tilt – Local Kubernetes development with no stress

#49
post #41

Earlier quoted context omitted.

Hi! Thanks for checking in on HN. I'm very interested in k8s productivity but had some trouble understanding what Tilt is actually doing--is it a replacement for minikube, hosted kubernetes, etc.? Is there an architecture diagram that shows what runs where?

There isn't an architecture diagram, and there should be. Thanks. Tilt replaces `docker build && kubectl apply` or `docker-compose`. It watches your files, updates automatically, and gives you a UI that shows you error so you don't have to spelunk with kubectl. It uses minikube or docker-for-desktop or a cloud k8s cluster (AKS, EKS, GKE, whatever). It's like skaffold or draft or garden. Does that help?

"Tilt replaces `docker build && kubectl apply` or `docker-compose`. It watches your files, updates automatically, and gives you a UI that shows you error so you don't have to spelunk with kubectl." => that is very clear, consider merging https://github.com/windmilleng/tilt/pull/930 to add it to your readme

Re: Tilt – Local Kubernetes development with no stress

#50
post #31

I think the docs kind of misses what problem it solves and how it solves it. I do all the local stuff with docker-compose while using the same images for k8s deployments, how does this help me? Does this aim to replace docker-compose with k8s, or is this just for testing k8s resource changes in realtime, or is it testing your local k8s resource definitions against a remote cluster? Obviously this is useful for some p…

Hey, I'm CEO of Tilt. Thanks for the feedback. The problem this solves is that distsys devs don't get enough feedback. You say you use docker-compose. Compared to docker-compose, Tilt has two advantages: 1) It updates the services as you edit them 2) Its UI makes it easy to see where errors are occurring, without you having to play 20 questions on the command-line or worry about things scrolling off-screen. The Tiltf…

> There is a landing page at https://tilt.build which has more of the "why Tilt".

As a tangential by-the-way, I notice you're based in NYC. Of interest, Googlers working on Knative Build (hi Jason!) and Pivots working on Cloud Native Buildpacks (including me) are based in NYC also.

Post reply on HN