Schema URL

Type: object

Any of

1. SkaffoldConfig object

Definitions

Action object

describes a user defined action defined by a list of container to execute.

containers VerifyContainer[] required

containers list to execute as part of the custom action.

name string required

unique name assigned to the action.

executionMode object

describes the configuration to use to execute an action.

2 nested properties
kubernetesCluster object

uses the kubectl CLI to create veriy test case container in a kubernetes cluster.

2 nested properties
jobManifestPath string

path to the kubernetes Job manifest to use for the verify test This manifest will be deployed into the cluster with the Container information replaced by the information in the Container field.

overrides string

inline JSON override to use for the generated kubernetes Job. If this is non-empty, it is used to override the generated object. Similar to the --overrides kubectl flag.

local object

uses the docker CLI to create verify test case containers on the host machine in Docker.

1 nested properties
useLocalImages boolean

if true, will first check if the containers images exist locally before triggering a pull. Defaults to false.

Default: "false"
failFast boolean

indicates if the action should be executed with a fail-fast strategy or not (fail-safe). Defaults to true.

timeout integer

indicates the max time (in seconds) that the action is allowed to run.

ActionExecutionModeConfig object

describes the configuration to use to execute an action.

kubernetesCluster object

uses the kubectl CLI to create veriy test case container in a kubernetes cluster.

2 nested properties
jobManifestPath string

path to the kubernetes Job manifest to use for the verify test This manifest will be deployed into the cluster with the Container information replaced by the information in the Container field.

overrides string

inline JSON override to use for the generated kubernetes Job. If this is non-empty, it is used to override the generated object. Similar to the --overrides kubectl flag.

local object

uses the docker CLI to create verify test case containers on the host machine in Docker.

1 nested properties
useLocalImages boolean

if true, will first check if the containers images exist locally before triggering a pull. Defaults to false.

Default: "false"
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.

ArtifactDependency object

describes a specific build dependency for an artifact.

image string required

a reference to an artifact's image name.

alias string

a token that is replaced with the image reference in the builder definition files. For example, the docker builder will use the alias as a build-arg key. Defaults to the value of image.

BazelArtifact object

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"]"

configure the --platforms flag for bazel build based on the configured skaffold target platform.

BazelPlatformMapping object

relates a skaffold platform (like 'linux/amd64') to a workspace-specific bazel platform target (e.g. '//platforms:linux_amd64').

platform string required

skaffold platform.

target string required

bazel platform target to be passed to bazel's --platforms flag.

BuildConfig object

contains all the configuration for the build steps.

BuildHooks object

describes the list of lifecycle hooks to execute before and after each artifact build step.

after HostHook[]

describes the list of lifecycle hooks to execute after each artifact build step.

before HostHook[]

describes the list of lifecycle hooks to execute before each artifact build step.

BuildpackArtifact object

alpha describes an artifact built using Cloud Native Buildpacks. It can be used to build images out of project's sources without any additional configuration.

builder string

builder image used.

buildpacks string[]

a list of strings, where each string is a specific buildpack to use with the builder. If you specify buildpacks the builder image automatic detection will be ignored. These buildpacks will be used to build the Image from your source code. Order matters.

Default: "[]"
clearCache boolean

removes old cache volume associated with the specific image and supplies a clean cache volume for build.

Default: "false"
dependencies object

alpha used to specify dependencies for an artifact built by buildpacks.

2 nested properties
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: "[]"
env string[]

environment variables, in the key=value form, passed to the build. Values can use the go template syntax.

Default: "[]"
Examples: "["key1=value1", "key2=value2", "key3={{.ENV_VARIABLE}}"]"
projectDescriptor string

path to the project descriptor file.

Default: "project.toml"
runImage string

overrides the stack's default run image.

trustBuilder boolean

indicates that the builder should be trusted.

Default: "false"

support mounting host volumes into the container.

BuildpackDependencies object

alpha used to specify dependencies for an artifact built by buildpacks.

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: "[]"
BuildpackVolume object

alpha used to mount host volumes or directories in the build container.

host string required

local volume or absolute directory of the path to mount.

target string required

path where the file or directory is available in the container. It is strongly recommended to not specify locations under /cnb or /layers.

options string

specify a list of comma-separated mount options. Valid options are: ro (default): volume contents are read-only. rw: volume contents are readable and writable. volume-opt=<key>=<value>: can be specified more than once, takes a key-value pair.

Values: "ro" "rw" "volume-opt=<key>=<value>"
CloudRunDeploy object

alpha deploys the container to Google Cloud Run.

hooks object

describes the list of lifecycle hooks to execute in the host before and after the Cloud Run deployer.

2 nested properties
after HostHook[]

describes the list of lifecycle hooks to execute after the Cloud Run deployer.

before HostHook[]

describes the list of lifecycle hooks to execute before the Cloud Run deployer.

projectid string

the GCP Project to use for Cloud Run. If specified, all Services will be deployed to this project. If not specified, each Service will be deployed to the project specified in metadata.namespace of the Cloud Run manifest.

region string

GCP location to use for the Cloud Run Deploy. Must be one of the regions listed in https://cloud.google.com/run/docs/locations.

CloudRunDeployHooks object

describes the list of lifecycle hooks to execute in the host before and after the Cloud Run deployer.

after HostHook[]

describes the list of lifecycle hooks to execute after the Cloud Run deployer.

before HostHook[]

describes the list of lifecycle hooks to execute before the Cloud Run deployer.

ClusterDetails object

beta describes how to do an on-cluster build.

HTTPS_PROXY string

for kaniko pod.

HTTP_PROXY string

for kaniko pod.

annotations Record<string, string>

describes the Kubernetes annotations for the pod.

Default: "{}"
concurrency integer

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

Default: "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'.

labels Record<string, string>

describes the Kubernetes labels for the pod.

Default: "{}"
namespace string

Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.

nodeSelector Record<string, string>

describes the Kubernetes node selector for the pod.

Default: "{}"
pullSecretMountPath string

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

pullSecretName string

name of the Kubernetes secret for pulling base images 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"
pullSecretPath string

path to the Google Cloud service account secret key file.

randomDockerConfigSecret boolean

adds a random UUID postfix to the default name of the docker secret to facilitate parallel builds, e.g. docker-cfgfd154022-c761-416f-8eb3-cf8258450b85.

Default: "false"
randomPullSecret boolean

adds a random UUID postfix to the default name of the pull secret to facilitate parallel builds, e.g. kaniko-secretdocker-cfgfd154022-c761-416f-8eb3-cf8258450b85.

Default: "false"
resources object

describes the resource requirements for the kaniko pod.

2 nested properties
limits object

stores the CPU/Memory requirements for the pod.

4 nested properties
cpu string

