CLI

Skaffold command-line interface provides the following commands:

End-to-end pipelines:

  • skaffold run - to build & deploy once
  • skaffold dev - to trigger the watch loop build & deploy workflow with cleanup on exit

Pipeline building blocks for CI/CD:

Getting started with a new project:

Other Commands:

Global flags

Flag Description
-h, --help Prints the HELP file for the current command.
-v, --verbosity LOG-LEVEL Uses a specific log level. Available log levels are info, warn, error, fatal, debug and trace. Default value is warn.

Global environment variables

Flag Description
SKAFFOLD_UPDATE_CHECK Enables checking for latest version of the Skaffold binary. By default it’s true.

Skaffold commands

skaffold



End-to-end pipelines:
  run               Run a pipeline
  dev               Run a pipeline in development mode
  debug             Run a pipeline in debug mode

Pipeline building blocks for CI/CD:
  build             Build the artifacts
  deploy            Deploy pre-built artifacts
  delete            Delete the deployed application
  render            Perform all image builds, and output rendered kubernetes manifests

Getting started with a new project:
  init              Generate configuration for deploying an application
  fix               Update old configuration to newest schema version

Other Commands:
  completion        Output shell completion for the given shell (bash or zsh)
  config            Interact with the Skaffold configuration
  diagnose          Run a diagnostic on Skaffold
  version           Print the version information

Use "skaffold <command> --help" for more information about a given command.
Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_COLOR (same as --color)
  • SKAFFOLD_VERBOSITY (same as --verbosity)

skaffold build

Build the artifacts



Examples:
  # Build all the artifacts
  skaffold build

  # Build artifacts with a profile activated
  skaffold build -p <profile>

  # Build artifacts whose image name contains <db>
  skaffold build -b <db>

  # Quietly build artifacts and output the image names as json
  skaffold build -q > build_result.json

  # Build the artifacts and then deploy them
  skaffold build -q > skaffold deploy

Options:
  -b, --build-image=[]: Choose which artifacts to build. Artifacts with image names that contain the expression will be built only. Default is to build sources for all artifacts
      --cache-artifacts=true: Set to false to disable default caching of artifacts
      --cache-file='': Specify the location of the cache file (default $HOME/.skaffold/cache)
  -c, --config='': File for global configurations (defaults to $HOME/.skaffold/config)
  -d, --default-repo='': Default repository value (overrides global config)
      --enable-rpc=false: Enable gRPC for exposing Skaffold events (true by default for `skaffold dev`)
      --file-output='': Filename to write build images to
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --insecure-registry=[]: Target registries for built images which are not secure
      --kube-context='': Deploy to this kubernetes context
  -n, --namespace='': Run deployments in the specified namespace
  -o, --output={{json .}}: Used in conjunction with --quiet flag. Format output with go-template. For full struct documentation, see https://godoc.org/github.com/GoogleContainerTools/skaffold/cmd/skaffold/app/flags#BuildOutput
  -p, --profile=[]: Activate profiles by name
  -q, --quiet=false: Suppress the build output and print image built on success. See --output to format output.
      --rpc-http-port=50052: tcp port to expose event REST API over HTTP
      --rpc-port=50051: tcp port to expose event API
      --skip-tests=false: Whether to skip the tests after building
      --toot=false: Emit a terminal beep after the deploy is complete

