Documentation ¶
Index ¶
- Constants
- func NewSkaffoldConfig() util.VersionedConfig
- type Artifact
- type ArtifactType
- type BazelArtifact
- type BuildConfig
- type BuildType
- type DateTimeTagger
- type DeployConfig
- type DeployType
- type DockerArtifact
- type EnvTemplateTagger
- type GitTagger
- type GoogleCloudBuild
- type HelmConventionConfig
- type HelmDeploy
- type HelmFQNConfig
- type HelmImageConfig
- type HelmImageStrategy
- type HelmPackaged
- type HelmRelease
- type KanikoBuild
- type KanikoBuildContext
- type KubectlDeploy
- type KubectlFlags
- type KustomizeDeploy
- type LocalBuild
- type Profile
- type ShaTagger
- type SkaffoldConfig
- type TagPolicy
Constants ¶
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 EnvTemplateTagger ¶
type EnvTemplateTagger struct {
Template string `yaml:"template"`
}
EnvTemplateTagger contains the configuration for the envTemplate 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 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