the number cores to be used.

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

the amount of Ephemeral storage to allocate to the pod.

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

the amount of memory to allocate to the pod.

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

the amount of resource storage to allocate to the pod.

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

stores the CPU/Memory requirements for the pod.

4 nested properties
cpu string

the number cores to be used.

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

the amount of Ephemeral storage to allocate to the pod.

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

the amount of memory to allocate to the pod.

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

the amount of resource storage to allocate to the pod.

Examples: "1Gi` or `1000Mi"
runAsUser integer

defines the UID to request for running the container. If omitted, no SecurityContext will be specified for the pod and will therefore be inherited from the service account.

serviceAccount string

describes the Kubernetes service account to use for the pod. Defaults to 'default'.

timeout string

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

tolerations array

describes the Kubernetes tolerations for the pod.

Default: "[]"
volumes array

defines container mounts for ConfigMap and Secret resources.

Default: "[]"
ConfigDependency object

describes a dependency on another skaffold configuration.

activeProfiles ProfileDependency[]

describes the list of profiles to activate when resolving the required configs. These profiles must exist in the imported config.

configs string[]

includes specific named configs within the file path. If empty, then all configs in the file are included.

Default: "[]"
git object

contains information on the origin of skaffold configurations cloned from a git repository.

4 nested properties
repo string required

git repository the package should be cloned from. e.g. <https://github.com/GoogleContainerTools/skaffold.git>.

path string

relative path from the repo root to the skaffold configuration file. eg. getting-started/skaffold.yaml.

ref string

git ref the package should be cloned from. eg. master or main.

sync boolean

when set to true will reset the cached repository to the latest commit from remote on every run. To use the cached repository with uncommitted changes or unpushed commits, it needs to be set to false.

googleCloudBuildRepoV2 object

contains information on the origin of skaffold configurations cloned from Google Cloud Build repository (2nd gen).

7 nested properties
connection string required

name of the GCB repository connection associated with the repo.

projectID string required

ID of the GCP project where the repository is configured.

region string required

GCP region where the repository is configured.

repo string required

name of repository under the given connection.

path string

relative path from the repo root to the skaffold configuration file. eg. getting-started/skaffold.yaml.

ref string

git ref the repo should be cloned from. e.g. master or main.

sync boolean

when set to true will reset the cached repository to the latest commit from remote on every run. To use the cached repository with uncommitted changes or unpushed commits, it needs to be set to false.

googleCloudStorage object

contains information on the origin of skaffold configurations copied from Google Cloud Storage.

3 nested properties
path string

relative path from the source to the skaffold configuration file. e.g. configs/skaffold.yaml.

source string

Google Cloud Storage objects to copy. e.g. gs://my-bucket/dir1/dir2/*.

sync boolean

when set to true will reset the cached object to the latest remote version on every run.

path string

describes the path to the file containing the required configs.

ContainerHook object

describes a lifecycle hook definition to execute on a container. The container name is inferred from the scope in which this hook is defined.

command string[] required

command to execute.

Default: "[]"
CustomArtifact object

beta 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

beta 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

beta 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>

key/value pairs used to resolve values of ARG instructions in a Dockerfile. Values can be constants or 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

beta 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

beta 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>

key/value pairs used to resolve values of ARG instructions in a Dockerfile. Values can be constants or 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: "[]"
CustomTemplateTagger 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 provided components with those variables injected.

Examples: "{{.DATE}}"
components TaggerComponent[]

TaggerComponents that the template (see field above) can be executed against.

CustomTest object

describes the custom test command provided by the user. Custom tests are run after an image build whenever build or test dependencies are changed.

command string required

custom command to be executed. If the command exits with a non-zero return code, the test will be considered to have failed.

dependencies object

used to specify dependencies for custom test command. paths should be specified for file watching to work as expected.

3 nested properties
command string

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

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 retest and file synchronization. Will only work in conjunction with paths.

Default: "[]"
paths string[]

locates the file dependencies for the command relative to workspace. Paths should be set to the file dependencies for this command, so that the skaffold file watcher knows when to retest and perform file synchronization.

