Schema URL

Type: object

Any of

1. SkaffoldConfig object

Definitions

Activation object

criteria by which a profile is auto-activated.

command string

a Skaffold command for which the profile is auto-activated.

Examples: "dev"
env string

a key=pattern pair. The profile is auto-activated if an Environment Variable key matches the pattern. If the pattern starts with !, activation happens if the remaining pattern is not matched. The pattern matches if the Environment Variable value is exactly pattern, or the regex pattern is found in it. An empty pattern (e.g. env: "key=") always only matches if the Environment Variable is undefined or empty.

Examples: "ENV=production"
kubeContext string

a Kubernetes context for which the profile is auto-activated.

Examples: "minikube"
Artifact object

items that need to be built, along with the context in which they should be built.

BazelArtifact object

beta describes an artifact built with Bazel.

target string required

bazel build target to run.

Examples: "//:skaffold_example.tar"
args string[]

additional args to pass to bazel build.

Default: "[]"
Examples: "["-flag", "--otherflag"]"
BuildConfig object

contains all the configuration for the build steps.

ClusterDetails object

beta describes how to do an on-cluster build.

HTTPS_PROXY string

for kaniko pod.

HTTP_PROXY string

for kaniko pod.

concurrency integer

how many artifacts can be built concurrently. 0 means "no-limit" Defaults to 0.

dockerConfig object

contains information about the docker config.json to mount.

2 nested properties
path string

path to the docker config.json.

secretName string

Kubernetes secret that contains the config.json Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'.

namespace string

Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.

pullSecret string

path to the Google Cloud service account secret key file.

pullSecretMountPath string

path the pull secret will be mounted at within the running container.

pullSecretName string

name of the Kubernetes secret for pulling the files from the build context and pushing the final image. If given, the secret needs to contain the Google Cloud service account secret key under the key kaniko-secret.

Default: "kaniko-secret"
resources object

describes the resource requirements for the kaniko pod.

2 nested properties
limits object

stores the CPU/Memory requirements for the pod.

2 nested properties
cpu string

the number cores to be used.

Examples: "2`, `2.0` or `200m"
memory string

the amount of memory to allocate to the pod.

Examples: "1Gi` or `1000Mi"
requests object

stores the CPU/Memory requirements for the pod.

2 nested properties
cpu string

the number cores to be used.

Examples: "2`, `2.0` or `200m"
memory string

the amount of memory to allocate to the pod.

Examples: "1Gi` or `1000Mi"
timeout string

amount of time (in seconds) that this build is allowed to run. Defaults to 20 minutes (20m).

CustomArtifact object

alpha describes an artifact built from a custom build script written by the user. It can be used to build images with builders that aren't directly integrated with skaffold.

buildCommand string

command executed to build the image.

dependencies object

alpha used to specify dependencies for an artifact built by a custom build script. Either dockerfile or paths should be specified for file watching to work as expected.

4 nested properties
command string

represents a custom command that skaffold executes to obtain dependencies. The output of this command must be a valid JSON array.

dockerfile object

alpha used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile.

2 nested properties
buildArgs Record<string, string>

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

Default: "{}"
Examples: "{"key1": "value1", "key2": "value2", "key3": "{{.ENV_VARIABLE}}"}"
path string

locates the Dockerfile relative to workspace.

ignore string[]

specifies the paths that should be ignored by skaffold's file watcher. If a file exists in both paths and in ignore, it will be ignored, and will be excluded from both rebuilds and file synchronization. Will only work in conjunction with paths.

Default: "[]"
paths string[]

should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization.

Default: "[]"
CustomDependencies object

alpha used to specify dependencies for an artifact built by a custom build script. Either dockerfile or paths should be specified for file watching to work as expected.

command string

represents a custom command that skaffold executes to obtain dependencies. The output of this command must be a valid JSON array.

dockerfile object

alpha used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile.

2 nested properties
buildArgs Record<string, string>

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

Default: "{}"
Examples: "{"key1": "value1", "key2": "value2", "key3": "{{.ENV_VARIABLE}}"}"
path string

locates the Dockerfile relative to workspace.

ignore string[]

