deploy

package
v1.0.0-alpha.6 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2019 License: Apache-2.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultHelmTimeout = 24 * time.Hour

	TrackAnnoName          = "werf/track"
	HelmHookAnnoName       = "helm.sh/hook"
	HelmHookWeightAnnoName = "helm.sh/hook-weight"

	TrackDisabled  TrackAnno = "false"
	TrackTillDone  TrackAnno = "till_done"
	TrackTillReady TrackAnno = "till_ready"
)
View Source
const (
	ProjectHelmChartDir            = ".helm"
	ProjectDefaultSecretValuesFile = ProjectHelmChartDir + "/secret-values.yaml"
	ProjectSecretDir               = ProjectHelmChartDir + "/secret"

	WerfChartDecodedSecretDir = "decoded-secret"
	WerfChartMoreValuesDir    = "more-values"
)
View Source
const (
	TemplateEmptyValue = "\"-\""
)

Variables

View Source
var WerfChartHelpersTpl = []byte(`{{- define "werf_secret_file" -}}
{{-   $relative_file_path := index . 0 -}}
{{-   $context := index . 1 -}}
{{-   $context.Files.Get (print "` + WerfChartDecodedSecretDir + `/" $relative_file_path) -}}
{{- end -}}

{{- define "_image" -}}
{{-   $context := index . 0 -}}
{{-   if not $context.Values.global.werf.is_nameless_image -}}
{{-     required "No image specified for template" nil -}}
{{-   end -}}
{{    $context.Values.global.werf.image.docker_image }}
{{- end -}}

{{- define "_image2" -}}
{{-   $name := index . 0 -}}
{{-   $context := index . 1 -}}
{{-   if $context.Values.global.werf.is_nameless_image -}}
{{-     required (printf "No image should be specified for template, got '%s'" $name) nil -}}
{{-   end -}}
{{    index (required (printf "Unknown image '%s' specified for template" $name) (pluck $name $context.Values.global.werf.image | first)) "docker_image" }}
{{- end -}}

{{- define "image" -}}
{{-   if eq (typeOf .) "chartutil.Values" -}}
{{-     $context := . -}}
{{      tuple $context | include "_image" }}
{{-   else if (ge (len .) 2) -}}
{{-     $name := index . 0 -}}
{{-     $context := index . 1 -}}
{{      tuple $name $context | include "_image2" }}
{{-   else -}}
{{-     $context := index . 0 -}}
{{      tuple $context | include "_image" }}
{{-   end -}}
{{- end -}}

{{- define "_werf_container__imagePullPolicy" -}}
{{-   $context := index . 0 -}}
{{-   if $context.Values.global.werf.ci.is_branch -}}
imagePullPolicy: Always
{{-   end -}}
{{- end -}}

{{- define "_werf_container__image" -}}
{{-   $context := index . 0 -}}
image: {{ tuple $context | include "_image" }}
{{- end -}}

{{- define "_werf_container__image2" -}}
{{-   $name := index . 0 -}}
{{-   $context := index . 1 -}}
image: {{ tuple $name $context | include "_image2" }}
{{- end -}}

{{- define "werf_container_image" -}}
{{-   if eq (typeOf .) "chartutil.Values" -}}
{{-     $context := . -}}
{{      tuple $context | include "_werf_container__image" }}
{{      tuple $context | include "_werf_container__imagePullPolicy" }}
{{-   else if (ge (len .) 2) -}}
{{-     $name := index . 0 -}}
{{-     $context := index . 1 -}}
{{      tuple $name $context | include "_werf_container__image2" }}
{{      tuple $context | include "_werf_container__imagePullPolicy" }}
{{-   else -}}
{{-     $context := index . 0 -}}
{{      tuple $context | include "_werf_container__image" }}
{{      tuple $context | include "_werf_container__imagePullPolicy" }}
{{-   end -}}
{{- end -}}

{{- define "_image_id" -}}
{{-   $context := index . 0 -}}
{{-   if not $context.Values.global.werf.is_nameless_image -}}
{{-     required "No image specified for template" nil -}}
{{-   end -}}
{{    $context.Values.global.werf.image.docker_image_id }}
{{- end -}}

{{- define "_image_id2" -}}
{{-   $name := index . 0 -}}
{{-   $context := index . 1 -}}
{{-   if $context.Values.global.werf.is_nameless_image -}}
{{-     required (printf "No image should be specified for template, got '%s'" $name) nil -}}
{{-   end -}}
{{    index (required (printf "Unknown image '%s' specified for template" $name) (pluck $name $context.Values.global.werf.image | first)) "docker_image_id" }}
{{- end -}}

{{- define "image_id" -}}
{{-   if eq (typeOf .) "chartutil.Values" -}}
{{-     $context := . -}}
{{      tuple $context | include "_image_id" }}
{{-   else if (ge (len .) 2) -}}
{{-     $name := index . 0 -}}
{{-     $context := index . 1 -}}
{{      tuple $name $context | include "_image_id2" }}
{{-   else -}}
{{-     $context := index . 0 -}}
{{      tuple $context | include "_image_id" }}
{{-   end -}}
{{- end -}}

{{- define "_werf_container_env" -}}
{{-   $context := index . 0 -}}
{{-   if $context.Values.global.werf.ci.is_branch -}}
- name: DOCKER_IMAGE_ID
  value: {{ tuple $context | include "_image_id" }}
{{-   else -}}
- name: DOCKER_IMAGE_ID
  value: "-"
{{-   end -}}
{{- end -}}

{{- define "_werf_container_env2" -}}
{{-   $name := index . 0 -}}
{{-   $context := index . 1 -}}
{{-   if $context.Values.global.werf.ci.is_branch -}}
- name: DOCKER_IMAGE_ID
  value: {{ tuple $name $context | include "_image_id2" }}
{{-   else -}}
- name: DOCKER_IMAGE_ID
  value: "-"
{{-   end -}}
{{- end -}}

{{- define "werf_container_env" -}}
{{-   if eq (typeOf .) "chartutil.Values" -}}
{{-     $context := . -}}
{{      tuple $context | include "_werf_container_env" }}
{{-   else if (ge (len .) 2) -}}
{{-     $name := index . 0 -}}
{{-     $context := index . 1 -}}
{{      tuple $name $context | include "_werf_container_env2" }}
{{-   else -}}
{{-     $context := index . 0 -}}
{{      tuple $context | include "_werf_container_env" }}
{{-   end -}}
{{- end -}}
`)

