v1alpha3

package
v0.0.0-...-15868fb Latest Latest
Warning

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

Go to latest
Published: May 1, 2019 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const Version string = "skaffold/v1alpha3"

Variables

This section is empty.

Functions

func NewSkaffoldConfig

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

func (config *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