specifies the paths that should be ignored by skaffold's file watcher. If a file exists in both paths and in ignore, it will be ignored, and will be excluded from both rebuilds and file synchronization. Will only work in conjunction with paths.

Default: "[]"
paths string[]

should be set to the file dependencies for this artifact, so that the skaffold file watcher knows when to rebuild and perform file synchronization.

Default: "[]"
DateTimeTagger object

beta tags images with the build timestamp.

format string

formats the date and time. See #Time.Format.

Default: "2006-01-02_15-04-05.999_MST"
timezone string

sets the timezone for the date and time. See Time.LoadLocation. Defaults to the local timezone.

DeployConfig object

contains all the configuration needed by the deploy steps.

DockerArtifact object

beta describes an artifact built from a Dockerfile, usually using docker build.

buildArgs Record<string, string>

arguments passed to the docker build.

Default: "{}"
Examples: "{"key1": "value1", "key2": "value2"}"
cacheFrom string[]

the Docker images used as cache sources.

Default: "[]"
Examples: "["golang:1.10.1-alpine3.7", "alpine:3.7"]"
dockerfile string

locates the Dockerfile relative to workspace.

Default: "Dockerfile"
network string

passed through to docker and overrides the network configuration of docker builder. If unset, use whatever is configured in the underlying docker daemon. Valid modes are host: use the host's networking stack. bridge: use the bridged network configuration. none: no networking in the container.

Values: "host" "bridge" "none"
noCache boolean

used to pass in --no-cache to docker build to prevent caching.

Default: "false"
target string

Dockerfile target name to build.

DockerConfig object

contains information about the docker config.json to mount.

path string

path to the docker config.json.

secretName string

Kubernetes secret that contains the config.json Docker configuration. Note that the expected secret type is not 'kubernetes.io/dockerconfigjson' but 'Opaque'.

DockerfileDependency object

alpha used to specify a custom build artifact that is built from a Dockerfile. This allows skaffold to determine dependencies from the Dockerfile.

buildArgs Record<string, string>

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

Default: "{}"
Examples: "{"key1": "value1", "key2": "value2", "key3": "{{.ENV_VARIABLE}}"}"
path string

locates the Dockerfile relative to workspace.

EnvTemplateTagger object

beta tags images with a configurable template string.

template string required

used to produce the image name and tag. See golang text/template. The template is executed against the current environment, with those variables injected: IMAGE_NAME | Name of the image being built, as supplied in the artifacts section.

Examples: "{{.RELEASE}}-{{.IMAGE_NAME}}"
GitTagger object

beta tags images with the git tag or commit of the artifact's workspace.

variant string

determines the behavior of the git tagger. Valid variants are Tags (default): use git tags or fall back to abbreviated commit hash. CommitSha: use the full git commit sha. AbbrevCommitSha: use the abbreviated git commit sha. TreeSha: use the full tree hash of the artifact workingdir. AbbrevTreeSha: use the abbreviated tree hash of the artifact workingdir.

Values: "Tags" "CommitSha" "AbbrevCommitSha" "TreeSha" "AbbrevTreeSha"
GoogleCloudBuild object

beta describes how to do a remote build on Google Cloud Build. Docker and Jib artifacts can be built on Cloud Build. The projectId needs to be provided and the currently logged in user should be given permissions to trigger new builds.

concurrency integer

how many artifacts can be built concurrently. 0 means "no-limit" Defaults to 0.

diskSizeGb integer

disk size of the VM that runs the build. See Cloud Build Reference.

dockerImage string

image that runs a Docker build. See Cloud Builders.

Default: "gcr.io/cloud-builders/docker"
gradleImage string

image that runs a Gradle build. See Cloud Builders.

Default: "gcr.io/cloud-builders/gradle"
kanikoImage string

image that runs a Kaniko build. See Cloud Builders.

Default: "gcr.io/kaniko-project/executor"
machineType string

type of the VM that runs the build. See Cloud Build Reference.

mavenImage string

image that runs a Maven build. See Cloud Builders.

Default: "gcr.io/cloud-builders/mvn"
projectId string