Functions

func DeployHelmChart

func DeployHelmChart(chartPath string, releaseName string, namespace string, opts HelmChartOptions) error

func GetServiceValues

func GetServiceValues(projectName, repo, namespace, dockerTag string, localGit GitInfoGetter, images []ImageInfoGetter, opts ServiceValuesOptions) (map[string]interface{}, error)

func HelmCmd

func HelmCmd(args ...string) (stdout string, stderr string, err error)

func HelmVersion

func HelmVersion() (*version.Version, error)

func Init

func Init() error

func PurgeHelmRelease

func PurgeHelmRelease(releaseName string, opts CommonHelmOptions) error

func RunDeploy

func RunDeploy(projectDir, repo, tag, release, namespace string, werfConfig *config.WerfConfig, opts DeployOptions) error

func RunDismiss

func RunDismiss(release, namespace, kubeContext string, opts DismissOptions) error

func RunLint

func RunLint(projectDir string, werfConfig *config.WerfConfig, opts LintOptions) error

func RunRender

func RunRender(projectDir string, werfConfig *config.WerfConfig, opts RenderOptions) error

Types

type ChartConfig

type ChartConfig struct {
	Name string `json:"name"`
}

type ChartTemplates

type ChartTemplates []*Template

func (*ChartTemplates) ByKind

func (templates *ChartTemplates) ByKind(kind string) []*Template

func (*ChartTemplates) DaemonSets

func (templates *ChartTemplates) DaemonSets() []*Template

func (*ChartTemplates) Deployments

func (templates *ChartTemplates) Deployments() []*Template

func (*ChartTemplates) Jobs

func (templates *ChartTemplates) Jobs() []*Template

func (*ChartTemplates) Pods

func (templates *ChartTemplates) Pods() []*Template

func (*ChartTemplates) StatefulSets

func (templates *ChartTemplates) StatefulSets() []*Template

type CommonHelmOptions

type CommonHelmOptions struct {
	KubeContext string
}

type DeployOptions

type DeployOptions struct {
	Values          []string
	SecretValues    []string
	Set             []string
	SetString       []string
	Timeout         time.Duration
	WithoutRegistry bool

	Release     string
	Namespace   string
	Environment string
	KubeContext string
}

