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.

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

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

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

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.

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.

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.

3 nested properties
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: "[]"
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).

kpt object

alpha uses the kpt CLI to manage and deploy manifests.

3 nested properties
dir string required

path to the config directory (Required). By default, the Dir contains the application configurations, kustomize config files and declarative kpt functions.

fn object

adds additional configurations used when calling kpt fn.

7 nested properties
fnPath string

directory to discover the declarative kpt functions. If not provided, kpt deployer uses kpt.Dir.

globalScope boolean

sets the global scope for the kpt functions. see kpt help fn run.

Default: "false"
image string

a kpt function image to run the configs imperatively. If provided, kpt.fn.fnPath will be ignored.

mount string[]

a list of storage options to mount to the fn image.

Default: "[]"
network boolean

enables network access for the kpt function containers.

Default: "false"
networkName string

docker network name to run the kpt function containers (default "bridge").

sinkDir string

directory to where the manipulated resource output is stored.

live object

adds additional configurations used when calling kpt live.

2 nested properties
apply object

sets the kpt inventory directory.

options object

adds additional configurations used when calling kpt live apply.

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.

5 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).

manifests string[]

the Kubernetes yaml or json manifests.

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

Kubernetes manifests in remote clusters.

Default: "[]"
kustomize object

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

5 nested properties
buildArgs string[]

additional args passed to kustomize build.

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

paths string[]

path to Kustomization files.

Default: "["."]"
logs object

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

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

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.

2 nested properties
command string[] required

command to execute.

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

Values: "host" "bridge" "container:<name|id>" "none"
noCache boolean

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

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.

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

workerPool string

configures a pool of workers to run the build.

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

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.

name string required

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

artifactOverrides

key value pairs where the key represents the parameter used in the --set-string Helm CLI flag to define a container image and the value corresponds to artifact i.e. ImageName defined in Build.Artifacts section. The resulting command-line is controlled by ImageStrategy.

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.

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

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}}'"}"
cache object

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

4 nested properties
cacheCopyLayers boolean

enables caching of copy layers.

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

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"
noPush boolean

if you only want to build the image, without pushing to a registry.

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

args string[]

additional build flags passed to the builder.

Default: "[]"
Examples: "["-trimpath", "-v"]"
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: "["."]"
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=source.developers.google.com", "GOCACHE=/workspace/.gocache"]"
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: "{"org.opencontainers.image.source":"https://github.com/GoogleContainerTools/skaffold"}"
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.

platforms string[]

list of platforms to build images for. Each platform is of the format os[/arch[/variant]], e.g., linux/amd64. Use ["all"] to build for all platforms supported by the base image. If empty, the builder uses the ko default (["linux/amd64"]). Example: ["linux/amd64", "linux/arm64"].

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

sets the kpt inventory directory.

dir string

equivalent to the dir in kpt live apply <dir>. If not provided, kpt deployer will create a hidden directory .kpt-hydrated to store the manipulated resource output and the kpt inventory-template.yaml file.

inventoryID string

alpha identifier for a group of applied resources. This value is only needed when the kpt live is working on a pre-applied cluster resources.

inventoryNamespace string

alpha sets the inventory namespace.

KptApplyOptions object

adds additional configurations used when calling kpt live apply.

pollPeriod string

sets for the polling period for resource statuses. Default to 2s.

prunePropagationPolicy string

sets the propagation policy for pruning. Possible settings are Background, Foreground, Orphan. Default to "Background".

pruneTimeout string

sets the time threshold to wait for all pruned resources to be deleted.

reconcileTimeout string

sets the time threshold to wait for all resources to reach the current status.

KptDeploy object

alpha uses the kpt CLI to manage and deploy manifests.

dir string required

path to the config directory (Required). By default, the Dir contains the application configurations, kustomize config files and declarative kpt functions.

fn object

adds additional configurations used when calling kpt fn.

7 nested properties
fnPath string

directory to discover the declarative kpt functions. If not provided, kpt deployer uses kpt.Dir.

globalScope boolean

sets the global scope for the kpt functions. see kpt help fn run.

Default: "false"
image string

a kpt function image to run the configs imperatively. If provided, kpt.fn.fnPath will be ignored.

mount string[]

a list of storage options to mount to the fn image.

Default: "[]"
network boolean

enables network access for the kpt function containers.

Default: "false"
networkName string