ID of your Cloud Platform Project. If it is not provided, Skaffold will guess it from the image name. For example, given the artifact image name gcr.io/myproject/image, Skaffold will use the myproject GCP project.

timeout string

amount of time (in seconds) that this build should be allowed to run. See Cloud Build Reference.

HelmConventionConfig object

image config in the syntax of image.repository and image.tag.

explicitRegistry boolean

separates image.registry to the image config syntax. Useful for some charts e.g. postgresql.

Default: "false"
HelmDeploy object

beta uses the helm CLI to apply the charts to the cluster.

releases HelmRelease[] required

a list of Helm releases.

flags object

additional option flags that are passed on the command line to helm.

3 nested properties
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
HelmDeployFlags object

additional option flags that are passed on the command line to helm.

global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
HelmFQNConfig object

image config to use the FullyQualifiedImageName as param to set.

property string

defines the image config.

HelmImageStrategy object

adds image configurations to the Helm values file.

HelmPackaged object

parameters for packaging helm chart (helm package).

appVersion string

sets the appVersion on the chart to this version.

version string

sets the version on the chart to this semver version.

HelmRelease object

describes a helm release to be deployed.

chartPath string required

path to the Helm chart.

name string required

name of the Helm release.

imageStrategy object

adds image configurations to the Helm values file.

Any of: variant, object object, object object
namespace string

Kubernetes namespace.

overrides

key-value pairs. If present, Skaffold will build a Helm values file that overrides the original and use it to call Helm CLI (--f flag).

packaged object

parameters for packaging helm chart (helm package).

2 nested properties
appVersion string

sets the appVersion on the chart to this version.

version string

sets the version on the chart to this semver version.

recreatePods boolean

if true, Skaffold will send --recreate-pods flag to Helm CLI when upgrading a new version of a chart in subsequent dev loop deploy.

Default: "false"
remote boolean

specifies whether the chart path is remote, or exists on the host filesystem. remote: true implies skipBuildDependencies: true.

Default: "false"
setFiles Record<string, string>

key-value pairs. If present, Skaffold will send --set-file flag to Helm CLI and append all pairs after the flag.

Default: "{}"
setValueTemplates Record<string, string>

key-value pairs. If present, Skaffold will try to parse the value part of each key-value pair using environment variables in the system, then send --set flag to Helm CLI and append all parsed pairs after the flag.

Default: "{}"
setValues Record<string, string>

key-value pairs. If present, Skaffold will send --set flag to Helm CLI and append all pairs after the flag.

Default: "{}"
skipBuildDependencies boolean

should build dependencies be skipped.

Default: "false"
useHelmSecrets boolean

instructs skaffold to use secrets plugin on deployment.

Default: "false"
values Record<string, string>

key-value pairs supplementing the Helm values file.

Default: "{}"
valuesFiles string[]

paths to the Helm values files.

Default: "[]"
version string

version of the chart.

wait boolean

if true, Skaffold will send --wait flag to Helm CLI.

Default: "false"
JSONPatch object

patch to be applied by a profile.

path string required

position in the yaml where the operation takes place. For example, this targets the dockerfile of the first artifact built.

Examples: "/build/artifacts/0/docker/dockerfile"
from string

source position in the yaml, used for copy or move operations.

op string

operation carried by the patch: add, remove, replace, move, copy or test.

Default: "replace"
value

value to apply. Can be any portion of yaml.

JibArtifact object

alpha builds images using the Jib plugins for Maven and Gradle.

args string[]

additional build flags passed to the builder.

Default: "[]"
Examples: "["--no-build-cache"]"
project string

selects which sub-project to build for multi-module builds.

type string

the Jib builder type; normally determined automatically. Valid types are maven: for Maven. gradle: for Gradle.

Values: "maven" "gradle"
KanikoArtifact object

alpha describes an artifact built from a Dockerfile, with kaniko.

buildArgs Record<string, string>

arguments passed to the docker build. It also accepts environment variables via the go template syntax.

Default: "{}"
Examples: "{"key1": "value1", "key2": "value2", "key3": "{{.ENV_VARIABLE}}"}"
buildContext object

contains the different fields available to specify a Kaniko build context.

