Documentation
¶
Index ¶
- Constants
- func NewSkaffoldConfig() util.VersionedConfig
- type Activation
- type Artifact
- type ArtifactType
- type BazelArtifact
- type BuildConfig
- type BuildType
- type BuilderPlugin
- type ClusterDetails
- type DateTimeTagger
- type DeployConfig
- type DeployType
- type DockerArtifact
- type DockerConfig
- type EnvTemplateTagger
- type ExecEnvironment
- type ExecutionEnvironment
- type GitTagger
- type GoogleCloudBuild
- type HelmConventionConfig
- type HelmDeploy
- type HelmDeployFlags
- type HelmFQNConfig
- type HelmImageConfig
- type HelmImageStrategy
- type HelmPackaged
- type HelmRelease
- type JSONPatch
- type JibGradleArtifact
- type JibMavenArtifact
- type KanikoArtifact
- type KanikoBuildContext
- type KanikoCache
- type KubectlDeploy
- type KubectlFlags
- type KustomizeDeploy
- type LocalBuild
- type LocalDir
- type Pipeline
- type Profile
- type ResourceRequirement
- type ResourceRequirements
- type ShaTagger
- type SkaffoldConfig
- type TagPolicy
- type TestCase
Constants ¶
const Version string = "skaffold/v1beta8"
!!! WARNING !!! This config version is already released, please DO NOT MODIFY the structs in this file.
Variables ¶
This section is empty.
Functions ¶
func NewSkaffoldConfig ¶
func NewSkaffoldConfig() util.VersionedConfig
NewSkaffoldConfig creates a SkaffoldConfig
Types ¶
type Activation ¶
type Activation struct {
// Env is a `key=value` pair. The profile is auto-activated if an Environment
// Variable `key` has value `value`.
// For example: `ENV=production`.
Env string `yaml:"env,omitempty"`
// KubeContext is a Kubernetes context for which the profile is auto-activated.
// For example: `minikube`.
KubeContext string `yaml:"kubeContext,omitempty"`
// Command is a Skaffold command for which the profile is auto-activated.
// For example: `dev`.
Command string `yaml:"command,omitempty"`
}
Activation criteria by which a profile is auto-activated.
type Artifact ¶
type Artifact struct {
// ImageName is the name of the image to be built.
// For example: `gcr.io/k8s-skaffold/example`.
ImageName string `yaml:"image,omitempty" yamltags:"required"`
// Workspace is the directory containing the artifact's sources.
// Defaults to `.`.
Workspace string `yaml:"context,omitempty"`
// Sync *alpha* lists local files synced to pods instead
// of triggering an image build when modified.
// This is a mapping of local files to sync to remote folders.
// For example: `{"*.py": ".", "css/**/*.css": "app/css"}`.
Sync map[string]string `yaml:"sync,omitempty"`
// ArtifactType describes how to build an artifact.
ArtifactType `yaml:",inline"`
// BuilderPlugin is the plugin used to build this artifact.
BuilderPlugin *BuilderPlugin `yaml:"plugin,omitempty"`
}
Artifact are the items that need to be built, along with the context in which they should be built.
type ArtifactType ¶
type ArtifactType struct {
// DockerArtifact *beta* describes an artifact built from a Dockerfile.
DockerArtifact *DockerArtifact `yaml:"docker,omitempty" yamltags:"oneOf=artifact"`
// BazelArtifact *beta* requires bazel CLI to be installed and the sources to
// contain [Bazel](https://bazel.build/) configuration files.
BazelArtifact *BazelArtifact `yaml:"bazel,omitempty" yamltags:"oneOf=artifact"`
// JibMavenArtifact *alpha* builds images using the
// [Jib plugin for Maven](https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin).
JibMavenArtifact *JibMavenArtifact `yaml:"jibMaven,omitempty" yamltags:"oneOf=artifact"`
// JibGradleArtifact *alpha* builds images using the
// [Jib plugin for Gradle](https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin).
JibGradleArtifact *JibGradleArtifact `yaml:"jibGradle,omitempty" yamltags:"oneOf=artifact"`
// KanikoArtifact *alpha* builds images using [kaniko](https://github.com/GoogleContainerTools/kaniko).
KanikoArtifact *KanikoArtifact `yaml:"kaniko,omitempty" yamltags:"oneOf=artifact"`
}
ArtifactType describes how to build an artifact.
type BazelArtifact ¶
type BazelArtifact struct {
// BuildTarget is the `bazel build` target to run.
// For example: `//:skaffold_example.tar`.
BuildTarget string `yaml:"target,omitempty" yamltags:"required" json:"target"`
// BuildArgs are additional args to pass to `bazel build`.
// For example: `["-flag", "--otherflag"]`.
BuildArgs []string `yaml:"args,omitempty"`
}
BazelArtifact *beta* describes an artifact built with [Bazel](https://bazel.build/).
type BuildConfig ¶
type BuildConfig struct {
// Artifacts lists the images you're going to be building.
Artifacts []*Artifact `yaml:"artifacts,omitempty"`
// InsecureRegistries is a list of registries declared by the user to be insecure.
// These registries will be connected to via HTTP instead of HTTPS.
InsecureRegistries []string `yaml:"insecureRegistries,omitempty"`
// TagPolicy *beta* determines how images are tagged.
// A few strategies are provided here, although you most likely won't need to care!
// If not specified, it defaults to `gitCommit: {}`.
TagPolicy TagPolicy `yaml:"tagPolicy,omitempty"`
// ExecutionEnvironment is the environment in which the build
// should run. Possible values: googleCloudBuild.
ExecutionEnvironment *ExecutionEnvironment `yaml:"executionEnvironment,omitempty"`
BuildType `yaml:",inline"`
}
BuildConfig contains all the configuration for the build steps.
type BuildType ¶
type BuildType struct {
// LocalBuild *beta* describes how to do a build on the local docker daemon
// and optionally push to a repository.
LocalBuild *LocalBuild `yaml:"local,omitempty" yamltags:"oneOf=build"`
// GoogleCloudBuild *beta* describes how to do a remote build on
// [Google Cloud Build](https://cloud.google.com/cloud-build/).
GoogleCloudBuild *GoogleCloudBuild `yaml:"googleCloudBuild,omitempty" yamltags:"oneOf=build"`
// Cluster *beta* describes how to do an on-cluster build.
Cluster *ClusterDetails `yaml:"cluster,omitempty" yamltags:"oneOf=build"`
}
BuildType contains the specific implementation and parameters needed for the build step. Only one field should be populated.
type BuilderPlugin ¶
type BuilderPlugin struct {
// Name is the name of the build plugin.
Name string `yaml:"name,omitempty"`
// Properties are key-value pairs passed to the plugin.
Properties map[string]interface{} `yaml:"properties,omitempty"`
// Contents
Contents []byte `yaml:",omitempty"`
}
BuilderPlugin contains all fields necessary for specifying a build plugin.
type ClusterDetails ¶
type ClusterDetails struct {
// PullSecret is the path to the secret key file.
PullSecret string `yaml:"pullSecret,omitempty"`
// PullSecretName is the name of the Kubernetes secret for pulling the files
// from the build context and pushing the final image.
// Defaults to `kaniko-secret`.
PullSecretName string `yaml:"pullSecretName,omitempty"`
// Namespace is the Kubernetes namespace.
// Defaults to current namespace in Kubernetes configuration.
Namespace string `yaml:"namespace,omitempty"`
// Timeout is the amount of time (in seconds) that this build is allowed to run.
// Defaults to 20 minutes (`20m`).
Timeout string `yaml:"timeout,omitempty"`
// DockerConfig describes how to mount the local Docker configuration into a pod.
DockerConfig *DockerConfig `yaml:"dockerConfig,omitempty"`
// Resources define the resource requirements for the kaniko pod.
Resources *ResourceRequirements `yaml:"resources,omitempty"`
}
ClusterDetails *beta* describes how to do an on-cluster build.
type DateTimeTagger ¶
type DateTimeTagger struct {
// Format formats the date and time.
// See [#Time.Format](https://golang.org/pkg/time/#Time.Format).
// Defaults to `2006-01-02_15-04-05.999_MST`.
Format string `yaml:"format,omitempty"`
// TimeZone sets the timezone for the date and time.
// See [Time.LoadLocation](https://golang.org/pkg/time/#Time.LoadLocation).
// Defaults to the local timezone.
TimeZone string `yaml:"timezone,omitempty"`
}
DateTimeTagger *beta* tags images with the build timestamp.
type DeployConfig ¶
type DeployConfig struct {
DeployType `yaml:",inline"`
}
DeployConfig contains all the configuration needed by the deploy steps.
type DeployType ¶
type DeployType struct {
// HelmDeploy *beta* uses the `helm` CLI to apply the charts to the cluster.
HelmDeploy *HelmDeploy `yaml:"helm,omitempty" yamltags:"oneOf=deploy"`
// KubectlDeploy *beta* uses a client side `kubectl apply` to deploy manifests.
// You'll need a `kubectl` CLI version installed that's compatible with your cluster.
KubectlDeploy *KubectlDeploy `yaml:"kubectl,omitempty" yamltags:"oneOf=deploy"`
// KustomizeDeploy *beta* uses the `kustomize` CLI to "patch" a deployment for a target environment.
KustomizeDeploy *KustomizeDeploy `yaml:"kustomize,omitempty" yamltags:"oneOf=deploy"`
}
DeployType contains the specific implementation and parameters needed for the deploy step. Only one field should be populated.
type DockerArtifact ¶
type DockerArtifact struct {
// DockerfilePath locates the Dockerfile relative to workspace.
// Defaults to `Dockerfile`.
DockerfilePath string `yaml:"dockerfile,omitempty"`
// Target is the Dockerfile target name to build.
Target string `yaml:"target,omitempty"`
// BuildArgs are arguments passed to the docker build.
// For example: `{"key1": "value1", "key2": "value2"}`.
BuildArgs map[string]*string `yaml:"buildArgs,omitempty"`
// CacheFrom lists the Docker images used as cache sources.
// For example: `["golang:1.10.1-alpine3.7", "alpine:3.7"]`.
CacheFrom []string `yaml:"cacheFrom,omitempty"`
}
DockerArtifact *beta* describes an artifact built from a Dockerfile, usually using `docker build`.
type DockerConfig ¶
type DockerConfig struct {
// Path is the path to the docker `config.json`.
Path string `yaml:"path,omitempty"`
// SecretName is the Kubernetes secret that will hold the Docker configuration.
SecretName string `yaml:"secretName,omitempty"`
}
DockerConfig contains information about the docker `config.json` to mount.
type EnvTemplateTagger ¶
type EnvTemplateTagger struct {
// Template used to produce the image name and tag.
// See golang [text/template](https://golang.org/pkg/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.
// For example: `{{.RELEASE}}-{{.IMAGE_NAME}}`.
Template string `yaml:"template,omitempty" yamltags:"required"`
}
EnvTemplateTagger *beta* tags images with a configurable template string.
type ExecEnvironment ¶
type ExecEnvironment string
ExecEnvironment is the name of an execution environment.
type ExecutionEnvironment ¶
type ExecutionEnvironment struct {
// Name is the name of the environment.
Name ExecEnvironment `yaml:"name,omitempty"`
// Properties are key-value pairs passed to the environment.
Properties map[string]interface{} `yaml:"properties,omitempty"`
}
ExecutionEnvironment is the environment in which the build should run (ex. local or in-cluster, etc.).
type GitTagger ¶
type GitTagger struct{}
GitTagger *beta* tags images with the git tag or commit of the artifact's workspace.
type GoogleCloudBuild ¶
type GoogleCloudBuild struct {
// ProjectID is the 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.
ProjectID string `yaml:"projectId,omitempty"`
// DiskSizeGb is the disk size of the VM that runs the build.
// See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions).
DiskSizeGb int64 `yaml:"diskSizeGb,omitempty"`
// MachineType is the type of the VM that runs the build.
// See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions).
MachineType string `yaml:"machineType,omitempty"`
// Timeout is the amount of time (in seconds) that this build should be allowed to run.
// See [Cloud Build Reference](https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#resource-build).
Timeout string `yaml:"timeout,omitempty"`
// DockerImage is the image that runs a Docker build.
// See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).
// Defaults to `gcr.io/cloud-builders/docker`.
DockerImage string `yaml:"dockerImage,omitempty"`
// MavenImage is the image that runs a Maven build.
// See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).
// Defaults to `gcr.io/cloud-builders/mvn`.
MavenImage string `yaml:"mavenImage,omitempty"`
// GradleImage is the image that runs a Gradle build.
// See [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders).
// Defaults to `gcr.io/cloud-builders/gradle`.
GradleImage string `yaml:"gradleImage,omitempty"`
}
GoogleCloudBuild *beta* describes how to do a remote build on [Google Cloud Build](https://cloud.google.com/cloud-build/docs/). 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.
type HelmConventionConfig ¶
type HelmConventionConfig struct {
}
HelmConventionConfig is the image config in the syntax of image.repository and image.tag.
type HelmDeploy ¶
type HelmDeploy struct {
// Releases is a list of Helm releases.
Releases []HelmRelease `yaml:"releases,omitempty" yamltags:"required"`
// Flags are additional option flags that are passed on the command
// line to `helm`.
Flags HelmDeployFlags `yaml:"flags,omitempty"`
}
HelmDeploy *beta* uses the `helm` CLI to apply the charts to the cluster.
type HelmDeployFlags ¶
type HelmDeployFlags struct {
// Global are additional flags passed on every command.
Global []string `yaml:"global,omitempty"`
// Install are additional flags passed to (`helm install`).
Install []string `yaml:"install,omitempty"`
// Upgrade are additional flags passed to (`helm upgrade`).
Upgrade []string `yaml:"upgrade,omitempty"`
}
HelmDeployFlags are additional option flags that are passed on the command line to `helm`.
type HelmFQNConfig ¶
type HelmFQNConfig struct {
// Property defines the image config.
Property string `yaml:"property,omitempty"`
}
HelmFQNConfig is the image config to use the FullyQualifiedImageName as param to set.
type HelmImageConfig ¶
type HelmImageConfig struct {
// HelmFQNConfig is the image configuration uses the syntax `IMAGE-NAME=IMAGE-REPOSITORY:IMAGE-TAG`.
HelmFQNConfig *HelmFQNConfig `yaml:"fqn,omitempty" yamltags:"oneOf=helmImageStrategy"`
// HelmConventionConfig is the image configuration uses the syntax `IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG`.
HelmConventionConfig *HelmConventionConfig `yaml:"helm,omitempty" yamltags:"oneOf=helmImageStrategy"`
}
HelmImageConfig describes an image configuration.
type HelmImageStrategy ¶
type HelmImageStrategy struct {
HelmImageConfig `yaml:",inline"`
}
HelmImageStrategy adds image configurations to the Helm `values` file.
type HelmPackaged ¶
type HelmPackaged struct {
// Version sets the `version` on the chart to this semver version.
Version string `yaml:"version,omitempty"`
// AppVersion sets the `appVersion` on the chart to this version.
AppVersion string `yaml:"appVersion,omitempty"`
}
HelmPackaged parameters for packaging helm chart (`helm package`).
type HelmRelease ¶
type HelmRelease struct {
// Name is the name of the Helm release.
Name string `yaml:"name,omitempty" yamltags:"required"`
// ChartPath is the path to the Helm chart.
ChartPath string `yaml:"chartPath,omitempty" yamltags:"required"`
// ValuesFiles are the paths to the Helm `values` files.
ValuesFiles []string `yaml:"valuesFiles,omitempty"`
// Values are key-value pairs supplementing the Helm `values` file.
Values map[string]string `yaml:"values,omitempty,omitempty"`
// Namespace is the Kubernetes namespace.
Namespace string `yaml:"namespace,omitempty"`
// Version is the version of the chart.
Version string `yaml:"version,omitempty"`
// SetValues are key-value pairs.
// If present, Skaffold will send `--set` flag to Helm CLI and append all pairs after the flag.
SetValues map[string]string `yaml:"setValues,omitempty"`
// SetValueTemplates are 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.
SetValueTemplates map[string]string `yaml:"setValueTemplates,omitempty"`
// Wait if `true`, Skaffold will send `--wait` flag to Helm CLI.
// Defaults to `false`.
Wait bool `yaml:"wait,omitempty"`
// RecreatePods if `true`, Skaffold will send `--recreate-pods` flag to Helm CLI.
// Defaults to `false`.
RecreatePods bool `yaml:"recreatePods,omitempty"`
// SkipBuildDependencies should build dependencies be skipped.
SkipBuildDependencies bool `yaml:"skipBuildDependencies,omitempty"`
// UseHelmSecrets instructs skaffold to use secrets plugin on deployment.
UseHelmSecrets bool `yaml:"useHelmSecrets,omitempty"`
// Overrides are 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).
Overrides util.HelmOverrides `yaml:"overrides,omitempty"`
// Packaged parameters for packaging helm chart (`helm package`).
Packaged *HelmPackaged `yaml:"packaged,omitempty"`
// ImageStrategy adds image configurations to the Helm `values` file.
ImageStrategy HelmImageStrategy `yaml:"imageStrategy,omitempty"`
}
HelmRelease describes a helm release to be deployed.
type JSONPatch ¶
type JSONPatch struct {
// Op is the operation carried by the patch: `add`, `remove`, `replace`, `move`, `copy` or `test`.
// Defaults to `replace`.
Op string `yaml:"op,omitempty"`
// Path is the position in the yaml where the operation takes place.
// For example, this targets the `dockerfile` of the first artifact built.
// For example: `/build/artifacts/0/docker/dockerfile`.
Path string `yaml:"path,omitempty" yamltags:"required"`
// From is the source position in the yaml, used for `copy` or `move` operations.
From string `yaml:"from,omitempty"`
// Value is the value to apply. Can be any portion of yaml.
Value *util.YamlpatchNode `yaml:"value,omitempty"`
}
JSONPatch patch to be applied by a profile.
type JibGradleArtifact ¶
type JibGradleArtifact struct {
// Project selects which Gradle project to build.
Project string `yaml:"project"`
// Flags are additional build flags passed to Gradle.
// For example: `["--no-build-cache"]`.
Flags []string `yaml:"args,omitempty"`
}
JibGradleArtifact *alpha* builds images using the [Jib plugin for Gradle](https://github.com/GoogleContainerTools/jib/tree/master/jib-gradle-plugin).
type JibMavenArtifact ¶
type JibMavenArtifact struct {
// Module selects which Maven module to build, for a multi module project.
Module string `yaml:"module"`
// Profile selects which Maven profile to activate.
Profile string `yaml:"profile"`
// Flags are additional build flags passed to Maven.
// For example: `["-x", "-DskipTests"]`.
Flags []string `yaml:"args,omitempty"`
}
JibMavenArtifact *alpha* builds images using the [Jib plugin for Maven](https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin).
type KanikoArtifact ¶
type KanikoArtifact struct {
// AdditionalFlags are additional flags to be passed to Kaniko command line.
// See [Kaniko Additional Flags](https://github.com/GoogleContainerTools/kaniko#additional-flags).
// Deprecated - instead the named, unique fields should be used, e.g. `buildArgs`, `cache`, `target`.
AdditionalFlags []string `yaml:"flags,omitempty"`
// DockerfilePath locates the Dockerfile relative to workspace.
// Defaults to `Dockerfile`.
DockerfilePath string `yaml:"dockerfile,omitempty"`
// Target is the Dockerfile target name to build.
Target string `yaml:"target,omitempty"`
// BuildArgs are arguments passed to the docker build.
// For example: `{"key1": "value1", "key2": "value2"}`.
BuildArgs map[string]*string `yaml:"buildArgs,omitempty"`
// BuildContext is where the build context for this artifact resides.
BuildContext *KanikoBuildContext `yaml:"buildContext,omitempty"`
// Image is the Docker image used by the Kaniko pod.
// Defaults to the latest released version of `gcr.io/kaniko-project/executor`.
Image string `yaml:"image,omitempty"`
// Cache configures Kaniko caching. If a cache is specified, Kaniko will
// use a remote cache which will speed up builds.
Cache *KanikoCache `yaml:"cache,omitempty"`
}
KanikoArtifact *alpha* describes an artifact built from a Dockerfile, with kaniko.
type KanikoBuildContext ¶
type KanikoBuildContext struct {
// GCSBucket is the CGS bucket to which sources are uploaded.
// Kaniko will need access to that bucket to download the sources.
GCSBucket string `yaml:"gcsBucket,omitempty" yamltags:"oneOf=buildContext"`
// LocalDir configures how Kaniko mounts sources directly via an `emptyDir` volume.
LocalDir *LocalDir `yaml:"localDir,omitempty" yamltags:"oneOf=buildContext"`
}
KanikoBuildContext contains the different fields available to specify a Kaniko build context.
type KanikoCache ¶
type KanikoCache struct {
// Repo is a remote repository to store cached layers. If none is specified, one will be
// inferred from the image name. See [Kaniko Caching](https://github.com/GoogleContainerTools/kaniko#caching).
Repo string `yaml:"repo,omitempty"`
}
KanikoCache configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds.
type KubectlDeploy ¶
type KubectlDeploy struct {
// Manifests lists the Kubernetes yaml or json manifests.
// Defaults to `["k8s/*.yaml"]`.
Manifests []string `yaml:"manifests,omitempty"`
// RemoteManifests lists Kubernetes manifests in remote clusters.
RemoteManifests []string `yaml:"remoteManifests,omitempty"`
// Flags are additional flags passed to `kubectl`.
Flags KubectlFlags `yaml:"flags,omitempty"`
}
KubectlDeploy *beta* uses a client side `kubectl apply` to deploy manifests. You'll need a `kubectl` CLI version installed that's compatible with your cluster.
type KubectlFlags ¶
type KubectlFlags struct {
// Global are additional flags passed on every command.
Global []string `yaml:"global,omitempty"`
// Apply are additional flags passed on creations (`kubectl apply`).
Apply []string `yaml:"apply,omitempty"`
// Delete are additional flags passed on deletions (`kubectl delete`).
Delete []string `yaml:"delete,omitempty"`
}
KubectlFlags are additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete).
type KustomizeDeploy ¶
type KustomizeDeploy struct {
// KustomizePath is the path to Kustomization files.
// Defaults to `.`.
KustomizePath string `yaml:"path,omitempty"`
// Flags are additional flags passed to `kubectl`.
Flags KubectlFlags `yaml:"flags,omitempty"`
}
KustomizeDeploy *beta* uses the `kustomize` CLI to "patch" a deployment for a target environment.
type LocalBuild ¶
type LocalBuild struct {
// Push should images be pushed to a registry.
// If not specified, images are pushed only if the current Kubernetes context
// connects to a remote cluster.
Push *bool `yaml:"push,omitempty"`
// UseDockerCLI use `docker` command-line interface instead of Docker Engine APIs.
UseDockerCLI bool `yaml:"useDockerCLI,omitempty"`
// UseBuildkit use BuildKit to build Docker images.
UseBuildkit bool `yaml:"useBuildkit,omitempty"`
}
LocalBuild *beta* describes how to do a build on the local docker daemon and optionally push to a repository.
type LocalDir ¶
type LocalDir struct {
// InitImage is the image used to run init container which mounts kaniko context.
InitImage string `yaml:"initImage,omitempty"`
}
LocalDir configures how Kaniko mounts sources directly via an `emptyDir` volume.
type Pipeline ¶
type Pipeline struct {
// Build describes how images are built.
Build BuildConfig `yaml:"build,omitempty"`
// Test describes how images are tested.
Test []*TestCase `yaml:"test,omitempty"`
// Deploy describes how images are deployed.
Deploy DeployConfig `yaml:"deploy,omitempty"`
}
Pipeline describes a Skaffold pipeline.
type Profile ¶
type Profile struct {
// Name is a unique profile name.
// For example: `profile-prod`.
Name string `yaml:"name,omitempty" yamltags:"required"`
// Pipeline contains the definitions to replace the default skaffold pipeline.
Pipeline `yaml:",inline"`
// Patches lists patches applied to the configuration.
// Patches use the JSON patch notation.
Patches []JSONPatch `yaml:"patches,omitempty"`
// 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.
Activation []Activation `yaml:"activation,omitempty"`
}
Profile *beta* profiles are used to override any `build`, `test` or `deploy` configuration.
type ResourceRequirement ¶
type ResourceRequirement struct {
// CPU the number cores to be used.
// For example: `2`, `2.0` or `200m`.
CPU string `yaml:"cpu,omitempty"`
// Memory the amount of memory to allocate to the pod.
// For example: `1Gi` or `1000Mi`.
Memory string `yaml:"memory,omitempty"`
}
ResourceRequirement stores the CPU/Memory requirements for the pod.
type ResourceRequirements ¶
type ResourceRequirements struct {
// Requests [resource requests](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) for the Kaniko pod.
Requests *ResourceRequirement `yaml:"requests,omitempty"`
// Limits [resource limits](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) for the Kaniko pod.
Limits *ResourceRequirement `yaml:"limits,omitempty"`
}
ResourceRequirements describes the resource requirements for the kaniko pod.
type SkaffoldConfig ¶
type SkaffoldConfig struct {
// APIVersion is the version of the configuration.
APIVersion string `yaml:"apiVersion" yamltags:"required"`
// Kind is always `Config`. Defaults to `Config`.
Kind string `yaml:"kind" yamltags:"required"`
// Pipeline defines the Build/Test/Deploy phases.
Pipeline `yaml:",inline"`
// Profiles *beta* can override be used to `build`, `test` or `deploy` configuration.
Profiles []Profile `yaml:"profiles,omitempty"`
}
SkaffoldConfig holds the fields parsed from the Skaffold configuration file (skaffold.yaml).
func (*SkaffoldConfig) GetVersion ¶
func (c *SkaffoldConfig) GetVersion() string
func (*SkaffoldConfig) Upgrade ¶
func (c *SkaffoldConfig) Upgrade() (util.VersionedConfig, error)
Upgrade upgrades a configuration to the next version. Config changes from v1beta8 to v1beta9
- Additions: gitTagger/variant
- Removed all schemas associated with builder plugins
- No updates
type TagPolicy ¶
type TagPolicy struct {
// GitTagger *beta* tags images with the git tag or commit of the artifact's workspace.
GitTagger *GitTagger `yaml:"gitCommit,omitempty" yamltags:"oneOf=tag"`
// ShaTagger *beta* tags images with their sha256 digest.
ShaTagger *ShaTagger `yaml:"sha256,omitempty" yamltags:"oneOf=tag"`
// EnvTemplateTagger *beta* tags images with a configurable template string.
EnvTemplateTagger *EnvTemplateTagger `yaml:"envTemplate,omitempty" yamltags:"oneOf=tag"`
// DateTimeTagger *beta* tags images with the build timestamp.
DateTimeTagger *DateTimeTagger `yaml:"dateTime,omitempty" yamltags:"oneOf=tag"`
}
TagPolicy contains all the configuration for the tagging step.
type TestCase ¶
type TestCase struct {
// ImageName is the artifact on which to run those tests.
// For example: `gcr.io/k8s-skaffold/example`.
ImageName string `yaml:"image" yamltags:"required"`
// StructureTests lists the [Container Structure Tests](https://github.com/GoogleContainerTools/container-structure-test)
// to run on that artifact.
// For example: `["./test/*"]`.
StructureTests []string `yaml:"structureTests,omitempty"`
}
TestCase is a list of structure tests to run on images that Skaffold builds.