Default: "[]"
Examples: "["src/test/**"]"
timeoutSeconds integer

sets the wait time for skaffold for the command to complete. If unset or 0, Skaffold will wait until the command completes.

CustomTestDependencies object

used to specify dependencies for custom test command. paths should be specified for file watching to work as expected.

command string

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

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 retest and file synchronization. Will only work in conjunction with paths.

Default: "[]"
paths string[]

locates the file dependencies for the command relative to workspace. Paths should be set to the file dependencies for this command, so that the skaffold file watcher knows when to retest and perform file synchronization.

Default: "[]"
Examples: "["src/test/**"]"
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.

cloudrun object

alpha deploys the container to Google Cloud Run.

3 nested properties
hooks object

describes the list of lifecycle hooks to execute in the host before and after the Cloud Run deployer.

2 nested properties
after HostHook[]

describes the list of lifecycle hooks to execute after the Cloud Run deployer.

before HostHook[]

describes the list of lifecycle hooks to execute before the Cloud Run deployer.

projectid string

the GCP Project to use for Cloud Run. If specified, all Services will be deployed to this project. If not specified, each Service will be deployed to the project specified in metadata.namespace of the Cloud Run manifest.

region string

GCP location to use for the Cloud Run Deploy. Must be one of the regions listed in https://cloud.google.com/run/docs/locations.

docker object

uses the docker CLI to create application containers in Docker.

2 nested properties
images string[] required

container images to run in Docker.

Default: "[]"
useCompose boolean

tells skaffold whether or not to deploy using docker-compose.

Default: "false"
helm object

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

4 nested properties
concurrency integer

how many packages can be installed concurrently. 0 means "no-limit".

Default: "1"
flags object

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

5 nested properties
depBuild string[]

additional flags passed to (helm dep build).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
template string[]

additional flags passed to (helm template).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

2 nested properties

describes the list of lifecycle hooks to execute after each deployer step.

describes the list of lifecycle hooks to execute before each deployer step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

releases HelmRelease[]

a list of Helm releases.

kpt object

contains all the configuration needed by the deploy steps.

8 nested properties
applyFlags string[]

additional flags passed to kpt live apply.

Default: "[]"
defaultNamespace string

default namespace passed to kpt on deployment if no other override is given.

dir string

equivalent to the dir in kpt live apply <dir>. If not provided, skaffold deploys from the default hydrated path <WORKDIR>/.kpt-pipeline.

flags string[]

kpt global flags.

Default: "[]"
force boolean

used in kpt live init, which forces the inventory values to be updated, even if they are already set.

Default: "false"
inventoryID string

alpha inventory ID which annotates the resources being lively applied by kpt.

name string

alpha inventory object name.

namespace string

alpha sets the inventory namespace.

kubeContext string

Kubernetes context that Skaffold should deploy to.

Examples: "minikube"
kubectl 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.

4 nested properties
defaultNamespace string

default namespace passed to kubectl on deployment if no other override is given.

flags object

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

4 nested properties
apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
disableValidation boolean

passes the --validate=false flag to supported kubectl commands when enabled.

Default: "false"
global string[]

additional flags passed on every command.

Default: "[]"
hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

2 nested properties

describes the list of lifecycle hooks to execute after each deployer step.

describes the list of lifecycle hooks to execute before each deployer step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

remoteManifests string[]

Kubernetes manifests in remote clusters.

Default: "[]"
logs object

configures how container logs are printed as a result of a deployment.

2 nested properties
jsonParse object

defines the rules for parsing/outputting json logs.

1 nested properties
fields string[]

specifies which top level fields should be printed.

Default: "[]"
prefix string

defines the prefix shown on each log line. Valid values are container: prefix logs lines with the name of the container. podAndContainer: prefix logs lines with the names of the pod and of the container. auto: same as podAndContainer except that the pod name is skipped if it's the same as the container name. none: don't add a prefix.

Default: "auto"
Values: "container" "podAndContainer" "auto" "none"
statusCheck boolean

beta enables waiting for deployments to stabilize.

statusCheckDeadlineSeconds integer

beta deadline for deployments to stabilize in seconds.

tolerateFailuresUntilDeadline boolean

configures the Skaffold "status-check" to tolerate failures (flapping deployments, etc.) until the statusCheckDeadlineSeconds duration or k8s object timeouts such as progressDeadlineSeconds, etc.

Default: "false"
DeployHookItem object

describes a single lifecycle hook to execute before or after each deployer step.

container object

describes a lifecycle hook definition to execute on a named container.

3 nested properties
command string[] required

command to execute.

Default: "[]"
podName string required

name of the pod to execute the command in.

containerName string

name of the container to execute the command in.

host object

describes a lifecycle hook definition to execute on the host machine.

3 nested properties
command string[] required

command to execute.

Default: "[]"
dir string

specifies the working directory of the command. If empty, the command runs in the calling process's current directory.

os string[]

an optional slice of operating system names. If the host machine OS is different, then it skips execution.

Default: "[]"
DeployHooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

describes the list of lifecycle hooks to execute after each deployer step.

describes the list of lifecycle hooks to execute before each deployer step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

DockerArtifact object

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

addHost string[]

add host.

Default: "[]"
Examples: "["host1:ip1", "host2:ip2"]"
buildArgs Record<string, string>

arguments passed to the docker build.

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

the Docker images used as cache sources.

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

any additional flags to pass to the local daemon during a build. These flags are only used during a build through the Docker CLI.

Default: "[]"
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. Examples: host: use the host's networking stack. bridge: use the bridged network configuration. container:<name|id>: reuse another container's network stack. none: no networking in the container. my-custom-network: user-defined network.

noCache boolean

set to true to pass in --no-cache to docker build, which will prevent caching.

Default: "false"
pullParent boolean

used to attempt pulling the parent image even if an older image exists locally.

Default: "false"
secrets DockerSecret[]

used to pass in --secret to docker build, useBuildKit: true is required.

squash boolean

used to pass in --squash to docker build to squash docker image layers into single layer.

Default: "false"
ssh string

used to pass in --ssh to docker build to use SSH agent. Format is "default|[=|[,]]".

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'.

DockerDeploy object

uses the docker CLI to create application containers in Docker.

images string[] required

container images to run in Docker.

Default: "[]"
useCompose boolean

tells skaffold whether or not to deploy using docker-compose.

Default: "false"
DockerSecret object

used to pass in --secret to docker build, useBuildKit: true is required.

id string required

id of the secret.

env string

environment variable name containing the secret value.

src string

path to the secret on the host machine.

DockerfileDependency object

beta 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>

key/value pairs used to resolve values of ARG instructions in a Dockerfile. Values can be constants or 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.

Examples: "{{.RELEASE}}"
GitInfo object

contains information on the origin of skaffold configurations cloned from a git repository.

repo string required

git repository the package should be cloned from. e.g. <https://github.com/GoogleContainerTools/skaffold.git>.

path string

relative path from the repo root to the skaffold configuration file. eg. getting-started/skaffold.yaml.

ref string

git ref the package should be cloned from. eg. master or main.

sync boolean

when set to true will reset the cached repository to the latest commit from remote on every run. To use the cached repository with uncommitted changes or unpushed commits, it needs to be set to false.

GitTagger object

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

ignoreChanges boolean

specifies whether to omit the -dirty postfix if there are uncommitted changes.

Default: "false"
prefix string

adds a fixed prefix to the tag.

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.

bucket string

specifies the Cloud Storage bucket to store the staged build sources.

concurrency integer

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

Default: "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"
koImage string

image that runs a ko build. The image must contain Skaffold, Go, and a shell (runnable as sh) that supports here documents. See Cloud Builders.

Default: "gcr.io/k8s-skaffold/skaffold"
logStreamingOption string

specifies the behavior when writing build logs to Google Cloud Storage. Valid options are: STREAM_DEFAULT: Service may automatically determine build log streaming behavior. STREAM_ON: Build logs should be streamed to Google Cloud Storage. STREAM_OFF: Build logs should not be streamed to Google Cloud Storage; they will be written when the build is completed. See Cloud Build Reference.

Values: "STREAM_DEFAULT" "STREAM_ON" "STREAM_OFF"
logging string

specifies the logging mode. Valid modes are: LOGGING_UNSPECIFIED: The service determines the logging mode. LEGACY: Stackdriver logging and Cloud Storage logging are enabled (default). GCS_ONLY: Only Cloud Storage logging is enabled. See Cloud Build Reference.

Values: "LOGGING_UNSPECIFIED" "LEGACY" "GCS_ONLY"
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"
packImage string

image that runs a Cloud Native Buildpacks build. See Cloud Builders.

Default: "gcr.io/k8s-skaffold/pack"
platformEmulatorInstallStep object

specifies a pre-build step to install the required tooling for QEMU emulation on the GoogleCloudBuild containers. This enables performing cross-platform builds on GoogleCloudBuild.

3 nested properties
image string required

specifies the image that will install the required tooling for QEMU emulation on the GoogleCloudBuild containers.

args string[]

specifies arguments passed to the emulator installer image.

Default: "[]"
entrypoint string

specifies the ENTRYPOINT argument to the emulator installer image.

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.

region string

configures the region to run the build. If WorkerPool is configured, the region will be deduced from the WorkerPool configuration. If neither WorkerPool nor Region is configured, the build will be run in global(non-regional). See Cloud Build locations.

serviceAccount string

Google Cloud platform service account used by Cloud Build. If unspecified, it defaults to the Cloud Build service account generated when the Cloud Build API is enabled.

timeout string

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

workerPool string

configures a pool of workers to run the build.

GoogleCloudBuildRepoV2Info object

contains information on the origin of skaffold configurations cloned from Google Cloud Build repository (2nd gen).

connection string required

name of the GCB repository connection associated with the repo.

projectID string required

ID of the GCP project where the repository is configured.

region string required

GCP region where the repository is configured.

repo string required

name of repository under the given connection.

path string

relative path from the repo root to the skaffold configuration file. eg. getting-started/skaffold.yaml.

ref string

git ref the repo should be cloned from. e.g. master or main.

sync boolean

when set to true will reset the cached repository to the latest commit from remote on every run. To use the cached repository with uncommitted changes or unpushed commits, it needs to be set to false.

GoogleCloudStorageInfo object

contains information on the origin of skaffold configurations copied from Google Cloud Storage.

path string

relative path from the source to the skaffold configuration file. e.g. configs/skaffold.yaml.

source string

Google Cloud Storage objects to copy. e.g. gs://my-bucket/dir1/dir2/*.

sync boolean

when set to true will reset the cached object to the latest remote version on every run.

Helm object

defines the manifests from helm releases.

releases HelmRelease[] required

a list of Helm releases.

flags object

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

5 nested properties
depBuild string[]

additional flags passed to (helm dep build).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
template string[]

additional flags passed to (helm template).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
HelmDeployFlags object

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

depBuild string[]

additional flags passed to (helm dep build).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
template string[]

additional flags passed to (helm template).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
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.

name string required

name of the Helm release. It accepts environment variables via the go template syntax.

chartPath string

local path to a packaged Helm chart or an unpacked Helm chart directory.

createNamespace boolean

if true, Skaffold will send --create-namespace flag to Helm CLI. --create-namespace flag is available in Helm since version 3.2. Defaults is false.

dependsOn string[]

a list of Helm release names that this deploy depends on.

Default: "[]"
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"
remoteChart string

refers to a remote Helm chart reference or URL.

repo string

specifies the helm repository for remote charts. If present, Skaffold will send --repo Helm CLI flag or flags.

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

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.

setValues

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

skipBuildDependencies boolean

should build dependencies be skipped. Ignored for remoteChart.

Default: "false"
skipTests boolean

should ignore helm test during manifests generation.

Default: "false"
upgradeOnChange boolean

specifies whether to upgrade helm chart on code changes. Default is true when helm chart is local (has chartPath). Default is false when helm chart is remote (has remoteChart).

useHelmSecrets boolean

instructs skaffold to use secrets plugin on deployment.

Default: "false"
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"
HostHook object

describes a lifecycle hook definition to execute on the host machine.

command string[] required

command to execute.

Default: "[]"
dir string

specifies the working directory of the command. If empty, the command runs in the calling process's current directory.

os string[]

an optional slice of operating system names. If the host machine OS is different, then it skips execution.

Default: "[]"
InputDigest object

beta tags hashes the image content.

JSONParseConfig object

defines the rules for parsing/outputting json logs.

fields string[]

specifies which top level fields should be printed.

Default: "[]"
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

builds images using the Jib plugins for Maven and Gradle.

args string[]

additional build flags passed to the builder.

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

overrides the configured jib base image.

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

describes an artifact built from a Dockerfile, with kaniko.

buildArgs Record<string, string>

arguments passed to the docker build. It also accepts environment variables and generated values via the go template syntax. Exposed generated values: IMAGE_REPO, IMAGE_NAME, IMAGE_TAG.

Default: "{}"
Examples: "{"key1": "value1", "key2": "value2", "key3": "'{{.ENV_VARIABLE}}'"}"
buildContextCompressionLevel integer

gzip compression level(0-9) for the build context. 0: NoCompression. 1: BestSpeed. 9: BestCompression. -1: DefaultCompression. -2: HuffmanOnly.

Default: "1"
cache object

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

5 nested properties
cacheCopyLayers boolean

enables caching of copy layers.

Default: "false"
cacheRunLayers boolean

enables caching of run layers (default=true).

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.

ttl string

Cache timeout in hours.

cleanup boolean

to clean the filesystem at the end of the build.

Default: "false"
contextSubPath string

to specify a sub path within the context.

copyMaxRetries integer

number of times to retry copy build contexts to a cluster if it fails.

Default: "3"
copyTimeout string

timeout for copying build contexts to a cluster. Defaults to 5 minutes (5m).

destination string[]

additional tags to push.

Default: "[]"
digestFile string

to specify a file in the container. This file will receive the digest of a built image. This can be used to automatically track the exact image built by kaniko.

dockerfile string

locates the Dockerfile relative to workspace.

Default: "Dockerfile"
env array

environment variables passed to the kaniko pod. It also accepts environment variables via the go template syntax.

Default: "[]"
Examples: "[{"name": "key1", "value": "value1"}, {"name": "key2", "value": "value2"}, {"name": "key3", "value": "'{{.ENV_VARIABLE}}'"}]"
force boolean

building outside of a container.

Default: "false"
ignorePaths string[]

a list of ignored paths when making an image snapshot.

Default: "[]"
image string

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

imageFSExtractRetry string

number of retries that should happen for extracting an image filesystem.

imageNameWithDigestFile string

specify a file to save the image name with digest of the built image to.

imagePullSecret string

name of the Kubernetes secret for pulling kaniko image and kaniko init image from a private registry.

initImage string

image used to run init container which mounts kaniko context.

insecure boolean

if you want to push images to a plain HTTP registry.

Default: "false"
insecurePull boolean

if you want to pull images from a plain HTTP registry.

Default: "false"
insecureRegistry string[]

to use plain HTTP requests when accessing a registry.

Default: "[]"
label Record<string, string>

key: value to set some metadata to the final image. This is equivalent as using the LABEL within the Dockerfile.

Default: "{}"
logFormat string

<text|color|json> to set the log format.

logTimestamp boolean

to add timestamps to log format.

Default: "false"
ociLayoutPath string

to specify a directory in the container where the OCI image layout of a built image will be placed. This can be used to automatically track the exact image built by kaniko.

pushRetry string

Set this flag to the number of retries that should happen for the push of an image to a remote destination.

registryCertificate Record<string, string>

to provide a certificate for TLS communication with a given registry. my.registry.url: /path/to/the/certificate.cert is the expected format.

Default: "{}"
registryMirror string

if you want to use a registry mirror instead of default index.docker.io.

reproducible boolean

used to strip timestamps out of the built image.

Default: "false"
singleSnapshot boolean

takes a single snapshot of the filesystem at the end of the build. So only one layer will be appended to the base image.

Default: "false"
skipTLS boolean

skips TLS certificate validation when pushing to a registry.

Default: "false"
skipTLSVerifyPull boolean

skips TLS certificate validation when pulling from a registry.

Default: "false"
skipTLSVerifyRegistry string[]

skips TLS certificate validation when accessing a registry.

Default: "[]"
skipUnusedStages boolean

builds only used stages if defined to true. Otherwise it builds by default all stages, even the unnecessaries ones until it reaches the target stage / end of Dockerfile.

Default: "false"
snapshotMode string

how Kaniko will snapshot the filesystem.

tarPath string

path to save the image as a tarball at path instead of pushing the image.

target string

to indicate which build stage is the target build stage.

useNewRun boolean

to Use the experimental run implementation for detecting changes without requiring file system snapshots. In some cases, this may improve build performance by 75%.

Default: "false"
verbosity string

<panic|fatal|error|warn|info|debug|trace> to set the logging level.

volumeMounts array

volume mounts passed to kaniko pod.

Default: "[]"
whitelistVarRun boolean

used to ignore /var/run when taking image snapshot. Set it to false to preserve /var/run/* in destination image.

Default: "false"
KanikoCache object

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

cacheCopyLayers boolean

enables caching of copy layers.

Default: "false"
cacheRunLayers boolean

enables caching of run layers (default=true).

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.

ttl string

Cache timeout in hours.

KoArtifact object

builds images using ko.

dependencies object

used to specify dependencies for an artifact built by ko.

2 nested properties
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.

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: "["**/*.go"]"
dir string