2 nested properties
gcsBucket string

GCS bucket to which sources are uploaded. Kaniko will need access to that bucket to download the sources.

localDir object

configures how Kaniko mounts sources directly via an emptyDir volume.

1 nested properties
initImage string

image used to run init container which mounts kaniko context.

cache object

configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.

2 nested properties
hostPath string

specifies a path on the host that is mounted to each pod as read only cache volume containing base images. If set, must exist on each node and prepopulated with kaniko-warmer.

repo string

a remote repository to store cached layers. If none is specified, one will be inferred from the image name. See Kaniko Caching.

dockerfile string

locates the Dockerfile relative to workspace.

Default: "Dockerfile"
flags string[]

additional flags to be passed to Kaniko command line. See Kaniko Additional Flags. Deprecated - instead the named, unique fields should be used, e.g. buildArgs, cache, target.

Default: "[]"
image string

Docker image used by the Kaniko pod. Defaults to the latest released version of gcr.io/kaniko-project/executor.

reproducible boolean

used to strip timestamps out of the built image.

Default: "false"
skipTLS boolean

skips TLS verification when pulling and pushing the image.

Default: "false"
target string

Dockerfile target name to build.

KanikoBuildContext object

contains the different fields available to specify a Kaniko build context.

gcsBucket string

GCS bucket to which sources are uploaded. Kaniko will need access to that bucket to download the sources.

localDir object

configures how Kaniko mounts sources directly via an emptyDir volume.

1 nested properties
initImage string

image used to run init container which mounts kaniko context.

KanikoCache object

configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.

hostPath string

specifies a path on the host that is mounted to each pod as read only cache volume containing base images. If set, must exist on each node and prepopulated with kaniko-warmer.

repo string

a remote repository to store cached layers. If none is specified, one will be inferred from the image name. See Kaniko Caching.

KubectlDeploy object

beta uses a client side kubectl apply to deploy manifests. You'll need a kubectl CLI version installed that's compatible with your cluster.

flags object

additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete).

3 nested properties
apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
manifests string[]

the Kubernetes yaml or json manifests.