docker network name to run the kpt function containers (default "bridge").

sinkDir string

directory to where the manipulated resource output is stored.

live object

adds additional configurations used when calling kpt live.

2 nested properties
apply object

sets the kpt inventory directory.

3 nested properties
dir string

equivalent to the dir in kpt live apply <dir>. If not provided, kpt deployer will create a hidden directory .kpt-hydrated to store the manipulated resource output and the kpt inventory-template.yaml file.

inventoryID string

alpha identifier for a group of applied resources. This value is only needed when the kpt live is working on a pre-applied cluster resources.

inventoryNamespace string

alpha sets the inventory namespace.

options object

adds additional configurations used when calling kpt live apply.

4 nested properties
pollPeriod string

sets for the polling period for resource statuses. Default to 2s.

prunePropagationPolicy string

sets the propagation policy for pruning. Possible settings are Background, Foreground, Orphan. Default to "Background".

pruneTimeout string

sets the time threshold to wait for all pruned resources to be deleted.

reconcileTimeout string

sets the time threshold to wait for all resources to reach the current status.

KptFn object

adds additional configurations used when calling kpt fn.

fnPath string

directory to discover the declarative kpt functions. If not provided, kpt deployer uses kpt.Dir.

globalScope boolean

sets the global scope for the kpt functions. see kpt help fn run.

Default: "false"
image string

a kpt function image to run the configs imperatively. If provided, kpt.fn.fnPath will be ignored.

mount string[]

a list of storage options to mount to the fn image.

Default: "[]"
network boolean

enables network access for the kpt function containers.

Default: "false"
networkName string

docker network name to run the kpt function containers (default "bridge").

sinkDir string

directory to where the manipulated resource output is stored.

KptLive object

adds additional configurations used when calling kpt live.

apply object

sets the kpt inventory directory.

3 nested properties
dir string

equivalent to the dir in kpt live apply <dir>. If not provided, kpt deployer will create a hidden directory .kpt-hydrated to store the manipulated resource output and the kpt inventory-template.yaml file.

inventoryID string

alpha identifier for a group of applied resources. This value is only needed when the kpt live is working on a pre-applied cluster resources.

inventoryNamespace string

alpha sets the inventory namespace.

options object

adds additional configurations used when calling kpt live apply.

4 nested properties
pollPeriod string

sets for the polling period for resource statuses. Default to 2s.

prunePropagationPolicy string

sets the propagation policy for pruning. Possible settings are Background, Foreground, Orphan. Default to "Background".

pruneTimeout string

sets the time threshold to wait for all pruned resources to be deleted.

reconcileTimeout string

sets the time threshold to wait for all resources to reach the current status.

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

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

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

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

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

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

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

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.

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.

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.

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
deploy object

contains all the configuration needed by the deploy steps.

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

3 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 deployer step.

kpt object

alpha uses the kpt CLI to manage and deploy manifests.

3 nested properties
dir string required

path to the config directory (Required). By default, the Dir contains the application configurations, kustomize config files and declarative kpt functions.

fn object

adds additional configurations used when calling kpt fn.

live object

adds additional configurations used when calling kpt live.

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.

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

manifests string[]

the Kubernetes yaml or json manifests.

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

Kubernetes manifests in remote clusters.

Default: "[]"
kustomize object

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

5 nested properties
buildArgs string[]

additional args passed to kustomize build.

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

paths string[]

path to Kustomization files.

Default: "["."]"
logs object

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

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

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.

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

contains definition to filter which resource to transform.

type 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 slide of JSON-path-like paths of where to add a labels block if missing.

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

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

3 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 deployer step.

kpt object

alpha uses the kpt CLI to manage and deploy manifests.

3 nested properties
dir string required

path to the config directory (Required). By default, the Dir contains the application configurations, kustomize config files and declarative kpt functions.

fn object

adds additional configurations used when calling kpt fn.

live object

adds additional configurations used when calling kpt live.

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.

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

manifests string[]

the Kubernetes yaml or json manifests.

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

Kubernetes manifests in remote clusters.

Default: "[]"
kustomize object

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

5 nested properties
buildArgs string[]

additional args passed to kustomize build.

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

paths string[]

path to Kustomization files.

Default: "["."]"
logs object

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

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

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.

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

test TestCase[]

describes how images are tested.

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.

2 nested properties
command string[] required

command to execute.

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