This repository contains a simplified version of Tilt that's used for teaching and talks.
In Search of a kubectl blame
Command at KubeCon 2020
Each subdirectory contains a sample app that you can run with:
cd $DIR
go run ./main.go
Each sample app does the same basic flow:
- Build and push the image (with
docker build
,docker push
, and some magic to detect the registry) - Apply the deployment (with
kubectl apply
) - Track the deployment's progress (with
kubernetes/client-go
)
The main difference between each project is how they track the deployment.
Creates a random image tag and label for each deployment. Watches that label.
Code: main.go
Uses the approach of kubectl rollout
, waiting for the deployment to report success.
Code:
- main.go
- rollout.go forked from rollout_status.go
Uses the approach of helm --wait
, looking up the replicaset and waiting for it to report success
Code:
Uses the approach of kubespy trace
, using owner references to find everything.
Code:
Uses the current Tilt approach, with a combination of owner refs and template hashes.
Code:
- main.go
- pod_template_hash.go computes labels, forked from pod_template.go
- owner_fetcher_go.go computes the owner tree, forked from owner_fetcher.go
Copyright 2020 Windmill Engineering
Licensed under the Apache License, Version 2.0