Default: "["k8s/*.yaml"]"
remoteManifests string[]

Kubernetes manifests in remote clusters.

Default: "[]"
KubectlFlags object

additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete).

apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
KustomizeDeploy object

beta uses the kustomize CLI to "patch" a deployment for a target environment.

buildArgs string[]

additional args passed to kustomize build.

Default: "[]"
flags object

additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete).

3 nested properties
apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
path string

path to Kustomization files.

Default: "."
LocalBuild object

beta describes how to do a build on the local docker daemon and optionally push to a repository.

push boolean

should images be pushed to a registry. If not specified, images are pushed only if the current Kubernetes context connects to a remote cluster.

useBuildkit boolean

use BuildKit to build Docker images. If unspecified, uses the Docker default.

useDockerCLI boolean

use docker command-line interface instead of Docker Engine APIs.

Default: "false"
LocalDir object

configures how Kaniko mounts sources directly via an emptyDir volume.

initImage string

image used to run init container which mounts kaniko context.

Metadata object

holds an optional name of the project.

name string

an identifier for the project.

PortForwardResource object

describes a resource to port forward.

localPort integer

local port to forward to. If the port is unavailable, Skaffold will choose a random open port to forward to. Optional.

namespace string

namespace of the resource to port forward.

port integer

resource port that will be forwarded.

resourceName string

name of the Kubernetes resource to port forward.

resourceType string

Kubernetes type that should be port forwarded. Acceptable resource types include: Service, Pod and Controller resource type that has a pod spec: ReplicaSet, ReplicationController, Deployment, StatefulSet, DaemonSet, Job, CronJob.

Profile object

beta profiles are used to override any build, test or deploy configuration.

name string required

a unique profile name.

Examples: "profile-prod"
activation Activation[]

criteria by which a profile can be auto-activated. The profile is auto-activated if any one of the activations are triggered. An activation is triggered if all of the criteria (env, kubeContext, command) are triggered.

build object

contains all the configuration for the build steps.

Any of: object object, object object, object object, object object
deploy object

contains all the configuration needed by the deploy steps.

Any of: object object, object object, object object, object object
patches JSONPatch[]

patches applied to the configuration. Patches use the JSON patch notation.

portForward PortForwardResource[]

describes user defined resources to port-forward.

test TestCase[]

describes how images are tested.

ResourceRequirement object

stores the CPU/Memory requirements for the pod.

cpu string

the number cores to be used.

Examples: "2`, `2.0` or `200m"
memory string

the amount of memory to allocate to the pod.

Examples: "1Gi` or `1000Mi"
ResourceRequirements object

describes the resource requirements for the kaniko pod.

limits object

stores the CPU/Memory requirements for the pod.

2 nested properties
cpu string

the number cores to be used.

Examples: "2`, `2.0` or `200m"
memory string

the amount of memory to allocate to the pod.

Examples: "1Gi` or `1000Mi"
requests object

stores the CPU/Memory requirements for the pod.

2 nested properties
cpu string

the number cores to be used.

Examples: "2`, `2.0` or `200m"
memory string

the amount of memory to allocate to the pod.

Examples: "1Gi` or `1000Mi"
ResourceType string

describes the Kubernetes resource types used for port forwarding.

ShaTagger object

beta tags images with their sha256 digest.

SkaffoldConfig object

holds the fields parsed from the Skaffold configuration file (skaffold.yaml).

apiVersion string required

version of the configuration.

kind string required

always Config.

Default: "Config"
build object

contains all the configuration for the build steps.

Any of: object object, object object, object object, object object
deploy object

contains all the configuration needed by the deploy steps.

Any of: object object, object object, object object, object object
metadata object

holds an optional name of the project.

1 nested properties
name string

an identifier for the project.

portForward PortForwardResource[]

describes user defined resources to port-forward.

profiles Profile[]

beta can override be used to build, test or deploy configuration.

test TestCase[]

describes how images are tested.

Sync object

alpha specifies what files to sync into the container. This is a list of sync rules indicating the intent to sync for source files.

infer string[]

file patterns which may be synced into the container. The container destination is inferred by the builder. Currently only available for docker artifacts.

Default: "[]"
manual SyncRule[]

manual sync rules indicating the source and destination.

SyncRule object

specifies which local files to sync to remote folders.

dest string required

destination path in the container where the files should be synced to.

Examples: ""app/""
src string required

a glob pattern to match local paths against. Directories should be delimited by / on all platforms.

Examples: ""css/**/*.css""
strip string

specifies the path prefix to remove from the source path when transplanting the files into the destination folder.

Examples: ""css/""
TagPolicy object

contains all the configuration for the tagging step.

dateTime object

beta tags images with the build timestamp.

2 nested properties
format string

formats the date and time. See #Time.Format.

Default: "2006-01-02_15-04-05.999_MST"
timezone string

sets the timezone for the date and time. See Time.LoadLocation. Defaults to the local timezone.

envTemplate object

beta tags images with a configurable template string.

1 nested properties
template string required

used to produce the image name and tag. See golang text/template. The template is executed against the current environment, with those variables injected: IMAGE_NAME | Name of the image being built, as supplied in the artifacts section.

Examples: "{{.RELEASE}}-{{.IMAGE_NAME}}"
gitCommit object

beta tags images with the git tag or commit of the artifact's workspace.

1 nested properties
variant string

determines the behavior of the git tagger. Valid variants are Tags (default): use git tags or fall back to abbreviated commit hash. CommitSha: use the full git commit sha. AbbrevCommitSha: use the abbreviated git commit sha. TreeSha: use the full tree hash of the artifact workingdir. AbbrevTreeSha: use the abbreviated tree hash of the artifact workingdir.

Values: "Tags" "CommitSha" "AbbrevCommitSha" "TreeSha" "AbbrevTreeSha"
sha256 object

beta tags images with their sha256 digest.

TestCase object

a list of structure tests to run on images that Skaffold builds.

image string required

artifact on which to run those tests.

Examples: "gcr.io/k8s-skaffold/example"
structureTests string[]

the Container Structure Tests to run on that artifact.

Default: "[]"
Examples: "["./test/*"]"