Usage:
  skaffold build [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_BUILD_IMAGE (same as --build-image)
  • SKAFFOLD_CACHE_ARTIFACTS (same as --cache-artifacts)
  • SKAFFOLD_CACHE_FILE (same as --cache-file)
  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_ENABLE_RPC (same as --enable-rpc)
  • SKAFFOLD_FILE_OUTPUT (same as --file-output)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_INSECURE_REGISTRY (same as --insecure-registry)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_OUTPUT (same as --output)
  • SKAFFOLD_PROFILE (same as --profile)
  • SKAFFOLD_QUIET (same as --quiet)
  • SKAFFOLD_RPC_HTTP_PORT (same as --rpc-http-port)
  • SKAFFOLD_RPC_PORT (same as --rpc-port)
  • SKAFFOLD_SKIP_TESTS (same as --skip-tests)
  • SKAFFOLD_TOOT (same as --toot)

skaffold completion

Output shell completion for the given shell (bash or zsh)



Usage:
  skaffold completion SHELL [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


skaffold config

Interact with the Skaffold configuration



Available Commands:
  list        List all values set in the global Skaffold config
  set         Set a value in the global Skaffold config
  unset       Unset a value in the global Skaffold config

Use "skaffold <command> --help" for more information about a given command.


skaffold config list

List all values set in the global Skaffold config



Options:
  -a, --all=false: Show values for all kubecontexts
  -c, --config='': Path to Skaffold config
  -k, --kube-context='': Kubectl context to set values against

Usage:
  skaffold config list [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_ALL (same as --all)
  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)

skaffold config set

Set a value in the global Skaffold config



Examples:
  # Mark a registry as insecure
  skaffold config set insecure-registries <insecure1.io>

  # Globally set the default image repository
  skaffold config set default-repo <myrepo>

  # Disable pushing images for a given Kubernetes context
  skaffold config set --kube-context <mycluster> local-cluster true

Options:
  -c, --config='': Path to Skaffold config
  -g, --global=false: Set value for global config
  -k, --kube-context='': Kubectl context to set values against

Usage:
  skaffold config set [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_GLOBAL (same as --global)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)

skaffold config unset

Unset a value in the global Skaffold config



Options:
  -c, --config='': Path to Skaffold config
  -g, --global=false: Set value for global config
  -k, --kube-context='': Kubectl context to set values against

Usage:
  skaffold config unset [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_GLOBAL (same as --global)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)

skaffold debug

Run a pipeline in debug mode



Options:
      --cache-artifacts=true: Set to false to disable default caching of artifacts
      --cache-file='': Specify the location of the cache file (default $HOME/.skaffold/cache)
      --cleanup=true: Delete deployments after dev or debug mode is interrupted
  -c, --config='': File for global configurations (defaults to $HOME/.skaffold/config)
  -d, --default-repo='': Default repository value (overrides global config)
      --enable-rpc=false: Enable gRPC for exposing Skaffold events (true by default for `skaffold dev`)
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --force=true: Recreate kubernetes resources if necessary for deployment (warning: might cause downtime!)
      --insecure-registry=[]: Target registries for built images which are not secure
      --kube-context='': Deploy to this kubernetes context
  -l, --label=[]: Add custom labels to deployed objects. Set multiple times for multiple labels
  -n, --namespace='': Run deployments in the specified namespace
      --no-prune=false: Skip removing images and containers built by Skaffold
      --no-prune-children=false: Skip removing layers reused by Skaffold
      --port-forward=false: Port-forward exposed container ports within pods
  -p, --profile=[]: Activate profiles by name
      --rpc-http-port=50052: tcp port to expose event REST API over HTTP
      --rpc-port=50051: tcp port to expose event API
      --skip-tests=false: Whether to skip the tests after building
      --tail=true: Stream logs from deployed objects
      --toot=false: Emit a terminal beep after the deploy is complete

Usage:
  skaffold debug [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_CACHE_ARTIFACTS (same as --cache-artifacts)
  • SKAFFOLD_CACHE_FILE (same as --cache-file)
  • SKAFFOLD_CLEANUP (same as --cleanup)
  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_ENABLE_RPC (same as --enable-rpc)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_FORCE (same as --force)
  • SKAFFOLD_INSECURE_REGISTRY (same as --insecure-registry)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)
  • SKAFFOLD_LABEL (same as --label)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_NO_PRUNE (same as --no-prune)
  • SKAFFOLD_NO_PRUNE_CHILDREN (same as --no-prune-children)
  • SKAFFOLD_PORT_FORWARD (same as --port-forward)
  • SKAFFOLD_PROFILE (same as --profile)
  • SKAFFOLD_RPC_HTTP_PORT (same as --rpc-http-port)
  • SKAFFOLD_RPC_PORT (same as --rpc-port)
  • SKAFFOLD_SKIP_TESTS (same as --skip-tests)
  • SKAFFOLD_TAIL (same as --tail)
  • SKAFFOLD_TOOT (same as --toot)

skaffold delete

Delete the deployed application



Options:
  -c, --config='': File for global configurations (defaults to $HOME/.skaffold/config)
  -d, --default-repo='': Default repository value (overrides global config)
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --kube-context='': Deploy to this kubernetes context
  -n, --namespace='': Run deployments in the specified namespace
  -p, --profile=[]: Activate profiles by name

Usage:
  skaffold delete [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_PROFILE (same as --profile)

skaffold deploy

Deploy pre-built artifacts



Options:
  -a, --build-artifacts=: Filepath containing build output.
E.g. build.out created by running skaffold build --quiet -o "{{json .}}" > build.out
  -c, --config='': File for global configurations (defaults to $HOME/.skaffold/config)
  -d, --default-repo='': Default repository value (overrides global config)
      --enable-rpc=false: Enable gRPC for exposing Skaffold events (true by default for `skaffold dev`)
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --force=false: Recreate kubernetes resources if necessary for deployment (default false, warning: might cause downtime!)
  -i, --images=: A list of pre-built images to deploy
      --kube-context='': Deploy to this kubernetes context
  -l, --label=[]: Add custom labels to deployed objects. Set multiple times for multiple labels
  -n, --namespace='': Run deployments in the specified namespace
  -p, --profile=[]: Activate profiles by name
      --rpc-http-port=50052: tcp port to expose event REST API over HTTP
      --rpc-port=50051: tcp port to expose event API
      --tail=false: Stream logs from deployed objects (default false)
      --toot=false: Emit a terminal beep after the deploy is complete

Usage:
  skaffold deploy [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_BUILD_ARTIFACTS (same as --build-artifacts)
  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_ENABLE_RPC (same as --enable-rpc)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_FORCE (same as --force)
  • SKAFFOLD_IMAGES (same as --images)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)
  • SKAFFOLD_LABEL (same as --label)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_PROFILE (same as --profile)
  • SKAFFOLD_RPC_HTTP_PORT (same as --rpc-http-port)
  • SKAFFOLD_RPC_PORT (same as --rpc-port)
  • SKAFFOLD_TAIL (same as --tail)
  • SKAFFOLD_TOOT (same as --toot)

skaffold dev

Run a pipeline in development mode



Options:
      --cache-artifacts=true: Set to false to disable default caching of artifacts
      --cache-file='': Specify the location of the cache file (default $HOME/.skaffold/cache)
      --cleanup=true: Delete deployments after dev or debug mode is interrupted
  -c, --config='': File for global configurations (defaults to $HOME/.skaffold/config)
  -d, --default-repo='': Default repository value (overrides global config)
      --enable-rpc=false: Enable gRPC for exposing Skaffold events (true by default for `skaffold dev`)
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --force=true: Recreate kubernetes resources if necessary for deployment (warning: might cause downtime!)
      --insecure-registry=[]: Target registries for built images which are not secure
      --kube-context='': Deploy to this kubernetes context
  -l, --label=[]: Add custom labels to deployed objects. Set multiple times for multiple labels
  -n, --namespace='': Run deployments in the specified namespace
      --no-prune=false: Skip removing images and containers built by Skaffold
      --no-prune-children=false: Skip removing layers reused by Skaffold
      --port-forward=false: Port-forward exposed container ports within pods
  -p, --profile=[]: Activate profiles by name
      --render-only=false: Print rendered kubernetes manifests instead of deploying them
      --rpc-http-port=50052: tcp port to expose event REST API over HTTP
      --rpc-port=50051: tcp port to expose event API
      --skip-tests=false: Whether to skip the tests after building
      --tail=true: Stream logs from deployed objects
      --toot=false: Emit a terminal beep after the deploy is complete
      --trigger='notify': How is change detection triggered? (polling, notify, or manual)
  -w, --watch-image=[]: Choose which artifacts to watch. Artifacts with image names that contain the expression will be watched only. Default is to watch sources for all artifacts
  -i, --watch-poll-interval=1000: Interval (in ms) between two checks for file changes

Usage:
  skaffold dev [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_CACHE_ARTIFACTS (same as --cache-artifacts)
  • SKAFFOLD_CACHE_FILE (same as --cache-file)
  • SKAFFOLD_CLEANUP (same as --cleanup)
  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_ENABLE_RPC (same as --enable-rpc)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_FORCE (same as --force)
  • SKAFFOLD_INSECURE_REGISTRY (same as --insecure-registry)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)
  • SKAFFOLD_LABEL (same as --label)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_NO_PRUNE (same as --no-prune)
  • SKAFFOLD_NO_PRUNE_CHILDREN (same as --no-prune-children)
  • SKAFFOLD_PORT_FORWARD (same as --port-forward)
  • SKAFFOLD_PROFILE (same as --profile)
  • SKAFFOLD_RENDER_ONLY (same as --render-only)
  • SKAFFOLD_RPC_HTTP_PORT (same as --rpc-http-port)
  • SKAFFOLD_RPC_PORT (same as --rpc-port)
  • SKAFFOLD_SKIP_TESTS (same as --skip-tests)
  • SKAFFOLD_TAIL (same as --tail)
  • SKAFFOLD_TOOT (same as --toot)
  • SKAFFOLD_TRIGGER (same as --trigger)
  • SKAFFOLD_WATCH_IMAGE (same as --watch-image)
  • SKAFFOLD_WATCH_POLL_INTERVAL (same as --watch-poll-interval)

skaffold diagnose

Run a diagnostic on Skaffold



Options:
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
  -p, --profile=[]: Activate profiles by name

Usage:
  skaffold diagnose [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_PROFILE (same as --profile)

skaffold fix

Update old configuration to newest schema version



Options:
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --overwrite=false: Overwrite original config with fixed config

Usage:
  skaffold fix [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_OVERWRITE (same as --overwrite)

skaffold init

Generate configuration for deploying an application



Options:
      --analyze=false: Print all discoverable Dockerfiles and images in JSON format to stdout
  -a, --artifact=[]: '='-delimited Dockerfile/image pair, or JSON string, to generate build artifact
(example: --artifact='{"builder":"Docker","payload":{"path":"/web/Dockerfile.web"},"image":"gcr.io/web-project/image"}')
      --compose-file='': Initialize from a docker-compose file
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --force=false: Force the generation of the Skaffold config
      --skip-build=false: Skip generating build artifacts in Skaffold config

Usage:
  skaffold init [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_ANALYZE (same as --analyze)
  • SKAFFOLD_ARTIFACT (same as --artifact)
  • SKAFFOLD_COMPOSE_FILE (same as --compose-file)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_FORCE (same as --force)
  • SKAFFOLD_SKIP_BUILD (same as --skip-build)

skaffold options

The following options can be passed to any command:

      --color=34: Specify the default output color in ANSI escape codes
  -v, --verbosity='warning': Log level (debug, info, warn, error, fatal, panic)


skaffold render

Perform all image builds, and output rendered kubernetes manifests



Options:
  -d, --default-repo='': Default repository value (overrides global config)
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --loud=false: Show the build logs and output
  -n, --namespace='': Run deployments in the specified namespace
      --output='': file to write rendered manifests to
  -p, --profile=[]: Activate profiles by name

Usage:
  skaffold render [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_LOUD (same as --loud)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_OUTPUT (same as --output)
  • SKAFFOLD_PROFILE (same as --profile)

skaffold run

Run a pipeline



Examples:
  # Build, test, deploy and tail the logs
  skaffold run --tail

  # Run with a given profile
  skaffold run -p <profile>

Options:
      --cache-artifacts=true: Set to false to disable default caching of artifacts
      --cache-file='': Specify the location of the cache file (default $HOME/.skaffold/cache)
      --cleanup=true: Delete deployments after dev or debug mode is interrupted
  -c, --config='': File for global configurations (defaults to $HOME/.skaffold/config)
  -d, --default-repo='': Default repository value (overrides global config)
      --enable-rpc=false: Enable gRPC for exposing Skaffold events (true by default for `skaffold dev`)
  -f, --filename='skaffold.yaml': Filename or URL to the pipeline file
      --force=true: Recreate kubernetes resources if necessary for deployment (warning: might cause downtime!)
      --insecure-registry=[]: Target registries for built images which are not secure
      --kube-context='': Deploy to this kubernetes context
  -l, --label=[]: Add custom labels to deployed objects. Set multiple times for multiple labels
  -n, --namespace='': Run deployments in the specified namespace
      --no-prune=false: Skip removing images and containers built by Skaffold
      --no-prune-children=false: Skip removing layers reused by Skaffold
  -p, --profile=[]: Activate profiles by name
      --render-only=false: Print rendered kubernetes manifests instead of deploying them
      --rpc-http-port=50052: tcp port to expose event REST API over HTTP
      --rpc-port=50051: tcp port to expose event API
      --skip-tests=false: Whether to skip the tests after building
  -t, --tag='': The optional custom tag to use for images which overrides the current Tagger configuration
      --tail=false: Stream logs from deployed objects (default false)
      --toot=false: Emit a terminal beep after the deploy is complete

Usage:
  skaffold run [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_CACHE_ARTIFACTS (same as --cache-artifacts)
  • SKAFFOLD_CACHE_FILE (same as --cache-file)
  • SKAFFOLD_CLEANUP (same as --cleanup)
  • SKAFFOLD_CONFIG (same as --config)
  • SKAFFOLD_DEFAULT_REPO (same as --default-repo)
  • SKAFFOLD_ENABLE_RPC (same as --enable-rpc)
  • SKAFFOLD_FILENAME (same as --filename)
  • SKAFFOLD_FORCE (same as --force)
  • SKAFFOLD_INSECURE_REGISTRY (same as --insecure-registry)
  • SKAFFOLD_KUBE_CONTEXT (same as --kube-context)
  • SKAFFOLD_LABEL (same as --label)
  • SKAFFOLD_NAMESPACE (same as --namespace)
  • SKAFFOLD_NO_PRUNE (same as --no-prune)
  • SKAFFOLD_NO_PRUNE_CHILDREN (same as --no-prune-children)
  • SKAFFOLD_PROFILE (same as --profile)
  • SKAFFOLD_RENDER_ONLY (same as --render-only)
  • SKAFFOLD_RPC_HTTP_PORT (same as --rpc-http-port)
  • SKAFFOLD_RPC_PORT (same as --rpc-port)
  • SKAFFOLD_SKIP_TESTS (same as --skip-tests)
  • SKAFFOLD_TAG (same as --tag)
  • SKAFFOLD_TAIL (same as --tail)
  • SKAFFOLD_TOOT (same as --toot)

skaffold version

Print the version information



Options:
  -o, --output={{.Version}}
: Format output with go-template. For full struct documentation, see https://godoc.org/github.com/GoogleContainerTools/skaffold/pkg/skaffold/version#Info

Usage:
  skaffold version [options]

Use "skaffold options" for a list of global command-line options (applies to all commands).


Env vars:

  • SKAFFOLD_OUTPUT (same as --output)