Photo by Joe Cox on Unsplash

Announcing ctlptl: Mess Around with Local Kubernetes without Consequences

At Tilt, we want to make Kubernetes an approachable environment for local dev.

We found ourselves spending a lot of time helping teams debug misconfigurations with their local cluster.

We wrote docs like Choosing a local dev cluster and example repos like kind-local, minikube-local, and k3d-local to help people get set up.

ctlptl is a culmination of what we’ve learned.

What is ctlptl?

ctlptl is a CLI for declaratively setting up local Kubernetes clusters.

Inspired by kubectl and ClusterAPI’s clusterctl, you declare your local cluster with YAML and use ctlptl to set it up.

How should I pronounce ctlptl?

We’ve talked a lot about this. We’re not any closer to a single answer. We’ve decided that these are all acceptable pronounciations:

  • Cattle paddle
  • Control pedal
  • Cartel patrol
  • Cuddle petal
  • Cuttle puddle

Who is ctlptl for?

ctlptl is a building block for platform teams setting up a multi-service dev environments locally.

To have a consistent environment across machines, you need to be able to stitch together:

  • a dev cluster
  • a dev registry
  • storage
  • mounts
  • cpu
  • memory

If one of these is off (e.g., one dev accidentally set their CPU too low), the environment is awful and uncomfortable.

ctlptl helps a single dev easily set up their dev environment according to best practices. A maintainer can give their team a one-liner for easy cluster setup.

Where do I start?

Check out ctlptl on GitHub for installation instructions and example configs.

To learn more about the pros and cons of different local dev clusters, Ellen Körbes can teach you how to break it down on dex.dev.

Related

Keep up with Developments in Multi-Service Development
 
 
 
Keep up with Developments in Multi-Service Development

Already have a Dockerfile and a Kubernetes config?

You’ll be able to setup Tilt in no time and start getting things done. Check out the docs! 

Having trouble developing your servers in Kubernetes?