v1alpha3

package
v1.35.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 18, 2021 License: Apache-2.0 Imports: 3 Imported by: 2

Documentation

Index

Constants

View Source
const Version string = "skaffold/v1alpha3"

!!! WARNING !!! This config version is already released, please DO NOT MODIFY the structs in this file.

Variables

This section is empty.

Functions

func NewSkaffoldConfig added in v0.28.0

func NewSkaffoldConfig() util.VersionedConfig

NewSkaffoldConfig creates a SkaffoldConfig

Types

type Artifact

type Artifact struct {
	ImageName    string `yaml:"imageName"`
	Workspace    string `yaml:"workspace,omitempty"`
	ArtifactType `yaml:",inline"`
}

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

type ArtifactType

type ArtifactType struct {
	DockerArtifact *DockerArtifact `yaml:"docker,omitempty" yamltags:"oneOf=artifact"`
	BazelArtifact  *BazelArtifact  `yaml:"bazel,omitempty" yamltags:"oneOf=artifact"`
}

type BazelArtifact

type BazelArtifact struct {
	BuildTarget string `yaml:"target"`
}

type BuildConfig

type BuildConfig struct {
	Artifacts []*Artifact `yaml:"artifacts,omitempty"`
	TagPolicy TagPolicy   `yaml:"tagPolicy,omitempty"`
	BuildType `yaml:",inline"`
}

BuildConfig contains all the configuration for the build steps

type BuildType

type BuildType struct {
	LocalBuild       *LocalBuild       `yaml:"local,omitempty" yamltags:"oneOf=build"`
	GoogleCloudBuild *GoogleCloudBuild `yaml:"googleCloudBuild,omitempty" yamltags:"oneOf=build"`
	KanikoBuild      *KanikoBuild      `yaml:"kaniko,omitempty" yamltags:"oneOf=build"`
}

BuildType contains the specific implementation and parameters needed for the build step. Only one field should be populated.

type DateTimeTagger

type DateTimeTagger struct {
	Format   string `yaml:"format,omitempty"`
	TimeZone string `yaml:"timezone,omitempty"`
}

DateTimeTagger contains the configuration for the DateTime tagger.

type DeployConfig

type DeployConfig struct {
	DeployType `yaml:",inline"`
}

DeployConfig contains all the configuration needed by the deploy steps

type DeployType

type DeployType struct {
	HelmDeploy      *HelmDeploy      `yaml:"helm,omitempty" yamltags:"oneOf=deploy"`
	KubectlDeploy   *KubectlDeploy   `yaml:"kubectl,omitempty" yamltags:"oneOf=deploy"`
	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 string             `yaml:"dockerfilePath,omitempty"`
	BuildArgs      map[string]*string `yaml:"buildArgs,omitempty"`
	CacheFrom      []string           `yaml:"cacheFrom,omitempty"`
	Target         string             `yaml:"target,omitempty"`
}

type EnvTemplateTagger

type EnvTemplateTagger struct {
	Template string `yaml:"template"`
}

EnvTemplateTagger contains the configuration for the envTemplate tagger.

type GitTagger

type GitTagger struct{}

GitTagger contains the configuration for the git tagger.

type GoogleCloudBuild

type GoogleCloudBuild struct {
	ProjectID   string `yaml:"projectId"`
	DiskSizeGb  int64  `yaml:"diskSizeGb,omitempty"`
	MachineType string `yaml:"machineType,omitempty"`
	Timeout     string `yaml:"timeout,omitempty"`
	DockerImage string `yaml:"dockerImage,omitempty"`
}

GoogleCloudBuild contains the fields needed to do a remote build on Google Cloud Build.

type HelmConventionConfig

type HelmConventionConfig struct {
}

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

type HelmDeploy

type HelmDeploy struct {
	Releases []HelmRelease `yaml:"releases,omitempty"`
}

HelmDeploy contains the configuration needed for deploying with helm

type HelmFQNConfig

type HelmFQNConfig struct {
	Property string `yaml:"property"`
}

HelmFQNConfig represents image config to use the FullyQualifiedImageName as param to set

type HelmImageConfig

type HelmImageConfig struct {
	HelmFQNConfig        *HelmFQNConfig        `yaml:"fqn" yamltags:"oneOf=helmImageStrategy"`
	HelmConventionConfig *HelmConventionConfig `yaml:"helm" yamltags:"oneOf=helmImageStrategy"`
}

type HelmImageStrategy

type HelmImageStrategy struct {
	HelmImageConfig `yaml:",inline"`
}

type HelmPackaged

type HelmPackaged struct {
	// Version sets the version on the chart to this semver version.
	Version string `yaml:"version"`

	// AppVersion set the appVersion on the chart to this version
	AppVersion string `yaml:"appVersion"`
}

HelmPackaged represents parameters for packaging helm chart.

type HelmRelease

