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=value pair. The profile is auto-activated if an Environment Variable key has value value.

Examples: "ENV=production"
kubeContext string

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

Examples: "minikube"
Artifact object

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

BazelArtifact object

beta describes an artifact built with Bazel.

target string required

bazel build target to run.

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

additional args to pass to bazel build.

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

contains all the configuration for the build steps.

BuilderPlugin object

contains all fields necessary for specifying a build plugin.

name string

name of the build plugin.

properties Record<string, any>

key-value pairs passed to the plugin.

Default: "{}"
ClusterDetails object

beta describes how to do an on-cluster build.

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 will hold the Docker configuration.

namespace string

Kubernetes namespace. Defaults to current namespace in Kubernetes configuration.

pullSecret string

path to the secret key file.

pullSecretName string

name of the Kubernetes secret for pulling the files from the build context and pushing the final image.

Default: "kaniko-secret"
timeout string

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

DateTimeTagger object

beta tags images with the build timestamp.

format string

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

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

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

DeployConfig object

contains all the configuration needed by the deploy steps.

DockerArtifact object

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

buildArgs Record<string, string>

arguments passed to the docker build.

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

the Docker images used as cache sources.

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

locates the Dockerfile relative to workspace.

Default: "Dockerfile"
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 will hold the Docker configuration.

EnvTemplateTagger object

beta tags images with a configurable template string.

template string required

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

Examples: "{{.RELEASE}}-{{.IMAGE_NAME}}"
ExecEnvironment string

name of an execution environment.

ExecutionEnvironment object

environment in which the build should run (ex. local or in-cluster, etc.).

name string

name of an execution environment.

properties Record<string, any>

key-value pairs passed to the environment.

Default: "{}"
GitTagger object

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

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.

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"
machineType string

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

mavenImage string

image that runs a Maven build. See Cloud Builders.

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

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

timeout string

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

HelmConventionConfig object

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

HelmDeploy object

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

releases HelmRelease[] required

a list of Helm releases.

flags object

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

3 nested properties
global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
HelmDeployFlags object

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

global string[]

additional flags passed on every command.

Default: "[]"
install string[]

additional flags passed to (helm install).

Default: "[]"
upgrade string[]

additional flags passed to (helm upgrade).

Default: "[]"
HelmFQNConfig object

image config to use the FullyQualifiedImageName as param to set.

property string

defines the image config.

HelmImageStrategy object

adds image configurations to the Helm values file.

HelmPackaged object

parameters for packaging helm chart (helm package).

appVersion string

sets the appVersion on the chart to this version.

version string

sets the version on the chart to this semver version.

HelmRelease object

describes a helm release to be deployed.

chartPath string required

path to the Helm chart.

name string required

name of the Helm release.

imageStrategy object

adds image configurations to the Helm values file.

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

Kubernetes namespace.

overrides

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

packaged object

parameters for packaging helm chart (helm package).

2 nested properties
appVersion string

sets the appVersion on the chart to this version.

version string

sets the version on the chart to this semver version.

recreatePods boolean

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

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

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

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

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

Default: "{}"
skipBuildDependencies boolean

should build dependencies be skipped.

Default: "false"
useHelmSecrets boolean

instructs skaffold to use secrets plugin on deployment.

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

key-value pairs supplementing the Helm values file.

Default: "{}"
valuesFiles string[]

paths to the Helm values files.

Default: "[]"
version string

version of the chart.

wait boolean

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

Default: "false"
JSONPatch object

patch to be applied by a profile.

path string required

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

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

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

op string

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

Default: "replace"
value

value to apply. Can be any portion of yaml.

JibGradleArtifact object

alpha builds images using the Jib plugin for Gradle.

args string[]

additional build flags passed to Gradle.

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

selects which Gradle project to build.

JibMavenArtifact object

alpha builds images using the Jib plugin for Maven.

args string[]

additional build flags passed to Maven.

Default: "[]"
Examples: "["-x", "-DskipTests"]"
module string

selects which Maven module to build, for a multi module project.

profile string

selects which Maven profile to activate.

KanikoArtifact object

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

buildArgs Record<string, string>

arguments passed to the docker build.

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

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

2 nested properties
gcsBucket string

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

localDir object

configures how Kaniko mounts sources directly via an emptyDir volume.

1 nested properties
initImage string

image used to run init container which mounts kaniko context.

cache object

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

1 nested properties
repo string

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

dockerfile string

locates the Dockerfile relative to workspace.

Default: "Dockerfile"
flags string[]

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

Default: "[]"
image string

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

target string

Dockerfile target name to build.

KanikoBuildContext object

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

gcsBucket string

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

localDir object

configures how Kaniko mounts sources directly via an emptyDir volume.

1 nested properties
initImage string

image used to run init container which mounts kaniko context.

KanikoCache object

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

repo string

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

KubectlDeploy object

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

flags object

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

3 nested properties
apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
manifests string[]

the Kubernetes yaml or json manifests.

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

Kubernetes manifests in remote clusters.

Default: "[]"
KubectlFlags object

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

apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
KustomizeDeploy object

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

flags object

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

3 nested properties
apply string[]

additional flags passed on creations (kubectl apply).

Default: "[]"
delete string[]

additional flags passed on deletions (kubectl delete).

Default: "[]"
global string[]

additional flags passed on every command.

Default: "[]"
path string

path to Kustomization files.

Default: "."
LocalBuild object

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

push boolean

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

useBuildkit boolean

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

useDockerCLI boolean

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

Default: "false"
LocalDir object

configures how Kaniko mounts sources directly via an emptyDir volume.

initImage string

image used to run init container which mounts kaniko context.

Profile object

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

name string required

a unique profile name.

Examples: "profile-prod"
activation Activation[]

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

build object

contains all the configuration for the build steps.

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

contains all the configuration needed by the deploy steps.

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

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

test TestCase[]

replaces the main test configuration.

ShaTagger object

beta tags images with their sha256 digest.

SkaffoldConfig object

describes a Skaffold pipeline.

apiVersion string

version of the configuration.

build object

contains all the configuration for the build steps.

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

contains all the configuration needed by the deploy steps.

Any of: variant, object object, object object, object object
kind string

always Config.

Default: "Config"
profiles Profile[]

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

test TestCase[]

describes how images are tested.

TagPolicy object

contains all the configuration for the tagging step.

dateTime object

beta tags images with the build timestamp.

2 nested properties
format string

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

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

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

envTemplate object

beta tags images with a configurable template string.

1 nested properties
template string required

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

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

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

sha256 object

beta tags images with their sha256 digest.

TestCase object

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

image string required

artifact on which to run those tests.

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

the Container Structure Tests to run on that artifact.

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