builder

package
v3.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2017 License: Apache-2.0 Imports: 54 Imported by: 0

Documentation

Overview

Package builder contains builders for STI and Docker in OpenShift Origin

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultPushOrPullRetryCount is the number of retries of pushing or pulling the built Docker image
	// into a configured repository
	DefaultPushOrPullRetryCount = 6
	// DefaultPushOrPullRetryDelay is the time to wait before triggering a push or pull retry
	DefaultPushOrPullRetryDelay = 5 * time.Second
	// RetriableErrors is a set of strings that indicate that an retriable error occurred.
	RetriableErrors = []string{
		"ping attempt failed with error",
		"is already in progress",
		"connection reset by peer",
		"transport closed before response was received",
		"connection refused",
		"no route to host",
		"unexpected end of JSON input",
		"i/o timeout",
	}
)

Functions

func GetCGroupLimits

func GetCGroupLimits() (*s2iapi.CGroupLimits, error)

GetCGroupLimits returns a struct populated with cgroup limit values gathered from the local /sys/fs/cgroup filesystem. Overflow values are set to math.MaxInt64.

func GetDockerClient

func GetDockerClient() (client *docker.Client, endpoint string, err error)

GetDockerClient returns a valid Docker client, the address of the client, or an error if the client couldn't be created.

func MergeEnv

func MergeEnv(oldEnv, newEnv []string) []string

MergeEnv will take an existing environment and merge it with a new set of variables. For variables with the same name in both, only the one in the new environment will be kept.

func RetryImageAction

func RetryImageAction(client DockerClient, opts interface{}, authConfig docker.AuthConfiguration) error

func SafeForLoggingDockerConfig

func SafeForLoggingDockerConfig(config *docker.Config) *docker.Config

SafeForLoggingDockerConfig returns a copy of a docker config struct where any proxy credentials in the env section of the config have been redacted.

func SafeForLoggingDockerCreateOptions

func SafeForLoggingDockerCreateOptions(opts *docker.CreateContainerOptions) *docker.CreateContainerOptions

SafeForLoggingDockerCreateOptions returns a copy of a docker create container options struct where any proxy credentials in the env section of the config have been redacted.

Types

type DockerBuilder

type DockerBuilder struct {
	// contains filtered or unexported fields
}

DockerBuilder builds Docker images given a git repository URL

func NewDockerBuilder

func NewDockerBuilder(dockerClient DockerClient, buildsClient client.BuildInterface, build *buildapi.Build, gitClient GitClient, cgLimits *s2iapi.CGroupLimits) *DockerBuilder

NewDockerBuilder creates a new instance of DockerBuilder

func (*DockerBuilder) Build

func (d *DockerBuilder) Build() error

Build executes a Docker build

type DockerClient

type DockerClient interface {
	AttachToContainerNonBlocking(opts docker.AttachToContainerOptions) (docker.CloseWaiter, error)
	BuildImage(opts docker.BuildImageOptions) error
	PushImage(opts docker.PushImageOptions, auth docker.AuthConfiguration) error
	RemoveImage(name string) error
	CreateContainer(opts docker.CreateContainerOptions) (*docker.Container, error)
	DownloadFromContainer(id string, opts docker.DownloadFromContainerOptions) error
	PullImage(opts docker.PullImageOptions, auth docker.AuthConfiguration) error
	RemoveContainer(opts docker.RemoveContainerOptions) error
	InspectImage(name string) (*docker.Image, error)
	StartContainer(id string, hostConfig *docker.HostConfig) error
	WaitContainer(id string) (int, error)
	Logs(opts docker.LogsOptions) error
	TagImage(name string, opts docker.TagImageOptions) error
}

DockerClient is an interface to the Docker client that contains the methods used by the common builder

type GitClient

type GitClient interface {
	CloneWithOptions(dir string, url string, args ...string) error
	Fetch(dir string, url string, ref string) error
	Checkout(dir string, ref string) error
	PotentialPRRetryAsFetch(dir string, url string, ref string, err error) error
	SubmoduleUpdate(dir string, init, recursive bool) error
	TimedListRemote(timeout time.Duration, url string, args ...string) (string, string, error)
	GetInfo(location string) (*git.SourceInfo, []error)
}

GitClient performs git operations

type KeyValue

type KeyValue struct {
	Key   string
	Value string
}

KeyValue can be used to build ordered lists of key-value pairs.

type S2IBuilder

type S2IBuilder struct {
	// contains filtered or unexported fields
}

S2IBuilder performs an STI build given the build object

func NewS2IBuilder

func NewS2IBuilder(dockerClient DockerClient, dockerSocket string, buildsClient client.BuildInterface, build *buildapi.Build,
	gitClient GitClient, cgLimits *s2iapi.CGroupLimits) *S2IBuilder

NewS2IBuilder creates a new STIBuilder instance

func (*S2IBuilder) Build

func (s *S2IBuilder) Build() error

Build executes STI build based on configured builder, S2I builder factory and S2I config validator

Directories

Path Synopsis
cmd
Package cmd contains the main entry point for the docker and STI builders
Package cmd contains the main entry point for the docker and STI builders
dockercfg
Package dockercfg contains a command helper to read .dockercfg files
Package dockercfg contains a command helper to read .dockercfg files
scmauth
Package scmauth provides SCM authentication methods based on secret files
Package scmauth provides SCM authentication methods based on secret files

Jump to

Keyboard shortcuts

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