type DismissOptions

type DismissOptions struct {
	WithNamespace bool
	KubeContext   string
}

type GitInfoGetter

type GitInfoGetter interface {
	IsBranchState() bool
	GetCurrentBranchName() string
	IsTagState() bool
	GetCurrentTagName() string
	GetHeadCommit() string
}

type HelmChartOptions

type HelmChartOptions struct {
	Set       []string
	SetString []string
	Values    []string
	DryRun    bool
	Debug     bool
	Timeout   time.Duration
	CommonHelmOptions
}

type ImageInfo

type ImageInfo struct {
	Config          *config.Image
	WithoutRegistry bool
	Repo            string
	Tag             string
}

func (*ImageInfo) GetImageId

func (d *ImageInfo) GetImageId() (string, error)

func (*ImageInfo) GetImageName

func (d *ImageInfo) GetImageName() string

func (*ImageInfo) GetName

func (d *ImageInfo) GetName() string

func (*ImageInfo) IsNameless

func (d *ImageInfo) IsNameless() bool

type ImageInfoGetter

type ImageInfoGetter interface {
	IsNameless() bool
	GetName() string
	GetImageName() string
	GetImageId() (string, error)
}

type ImageInfoGetterStub

type ImageInfoGetterStub struct {
	Name     string
	ImageTag string
	Repo     string
}

func (*ImageInfoGetterStub) GetImageId

func (d *ImageInfoGetterStub) GetImageId() (string, error)

func (*ImageInfoGetterStub) GetImageName

func (d *ImageInfoGetterStub) GetImageName() string

func (*ImageInfoGetterStub) GetName

func (d *ImageInfoGetterStub) GetName() string

func (*ImageInfoGetterStub) IsNameless

func (d *ImageInfoGetterStub) IsNameless() bool

type LintOptions

type LintOptions struct {
	Values       []string
	SecretValues []string
	Set          []string
	SetString    []string
}

type RenderOptions

type RenderOptions struct {
	Values       []string
	SecretValues []string
	Set          []string
	SetString    []string
}

type ServiceValuesOptions

type ServiceValuesOptions struct {
	ForceTag    string
	ForceBranch string
}

type Template

type Template struct {
	Version  string `yaml:"apiVersion"`
	Kind     string `yaml:"kind,omitempty"`
	Metadata *struct {
		Name        string            `yaml:"name"`
		Namespace   string            `yaml:"namespace"`
		Annotations map[string]string `yaml:"annotations"`
		Uid         string            `yaml:"uid"`
	} `yaml:"metadata,omitempty"`
	Status string `yaml:"status,omitempty"`
}

func (*Template) Namespace

func (t *Template) Namespace(namespace string) string

type TrackAnno

type TrackAnno string

type WerfChart

type WerfChart struct {
	ChartDir  string
	Values    []string
	Set       []string
	SetString []string
	// contains filtered or unexported fields
}

func GenerateWerfChart

func GenerateWerfChart(projectDir string, m secret.Manager) (*WerfChart, error)

func PrepareWerfChart

func PrepareWerfChart(projectDir string, targetDir string, m secret.Manager) (*WerfChart, error)

func (*WerfChart) Deploy

func (chart *WerfChart) Deploy(releaseName string, namespace string, opts HelmChartOptions) error

func (*WerfChart) Lint

func (chart *WerfChart) Lint() error

func (*WerfChart) Render

func (chart *WerfChart) Render(namespace string) (string, error)

func (*WerfChart) SetGlobalAnnotation

func (chart *WerfChart) SetGlobalAnnotation(name, value string) error

func (*WerfChart) SetSecretValuesFile

func (chart *WerfChart) SetSecretValuesFile(path string, m secret.Manager) error

func (*WerfChart) SetValues

func (chart *WerfChart) SetValues(values map[string]interface{}) error

func (*WerfChart) SetValuesFile

func (chart *WerfChart) SetValuesFile(path string) error

func (*WerfChart) SetValuesSet

func (chart *WerfChart) SetValuesSet(set string) error

func (*WerfChart) SetValuesSetString

func (chart *WerfChart) SetValuesSetString(setString string) error

Directories

Path Synopsis
helm module

Jump to

Keyboard shortcuts

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