skaffold
Easy and Repeatable Kubernetes Development
A Go command-line tool from Google that watches Kubernetes app source for changes and automates build, push, and deploy cycles for local dev and CI.
Skaffold is a command-line tool (a program you run in a terminal) that automates the repetitive steps involved in developing an application that runs on Kubernetes. Kubernetes is a system for running and managing software in containers — packaged bundles that include everything an application needs to run.
Without Skaffold, a developer working on a Kubernetes application has to manually rebuild their code into a container image, push that image to a storage location, and then update their running cluster to use the new image — every single time they make a change. Skaffold watches your source code for changes and does all of those steps automatically, so you can stay focused on writing code.
Key features include automatic detection of code changes, fast build-and-deploy cycles, and the ability to aggregate logs from your running services directly in your terminal. It forwards ports from your cluster to your local machine so you can test your application as if it were running locally. It also supports building multi-component applications — apps made up of several separate pieces — and can integrate with different build and deployment tools through a pluggable architecture.
Skaffold is also useful for CI/CD pipelines (automated workflows for testing and releasing software). It runs entirely on your local machine with no components installed in the cluster itself. It is built in Go by GoogleContainerTools and is aimed at developers building containerized applications on Kubernetes.
Where it fits
- Run skaffold dev to rebuild and redeploy a Kubernetes app on every code save
- Use skaffold in a CI pipeline to build and release multi-service apps
- Port-forward cluster services to localhost while iterating on code
- Aggregate logs from many pods into one terminal stream