directory where the go tool will be run. The value is a directory path relative to the context directory. If empty, the go tool will run in the context directory. Example: ./my-app-sources.

env string[]

environment variables, in the key=value form, passed to the build. These environment variables are only used at build time. They are not set in the resulting container image.

Default: "[]"
Examples: "["GOPRIVATE=git.example.com", "GOCACHE=/workspace/.gocache"]"
flags string[]

additional build flags passed to go build.

Default: "[]"
Examples: "["-trimpath", "-v"]"
fromImage string

overrides the default ko base image (gcr.io/distroless/static:nonroot). Corresponds to, and overrides, the defaultBaseImage in .ko.yaml.

labels Record<string, string>

key-value string pairs to add to the image config.

Default: "{}"
Examples: "{"foo":"bar"}"
ldflags string[]

linker flags passed to the builder.

Default: "[]"
Examples: "["-buildid=", "-s", "-w"]"
main string

location of the main package. It is the pattern passed to go build. If main is specified as a relative path, it is relative to the context directory. If main is empty, the ko builder uses a default value of .. If main is a pattern with wildcards, such as ./..., the expansion must contain only one main package, otherwise ko fails. Main is ignored if the ImageName starts with ko://. Example: ./cmd/foo.

KoDependencies object

used to specify dependencies for an artifact built by ko.

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.

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: "["**/*.go"]"
KptDeploy object

contains all the configuration needed by the deploy steps.

applyFlags string[]

additional flags passed to kpt live apply.

Default: "[]"
defaultNamespace string

default namespace passed to kpt on deployment if no other override is given.

dir string

equivalent to the dir in kpt live apply <dir>. If not provided, skaffold deploys from the default hydrated path <WORKDIR>/.kpt-pipeline.

flags string[]

kpt global flags.

Default: "[]"
force boolean

used in kpt live init, which forces the inventory values to be updated, even if they are already set.

Default: "false"
inventoryID string

alpha inventory ID which annotates the resources being lively applied by kpt.

name string

alpha inventory object name.

namespace string

alpha sets the inventory namespace.

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.

defaultNamespace string

default namespace passed to kubectl on deployment if no other override is given.

flags object

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

4 nested properties
apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
disableValidation boolean

passes the --validate=false flag to supported kubectl commands when enabled.

Default: "false"
global string[]

additional flags passed on every command.

Default: "[]"
hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

2 nested properties

describes the list of lifecycle hooks to execute after each deployer step.

describes the list of lifecycle hooks to execute before each deployer step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

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: "[]"
disableValidation boolean

passes the --validate=false flag to supported kubectl commands when enabled.

Default: "false"
global string[]

additional flags passed on every command.

Default: "[]"
KubernetesClusterVerifier object

uses the kubectl CLI to create veriy test case container in a kubernetes cluster.

jobManifestPath string

path to the kubernetes Job manifest to use for the verify test This manifest will be deployed into the cluster with the Container information replaced by the information in the Container field.

overrides string

inline JSON override to use for the generated kubernetes Job. If this is non-empty, it is used to override the generated object. Similar to the --overrides kubectl flag.

Kustomize object

defines the paths to be modified with kustomize, along with extra flags to be passed to kustomize.

buildArgs string[]

additional args passed to kustomize build.

Default: "[]"
paths string[]

path to Kustomization files.

Default: "["."]"
LegacyHelmDeploy object

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

concurrency integer

how many packages can be installed concurrently. 0 means "no-limit".

Default: "1"
flags object

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

5 nested properties
depBuild string[]

additional flags passed to (helm dep build).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
template string[]

additional flags passed to (helm template).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

2 nested properties

describes the list of lifecycle hooks to execute after each deployer step.

describes the list of lifecycle hooks to execute before each deployer step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

releases HelmRelease[]

a list of Helm releases.

LocalBuild object

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

concurrency integer

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

Default: "1"
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.

tryImportMissing boolean

whether to attempt to import artifacts from Docker (either a local or remote registry) if not in the cache.

Default: "false"
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"
LocalVerifier object

uses the docker CLI to create verify test case containers on the host machine in Docker.

useLocalImages boolean

if true, will first check if the containers images exist locally before triggering a pull. Defaults to false.

Default: "false"
LogsConfig object

configures how container logs are printed as a result of a deployment.

jsonParse object

defines the rules for parsing/outputting json logs.

1 nested properties
fields string[]

specifies which top level fields should be printed.

Default: "[]"
prefix string

defines the prefix shown on each log line. Valid values are container: prefix logs lines with the name of the container. podAndContainer: prefix logs lines with the names of the pod and of the container. auto: same as podAndContainer except that the pod name is skipped if it's the same as the container name. none: don't add a prefix.

Default: "auto"
Values: "container" "podAndContainer" "auto" "none"
Metadata object

holds an optional name of the project.

annotations Record<string, string>

a map of annotations providing additional metadata about the project.

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

a map of labels identifying the project.

Default: "{}"
name string

an identifier for the project.

NamedContainerHook object

describes a lifecycle hook definition to execute on a named container.

command string[] required

command to execute.

Default: "[]"
podName string required

name of the pod to execute the command in.

containerName string

name of the container to execute the command in.

PlatformEmulatorInstallStep object

specifies a pre-build step to install the required tooling for QEMU emulation on the GoogleCloudBuild containers. This enables performing cross-platform builds on GoogleCloudBuild.

image string required

specifies the image that will install the required tooling for QEMU emulation on the GoogleCloudBuild containers.

args string[]

specifies arguments passed to the emulator installer image.

Default: "[]"
entrypoint string

specifies the ENTRYPOINT argument to the emulator installer image.

PortForwardResource object

describes a resource to port forward.

address string

local address to bind to. Defaults to the loopback address 127.0.0.1.

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. Does not apply to local containers.

port string | integer

resource port that will be forwarded.

resourceName string

name of the Kubernetes resource or local container to port forward.

resourceType string

resource type that should be port forwarded. Acceptable resource types include kubernetes types: Service, Pod and Controller resource type that has a pod spec: ReplicaSet, ReplicationController, Deployment, StatefulSet, DaemonSet, Job, CronJob. Standalone Container is also valid for Docker deployments.

PostRenderHookItem object

describes a single lifecycle hook to execute after each render step.

host object

describes a post render hook definition to execute on the host machine.

4 nested properties
command string[] required

command to execute.

Default: "[]"
dir string

specifies the working directory of the command. If empty, the command runs in the calling process's current directory.

os string[]

an optional slice of operating system names. If the host machine OS is different, then it skips execution.

Default: "[]"
withChange boolean

preserves changes made on the manifests by the hook.

Default: "false"
PostRenderHostHook object

describes a post render hook definition to execute on the host machine.

command string[] required

command to execute.

Default: "[]"
dir string

specifies the working directory of the command. If empty, the command runs in the calling process's current directory.

os string[]

an optional slice of operating system names. If the host machine OS is different, then it skips execution.

Default: "[]"
withChange boolean

preserves changes made on the manifests by the hook.

Default: "false"
Profile object

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
customActions Action[]

describes a list of user defined actions that can be triggered with skaffold exec.

deploy object

contains all the configuration needed by the deploy steps.

10 nested properties
cloudrun object

alpha deploys the container to Google Cloud Run.

3 nested properties
hooks object

describes the list of lifecycle hooks to execute in the host before and after the Cloud Run deployer.

projectid string

the GCP Project to use for Cloud Run. If specified, all Services will be deployed to this project. If not specified, each Service will be deployed to the project specified in metadata.namespace of the Cloud Run manifest.

region string

GCP location to use for the Cloud Run Deploy. Must be one of the regions listed in https://cloud.google.com/run/docs/locations.

docker object

uses the docker CLI to create application containers in Docker.

2 nested properties
images string[] required

container images to run in Docker.

Default: "[]"
useCompose boolean

tells skaffold whether or not to deploy using docker-compose.

Default: "false"
helm object

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

4 nested properties
concurrency integer

how many packages can be installed concurrently. 0 means "no-limit".

Default: "1"
flags object

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

hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

releases HelmRelease[]

a list of Helm releases.

kpt object

contains all the configuration needed by the deploy steps.

8 nested properties
applyFlags string[]

additional flags passed to kpt live apply.

Default: "[]"
defaultNamespace string

default namespace passed to kpt on deployment if no other override is given.

dir string

equivalent to the dir in kpt live apply <dir>. If not provided, skaffold deploys from the default hydrated path <WORKDIR>/.kpt-pipeline.

flags string[]

kpt global flags.

Default: "[]"
force boolean

used in kpt live init, which forces the inventory values to be updated, even if they are already set.

Default: "false"
inventoryID string

alpha inventory ID which annotates the resources being lively applied by kpt.

name string

alpha inventory object name.

namespace string

alpha sets the inventory namespace.

kubeContext string

Kubernetes context that Skaffold should deploy to.

Examples: "minikube"
kubectl 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.

4 nested properties
defaultNamespace string

default namespace passed to kubectl on deployment if no other override is given.

flags object

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

hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

remoteManifests string[]

Kubernetes manifests in remote clusters.

Default: "[]"
logs object

configures how container logs are printed as a result of a deployment.

2 nested properties
jsonParse object

defines the rules for parsing/outputting json logs.

prefix string

defines the prefix shown on each log line. Valid values are container: prefix logs lines with the name of the container. podAndContainer: prefix logs lines with the names of the pod and of the container. auto: same as podAndContainer except that the pod name is skipped if it's the same as the container name. none: don't add a prefix.

Default: "auto"
Values: "container" "podAndContainer" "auto" "none"
statusCheck boolean

beta enables waiting for deployments to stabilize.

statusCheckDeadlineSeconds integer

beta deadline for deployments to stabilize in seconds.

tolerateFailuresUntilDeadline boolean

configures the Skaffold "status-check" to tolerate failures (flapping deployments, etc.) until the statusCheckDeadlineSeconds duration or k8s object timeouts such as progressDeadlineSeconds, etc.

Default: "false"
manifests object

contains all the configuration needed by the render steps.

9 nested properties
helm object

defines the manifests from helm releases.

2 nested properties
releases HelmRelease[] required

a list of Helm releases.

flags object

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

hooks object

describes the list of lifecycle hooks to execute before and after each render step.

2 nested properties

describes the list of lifecycle hooks to execute after each render step.

describes the list of lifecycle hooks to execute before each render step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

kpt string[]

defines the kpt resources in the application.

Default: "[]"
kustomize object

defines the paths to be modified with kustomize, along with extra flags to be passed to kustomize.

2 nested properties
buildArgs string[]

additional args passed to kustomize build.

Default: "[]"
paths string[]

path to Kustomization files.

Default: "["."]"
output string

path to the hydrated directory.

rawYaml string[]

defines the raw kubernetes resources.

Default: "[]"
remoteManifests RemoteManifest[]

Kubernetes manifests in remote clusters.

transform

defines a set of transformation operations to run in series.

validate

defines a set of validator operations to run in series.

patches JSONPatch[]

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

portForward PortForwardResource[]

describes user defined resources to port-forward.

requiresAllActivations boolean

activation strategy of the profile. When true, the profile is auto-activated only when all of its activations are triggered. When false, the profile is auto-activated when any one of its activations is triggered.

Default: "false"
resourceSelector object

contains all the configuration needed by the deploy steps.

2 nested properties

configures an allowlist for transforming manifests.

configures an allowlist for transforming manifests.

test TestCase[]

describes how images are tested.

describes how images are verified (via verification tests).

ProfileDependency object

describes a mapping from referenced config profiles to the current config profiles. If the current config is activated with a profile in this mapping then the dependency configs are also activated with the corresponding mapped profiles.

name string required

describes name of the profile to activate in the dependency config. It should exist in the dependency config.

activatedBy string[]

describes a list of profiles in the current config that when activated will also activate the named profile in the dependency config. If empty then the named profile is always activated.

Default: "[]"
RemoteManifest object

defines the paths to be modified with kustomize, along with extra flags to be passed to kustomize.

kubeContext string

Kubernetes context that Skaffold should deploy to.

Examples: "minikube"
manifest string

specifies the Kubernetes manifest in the remote cluster.

RenderConfig object

contains all the configuration needed by the render steps.

helm object

defines the manifests from helm releases.

2 nested properties
releases HelmRelease[] required

a list of Helm releases.

flags object

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

5 nested properties
depBuild string[]

additional flags passed to (helm dep build).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
template string[]

additional flags passed to (helm template).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
hooks object

describes the list of lifecycle hooks to execute before and after each render step.

2 nested properties

describes the list of lifecycle hooks to execute after each render step.

describes the list of lifecycle hooks to execute before each render step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

kpt string[]

defines the kpt resources in the application.

Default: "[]"
kustomize object

defines the paths to be modified with kustomize, along with extra flags to be passed to kustomize.

2 nested properties
buildArgs string[]

additional args passed to kustomize build.

Default: "[]"
paths string[]

path to Kustomization files.

Default: "["."]"
output string

path to the hydrated directory.

rawYaml string[]

defines the raw kubernetes resources.

Default: "[]"
remoteManifests RemoteManifest[]

Kubernetes manifests in remote clusters.

transform

defines a set of transformation operations to run in series.

validate

defines a set of validator operations to run in series.

RenderHookItem object

describes a single lifecycle hook to execute before or after each deployer step.

host object

describes a lifecycle hook definition to execute on the host machine.

3 nested properties
command string[] required

command to execute.

Default: "[]"
dir string

specifies the working directory of the command. If empty, the command runs in the calling process's current directory.

os string[]

an optional slice of operating system names. If the host machine OS is different, then it skips execution.

Default: "[]"
RenderHooks object

describes the list of lifecycle hooks to execute before and after each render step.

describes the list of lifecycle hooks to execute after each render step.

describes the list of lifecycle hooks to execute before each render step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

ResourceFilter object

contains definition to filter which resource to transform.

groupKind string required

compact format of a resource type.

image string[]

an optional slice of JSON-path-like paths of where to rewrite images.

Default: "[]"
labels string[]

an optional slice of JSON-path-like paths of where to add a labels block if missing.

Default: "[]"
podSpec string[]

an optional slice of JSON-path-like paths of where pod spec properties can be overwritten.

Default: "[]"
ResourceRequirement object

stores the CPU/Memory requirements for the pod.

cpu string

the number cores to be used.

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

the amount of Ephemeral storage to allocate to the pod.

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

the amount of memory to allocate to the pod.

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

the amount of resource storage 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.

4 nested properties
cpu string

the number cores to be used.

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

the amount of Ephemeral storage to allocate to the pod.

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

the amount of memory to allocate to the pod.

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

the amount of resource storage to allocate to the pod.

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

stores the CPU/Memory requirements for the pod.

4 nested properties
cpu string

the number cores to be used.

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

the amount of Ephemeral storage to allocate to the pod.

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

the amount of memory to allocate to the pod.

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

the amount of resource storage to allocate to the pod.

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

contains all the configuration needed by the deploy steps.

configures an allowlist for transforming manifests.

configures an allowlist for transforming manifests.

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
customActions Action[]

describes a list of user defined actions that can be triggered with skaffold exec.

deploy object

contains all the configuration needed by the deploy steps.

10 nested properties
cloudrun object

alpha deploys the container to Google Cloud Run.

3 nested properties
hooks object

describes the list of lifecycle hooks to execute in the host before and after the Cloud Run deployer.

projectid string

the GCP Project to use for Cloud Run. If specified, all Services will be deployed to this project. If not specified, each Service will be deployed to the project specified in metadata.namespace of the Cloud Run manifest.

region string

GCP location to use for the Cloud Run Deploy. Must be one of the regions listed in https://cloud.google.com/run/docs/locations.

docker object

uses the docker CLI to create application containers in Docker.

2 nested properties
images string[] required

container images to run in Docker.

Default: "[]"
useCompose boolean

tells skaffold whether or not to deploy using docker-compose.

Default: "false"
helm object

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

4 nested properties
concurrency integer

how many packages can be installed concurrently. 0 means "no-limit".

Default: "1"
flags object

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

hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

releases HelmRelease[]

a list of Helm releases.

kpt object

contains all the configuration needed by the deploy steps.

8 nested properties
applyFlags string[]

additional flags passed to kpt live apply.

Default: "[]"
defaultNamespace string

default namespace passed to kpt on deployment if no other override is given.

dir string

equivalent to the dir in kpt live apply <dir>. If not provided, skaffold deploys from the default hydrated path <WORKDIR>/.kpt-pipeline.

flags string[]

kpt global flags.

Default: "[]"
force boolean

used in kpt live init, which forces the inventory values to be updated, even if they are already set.

Default: "false"
inventoryID string

alpha inventory ID which annotates the resources being lively applied by kpt.

name string

alpha inventory object name.

namespace string

alpha sets the inventory namespace.

kubeContext string

Kubernetes context that Skaffold should deploy to.

Examples: "minikube"
kubectl 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.

4 nested properties
defaultNamespace string

default namespace passed to kubectl on deployment if no other override is given.

flags object

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

hooks object

describes the list of lifecycle hooks to execute before and after each deployer step.

remoteManifests string[]

Kubernetes manifests in remote clusters.

Default: "[]"
logs object

configures how container logs are printed as a result of a deployment.

2 nested properties
jsonParse object

defines the rules for parsing/outputting json logs.

prefix string

defines the prefix shown on each log line. Valid values are container: prefix logs lines with the name of the container. podAndContainer: prefix logs lines with the names of the pod and of the container. auto: same as podAndContainer except that the pod name is skipped if it's the same as the container name. none: don't add a prefix.

Default: "auto"
Values: "container" "podAndContainer" "auto" "none"
statusCheck boolean

beta enables waiting for deployments to stabilize.

statusCheckDeadlineSeconds integer

beta deadline for deployments to stabilize in seconds.

tolerateFailuresUntilDeadline boolean

configures the Skaffold "status-check" to tolerate failures (flapping deployments, etc.) until the statusCheckDeadlineSeconds duration or k8s object timeouts such as progressDeadlineSeconds, etc.

Default: "false"
manifests object

contains all the configuration needed by the render steps.

9 nested properties
helm object

defines the manifests from helm releases.

2 nested properties
releases HelmRelease[] required

a list of Helm releases.

flags object

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

hooks object

describes the list of lifecycle hooks to execute before and after each render step.

2 nested properties

describes the list of lifecycle hooks to execute after each render step.

describes the list of lifecycle hooks to execute before each render step. Container hooks will only run if the container exists from a previous deployment step (for instance the successive iterations of a dev-loop during skaffold dev).

kpt string[]

defines the kpt resources in the application.

Default: "[]"
kustomize object

defines the paths to be modified with kustomize, along with extra flags to be passed to kustomize.

2 nested properties
buildArgs string[]

additional args passed to kustomize build.

Default: "[]"
paths string[]

path to Kustomization files.

Default: "["."]"
output string

path to the hydrated directory.

rawYaml string[]

defines the raw kubernetes resources.

Default: "[]"
remoteManifests RemoteManifest[]

Kubernetes manifests in remote clusters.

transform

defines a set of transformation operations to run in series.

validate

defines a set of validator operations to run in series.

metadata object

holds an optional name of the project.

3 nested properties
annotations Record<string, string>

a map of annotations providing additional metadata about the project.

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

a map of labels identifying the project.

Default: "{}"
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.

describes a list of other required configs for the current config.

resourceSelector object

contains all the configuration needed by the deploy steps.

2 nested properties

configures an allowlist for transforming manifests.

configures an allowlist for transforming manifests.

test TestCase[]

describes how images are tested.

describes how images are verified (via verification tests).

Sync object

beta specifies what files to sync into the container. This is a list of sync rules indicating the intent to sync for source files. If no files are listed, sync all the files and infer the destination.

auto boolean

delegates discovery of sync rules to the build system. Only available for jib and buildpacks.

hooks object

describes the list of lifecycle hooks to execute before and after each artifact sync step.

2 nested properties

describes the list of lifecycle hooks to execute after each artifact sync step.

describes the list of lifecycle hooks to execute before each artifact sync step.

infer string[]

file patterns which may be synced into the container The container destination is inferred by the builder based on the instructions of a Dockerfile. Available for docker and kaniko artifacts and custom artifacts that declare dependencies on a dockerfile.

Default: "[]"
manual SyncRule[]

manual sync rules indicating the source and destination.

SyncHookItem object

describes a single lifecycle hook to execute before or after each artifact sync step.

container object

describes a lifecycle hook definition to execute on a container. The container name is inferred from the scope in which this hook is defined.

1 nested properties
command string[] required

command to execute.

Default: "[]"
host object

describes a lifecycle hook definition to execute on the host machine.

3 nested properties
command string[] required

command to execute.

Default: "[]"
dir string

specifies the working directory of the command. If empty, the command runs in the calling process's current directory.

os string[]

an optional slice of operating system names. If the host machine OS is different, then it skips execution.

Default: "[]"
SyncHooks object

describes the list of lifecycle hooks to execute before and after each artifact sync step.

describes the list of lifecycle hooks to execute after each artifact sync step.

describes the list of lifecycle hooks to execute before each artifact sync step.

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.

customTemplate object

beta tags images with a configurable template string.

2 nested properties
template string required

used to produce the image name and tag. See golang text/template. The template is executed against the provided components with those variables injected.

Examples: "{{.DATE}}"
components TaggerComponent[]

TaggerComponents that the template (see field above) can be executed against.

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.

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

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

3 nested properties
ignoreChanges boolean

specifies whether to omit the -dirty postfix if there are uncommitted changes.

Default: "false"
prefix string

adds a fixed prefix to the tag.

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"
inputDigest object

beta tags hashes the image content.

sha256 object

beta tags images with their sha256 digest.

TaggerComponent object

beta a component of CustomTemplateTagger.

TestCase object

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

image string required

artifact on which to run those tests.

Examples: "gcr.io/k8s-skaffold/example"
context string

directory containing the test sources.

Default: "."
custom CustomTest[]

the set of custom tests to run after an artifact is built.

structureTests string[]

the Container Structure Tests to run on that artifact.

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

additional configuration arguments passed to container-structure-test binary.

Default: "[]"
Examples: "["--driver=tar", "--no-color", "-q"]"
Transformer object

describes the supported kpt transformers.

name string required

transformer name. Can only accept skaffold whitelisted tools.

configMap string[]

allows users to provide additional config data to the kpt function.

Default: "[]"
Validator object

describes the supported kpt validators.

name string required

Validator name. Can only accept skaffold whitelisted tools.

configMap string[]

allows users to provide additional config data to the kpt function.

Default: "[]"
VerifyContainer object

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

image string required

container image name.

name string required

name of the container.

args string[]

arguments to the entrypoint. The container image's CMD is used if this is not provided.

Default: "[]"
command string[]

entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided.

Default: "[]"

list of environment variables to set in the container.

VerifyEnvVar object

represents an environment variable present in a Container.

name string required

of the environment variable. Must be a C_IDENTIFIER.

value string

of the environment variable.

VerifyExecutionModeConfig object

contains all the configuration needed by the verify execution modes.

kubernetesCluster object

uses the kubectl CLI to create veriy test case container in a kubernetes cluster.

2 nested properties
jobManifestPath string

path to the kubernetes Job manifest to use for the verify test This manifest will be deployed into the cluster with the Container information replaced by the information in the Container field.

overrides string

inline JSON override to use for the generated kubernetes Job. If this is non-empty, it is used to override the generated object. Similar to the --overrides kubectl flag.

local object

uses the docker CLI to create verify test case containers on the host machine in Docker.

1 nested properties
useLocalImages boolean

if true, will first check if the containers images exist locally before triggering a pull. Defaults to false.

Default: "false"
VerifyTestCase object

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

container object required

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

5 nested properties
image string required

container image name.

name string required

name of the container.

args string[]

arguments to the entrypoint. The container image's CMD is used if this is not provided.

Default: "[]"
command string[]

entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided.

Default: "[]"

list of environment variables to set in the container.

name string required

name descriptor for the verify test.

executionMode object

contains all the configuration needed by the verify execution modes.

2 nested properties
kubernetesCluster object

uses the kubectl CLI to create veriy test case container in a kubernetes cluster.

2 nested properties
jobManifestPath string

path to the kubernetes Job manifest to use for the verify test This manifest will be deployed into the cluster with the Container information replaced by the information in the Container field.

overrides string

inline JSON override to use for the generated kubernetes Job. If this is non-empty, it is used to override the generated object. Similar to the --overrides kubectl flag.

local object

uses the docker CLI to create verify test case containers on the host machine in Docker.

1 nested properties
useLocalImages boolean

if true, will first check if the containers images exist locally before triggering a pull. Defaults to false.

Default: "false"
timeout integer

indicates the max time (in seconds) that the verify test is allowed to run.