type HelmRelease struct {
	Name              string             `yaml:"name"`
	ChartPath         string             `yaml:"chartPath"`
	ValuesFiles       []string           `yaml:"valuesFiles"`
	Values            map[string]string  `yaml:"values,omitempty"`
	Namespace         string             `yaml:"namespace"`
	Version           string             `yaml:"version"`
	SetValues         map[string]string  `yaml:"setValues"`
	SetValueTemplates map[string]string  `yaml:"setValueTemplates"`
	Wait              bool               `yaml:"wait"`
	RecreatePods      bool               `yaml:"recreatePods"`
	Overrides         util.HelmOverrides `yaml:"overrides"`
	Packaged          *HelmPackaged      `yaml:"packaged"`
	ImageStrategy     HelmImageStrategy  `yaml:"imageStrategy"`
}

type KanikoBuild

type KanikoBuild struct {
	BuildContext   KanikoBuildContext `yaml:"buildContext,omitempty"`
	PullSecret     string             `yaml:"pullSecret,omitempty"`
	PullSecretName string             `yaml:"pullSecretName,omitempty"`
	Namespace      string             `yaml:"namespace,omitempty"`
	Timeout        string             `yaml:"timeout,omitempty"`
}

KanikoBuild contains the fields needed to do a on-cluster build using the kaniko image

type KanikoBuildContext

type KanikoBuildContext struct {
	GCSBucket string `yaml:"gcsBucket,omitempty" yamltags:"oneOf=buildContext"`
}

KanikoBuildContext contains the different fields available to specify a kaniko build context

type KubectlDeploy

type KubectlDeploy struct {
	Manifests       []string     `yaml:"manifests,omitempty"`
	RemoteManifests []string     `yaml:"remoteManifests,omitempty"`
	Flags           KubectlFlags `yaml:"flags,omitempty"`
}

KubectlDeploy contains the configuration needed for deploying with `kubectl apply`

type KubectlFlags

type KubectlFlags struct {
	Global []string `yaml:"global,omitempty"`
	Apply  []string `yaml:"apply,omitempty"`
	Delete []string `yaml:"delete,omitempty"`
}

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

type KustomizeDeploy

type KustomizeDeploy struct {
	KustomizePath string       `yaml:"kustomizePath,omitempty"`
	Flags         KubectlFlags `yaml:"flags,omitempty"`
}

type LocalBuild

type LocalBuild struct {
	SkipPush     *bool `yaml:"skipPush,omitempty"`
	UseDockerCLI bool  `yaml:"useDockerCLI,omitempty"`
	UseBuildkit  bool  `yaml:"useBuildkit,omitempty"`
}

LocalBuild contains the fields needed to do a build on the local docker daemon and optionally push to a repository.

type Profile

type Profile struct {
	Name   string       `yaml:"name"`
	Build  BuildConfig  `yaml:"build,omitempty"`
	Deploy DeployConfig `yaml:"deploy,omitempty"`
}

Profile is additional configuration that overrides default configuration when it is activated.

type ShaTagger

type ShaTagger struct{}

ShaTagger contains the configuration for the SHA tagger.

type SkaffoldConfig

type SkaffoldConfig struct {
	APIVersion string `yaml:"apiVersion"`
	Kind       string `yaml:"kind"`

	Build    BuildConfig  `yaml:"build,omitempty"`
	Deploy   DeployConfig `yaml:"deploy,omitempty"`
	Profiles []Profile    `yaml:"profiles,omitempty"`
}

func (*SkaffoldConfig) GetVersion

func (c *SkaffoldConfig) GetVersion() string

func (*SkaffoldConfig) Upgrade added in v0.28.0

func (c *SkaffoldConfig) Upgrade() (util.VersionedConfig, error)

Upgrade upgrades a configuration to the next version. Config changes from v1alpha3 to v1alpha4: 1. Additions:

  • SkaffoldConfig.Test, Profile.Test, TestCase, TestConfig
  • KanikoBuildContext.LocalDir, LocalDir
  • KanikoBuild.Image
  • Artifact.Sync
  • JibMavenArtifact, JibGradleArtifact

2. No removal 3. Updates

  • EnvTemplate.Template is now optional in yaml
  • LocalBuild.SkipPush=false (v1alpha3) -> LocalBuild.Push=true (v1alpha4)_
  • kustomizePath -> path in yaml
  • HelmRelease, HelmPackaged, HelmFQNConfig fields are optional in yaml,
  • Artifact.imageName -> image, workspace -> context in yaml
  • DockerArtifact.dockerfilePath -> dockerfile in yaml
  • BazelArtifact.BuildTarget is optional in yaml

type TagPolicy

type TagPolicy struct {
	GitTagger         *GitTagger         `yaml:"gitCommit,omitempty" yamltags:"oneOf=tag"`
	ShaTagger         *ShaTagger         `yaml:"sha256,omitempty" yamltags:"oneOf=tag"`
	EnvTemplateTagger *EnvTemplateTagger `yaml:"envTemplate,omitempty" yamltags:"oneOf=tag"`
	DateTimeTagger    *DateTimeTagger    `yaml:"dateTime,omitempty" yamltags:"oneOf=tag"`
}

TagPolicy contains all the configuration for the tagging step

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL