github.com/GoogleContainerTools/skaffold/v2@v2.13.2/docs-v2/content/en/docs/_index.md (about) 1 --- 2 title: "Skaffold 2.0 Documentation" 3 linkTitle: "Documentation" 4 weight: 20 5 menu: 6 main: 7 weight: 20 8 no_list: true 9 --- 10 11 <div class="pageinfo pageinfo-primary"> 12 <p class="banner-title">Skaffold v2 has been released!</p> 13 <p>You are viewing the Skaffold v2 documentation. View the archived v1 documentation 14 <a href="https://skaffold-v1.web.app/docs/" target="_blank">here.</a> 15 </p> 16 </div> 17 18 Skaffold is a command line tool that facilitates continuous development for container based & 19 Kubernetes applications. Skaffold handles the workflow for building, 20 pushing, and deploying your application, and provides building blocks for 21 creating CI/CD pipelines. This enables you to focus on iterating on your 22 application locally while Skaffold continuously deploys to your local or remote 23 Kubernetes cluster, local Docker environment or Cloud Run project. 24 25 ## Features 26 27 * Fast local Kubernetes Development 28 * **optimized "Source to Kubernetes"** - Skaffold detects changes in your source code and handles the pipeline to 29 **build**, **push**, **test** and **deploy** your application automatically with **policy-based image tagging** and **highly optimized, fast local workflows** 30 * **continuous feedback** - Skaffold automatically manages deployment logging and resource port-forwarding 31 * Skaffold projects work everywhere 32 * **share with other developers** - Skaffold is the easiest way to **share your project** with the world: `git clone` and `skaffold run` 33 * **context aware** - use Skaffold profiles, local user config, environment variables, and flags to easily incorporate differences across environments 34 * **platform aware** - use cross-platform and multi-platform **build** support, with automatic platform detection, to easily handle operating system and architecture differences between the development machine and Kubernetes cluster nodes. 35 * **CI/CD building blocks** - use `skaffold build`, `skaffold test` and `skaffold deploy` as part of your CI/CD pipeline, or simply `skaffold run` end-to-end 36 * **GitOps integration** - use `skaffold render` to build your images and render templated Kubernetes manifests for use in GitOps workflows 37 * skaffold.yaml - a single pluggable, declarative configuration for your project 38 * **skaffold init** - Skaffold can discover your build and deployment configuration and generate a Skaffold config 39 * **multi-component apps** - Skaffold supports applications with many components, making it great for microservice-based applications 40 * **bring your own tools** - Skaffold has a pluggable architecture, allowing for different implementations of the build and deploy stages 41 * Lightweight 42 * **client-side only** - Skaffold has no cluster-side component, so there's no overhead or maintenance burden to 43 your cluster 44 * **minimal pipeline** - Skaffold provides an opinionated, minimal pipeline to keep things simple 45 46 ## Demo 47 48  49 50 ## Skaffold Workflow and Architecture 51 52 Skaffold simplifies your development workflow by organizing common development 53 stages into one simple command. Every time you run `skaffold dev`, the system 54 55 1. Collects and watches your source code for changes 56 1. Syncs files directly to pods if user marks them as syncable 57 1. Builds artifacts from the source code 58 1. Tests the built artifacts using [container-structure-tests](https://github.com/GoogleContainerTools/container-structure-test) or custom scripts 59 1. Tags the artifacts 60 1. Pushes the artifacts 61 1. Deploys the artifacts 62 1. Monitors the deployed artifacts 63 1. Cleans up deployed artifacts on exit (Ctrl+C) 64 65 {{< alert title="Note" >}} 66 Any of these stages can be skipped. 67 {{< /alert >}} 68 69 The pluggable architecture is central to Skaffold's design, allowing you to use 70 your preferred tool or technology in each stage. Also, Skaffold's `profiles` feature 71 grants you the freedom to switch tools on the fly with a simple flag. 72 73 For example, if you are coding on a local machine, you can configure Skaffold to build artifacts 74 with your local Docker daemon and deploy them to minikube using `kubectl`. 75 When you finalize your design, you can switch to your production profile and start building with 76 Google Cloud Build and deploy with Helm. 77 78 Skaffold supports the following tools: 79 80 {{% tabs %}} 81 {{% tab "IMAGE BUILDERS" %}} 82 * [Dockerfile](https://docs.docker.com/engine/reference/builder/) 83 - locally with Docker 84 - in-cluster with [Kaniko](https://github.com/GoogleContainerTools/kaniko) 85 - on cloud with [Google Cloud Build](https://cloud.google.com/cloud-build/docs/) 86 * [Jib](https://github.com/GoogleContainerTools/jib) Maven and Gradle 87 - locally 88 - on cloud with [Google Cloud Build](https://cloud.google.com/cloud-build/docs/) 89 * [Bazel](https://bazel.build/) locally 90 * [Cloud Native Buildpacks](https://buildpacks.io/) 91 - locally with Docker 92 - on cloud with [Google Cloud Build](https://cloud.google.com/cloud-build/docs/) 93 * Custom script 94 - locally 95 - in-cluster 96 {{% /tab %}} 97 98 {{% tab "TESTERS" %}} 99 * [container-structure-test](https://github.com/GoogleContainerTools/container-structure-test) 100 * custom script 101 {{% /tab %}} 102 103 {{% tab "DEPLOYERS" %}} 104 * Kubernetes Command-Line Interface (`kubectl`) 105 * Helm 106 * kustomize 107 {{% /tab %}} 108 109 {{% tab "TAG POLICIES" %}} 110 * tag by git commit 111 * tag by current date & time 112 * tag by environment variables based template 113 * tag by digest of the Docker image 114 {{% /tab %}} 115 116 {{% tab "PUSH STRATEGIES" %}} 117 * don't push - keep the image on the local daemon 118 * push to registry 119 {{% /tab %}} 120 {{% /tabs %}} 121 122 123  124 125 126 Besides the above steps, Skaffold also automatically manages the following utilities for you: 127 128 * port-forwarding of deployed resources to your local machine using `kubectl port-forward` 129 * log aggregation from the deployed pods