version: v0.11.0
updated: 2018-08-02
commit: 9c16c5946aef6d952b661bc4bf0a337fd4cb5a4a

Introduction

Skaffold

Skaffold is a command line tool that facilitates continuous development for Kubernetes applications. You can iterate on your application source code locally then deploy to local or remote Kubernetes clusters. Skaffold handles the workflow for building, pushing and deploying your application. It can also be used in an automated context such as a CI/CD pipeline to leverage the same workflow and tooling when moving applications to production.

Features

  • No server-side component. No overhead to your cluster.

  • Detect changes in your source code and automatically build/push/deploy.

  • Image tag management. Stop worrying about updating the image tags in Kubernetes manifests to push out changes during development.

  • Supports existing tooling and workflows. Build and deploy APIs make each implementation composable to support many different workflows.

  • Support for multiple application components. Build and deploy only the pieces of your stack that have changed.

  • Deploy regularly when saving files or run one off deployments using the same configuration.

Pluggability

Skaffold has a pluggable architecture that allows you to choose the tools in the developer workflow that work best for you.

plugability

Operating modes

skaffold dev

Updates your deployed application continually:

  • Watches your source code and the dependencies of your docker images for changes and runs a build and deploy when changes are detected

  • Streams logs from deployed containers

  • Continuous build-deploy loop, only warn on errors

skaffold run

Runs a Skaffold pipeline once, exits on any errors in the pipeline. Use for:

  • Continuous integration or continuous deployment pipelines

  • Sanity checking after iterating on your application

Demo