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