package client

import "github.com/moby/buildkit/client"

Index

Constants

const (
	ExporterImage  = "image"
	ExporterLocal  = "local"
	ExporterTar    = "tar"
	ExporterOCI    = "oci"
	ExporterDocker = "docker"
)

Variables

var PruneAll = pruneOptionFunc(func(pi *PruneInfo) {
	pi.All = true
})

Types

type CacheOptionsEntry

type CacheOptionsEntry struct {
	Type  string
	Attrs map[string]string
}

type Client

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

func New

func New(ctx context.Context, address string, opts ...ClientOpt) (*Client, error)

New returns a new buildkit client. Address can be empty for the system-default address.

func (*Client) Build

func (c *Client) Build(ctx context.Context, opt SolveOpt, product string, buildFunc gateway.BuildFunc, statusChan chan *SolveStatus) (*SolveResponse, error)

func (*Client) Close

func (c *Client) Close() error

func (*Client) Dialer

func (c *Client) Dialer() session.Dialer

func (*Client) DiskUsage

func (c *Client) DiskUsage(ctx context.Context, opts ...DiskUsageOption) ([]*UsageInfo, error)

func (*Client) ListWorkers

func (c *Client) ListWorkers(ctx context.Context, opts ...ListWorkersOption) ([]*WorkerInfo, error)

ListWorkers lists all active workers

func (*Client) Prune

func (c *Client) Prune(ctx context.Context, ch chan UsageInfo, opts ...PruneOption) error

func (*Client) Solve

func (c *Client) Solve(ctx context.Context, def *llb.Definition, opt SolveOpt, statusChan chan *SolveStatus) (*SolveResponse, error)

Solve calls Solve on the controller. def must be nil if (and only if) opt.Frontend is set.

type ClientOpt

type ClientOpt interface{}

func WithContextDialer

func WithContextDialer(df func(context.Context, string) (net.Conn, error)) ClientOpt

func WithCredentials

func WithCredentials(serverName, ca, cert, key string) ClientOpt

WithCredentials configures the TLS parameters of the client. Arguments: * serverName: specifies the name of the target server * ca: specifies the filepath of the CA certificate to use for verification * cert: specifies the filepath of the client certificate * key: specifies the filepath of the client key

func WithFailFast

func WithFailFast() ClientOpt

func WithTracer

func WithTracer(t opentracing.Tracer) ClientOpt

type DiskUsageInfo

type DiskUsageInfo struct {
	Filter []string
}

type DiskUsageOption

type DiskUsageOption interface {
	SetDiskUsageOption(*DiskUsageInfo)
}

type ExportEntry

type ExportEntry struct {
	Type      string
	Attrs     map[string]string
	Output    func(map[string]string) (io.WriteCloser, error) // for ExporterOCI and ExporterDocker
	OutputDir string                                          // for ExporterLocal
}

type Filter

type Filter []string

func WithFilter

func WithFilter(f []string) Filter

func (Filter) SetDiskUsageOption

func (f Filter) SetDiskUsageOption(di *DiskUsageInfo)

func (Filter) SetListWorkersOption

func (f Filter) SetListWorkersOption(lwi *ListWorkersInfo)

func (Filter) SetPruneOption

func (f Filter) SetPruneOption(pi *PruneInfo)

type ListWorkersInfo

type ListWorkersInfo struct {
	Filter []string
}

ListWorkersInfo is a payload for worker list query

type ListWorkersOption

type ListWorkersOption interface {
	SetListWorkersOption(*ListWorkersInfo)
}

ListWorkersOption is an option for a worker list query

type PruneInfo

type PruneInfo struct {
	Filter       []string
	All          bool
	KeepDuration time.Duration
	KeepBytes    int64
}

type PruneOption

type PruneOption interface {
	SetPruneOption(*PruneInfo)
}

func WithKeepOpt

func WithKeepOpt(duration time.Duration, bytes int64) PruneOption

type SolveOpt

type SolveOpt struct {
	Exports               []ExportEntry
	LocalDirs             map[string]string
	SharedKey             string
	Frontend              string
	FrontendAttrs         map[string]string
	FrontendInputs        map[string]llb.State
	CacheExports          []CacheOptionsEntry
	CacheImports          []CacheOptionsEntry
	Session               []session.Attachable
	AllowedEntitlements   []entitlements.Entitlement
	SharedSession         *session.Session // TODO: refactor to better session syncing
	SessionPreInitialized bool             // TODO: refactor to better session syncing
}

type SolveResponse

type SolveResponse struct {
	// ExporterResponse is also used for CacheExporter
	ExporterResponse map[string]string
}

type SolveStatus

type SolveStatus struct {
	Vertexes []*Vertex
	Statuses []*VertexStatus
	Logs     []*VertexLog
}

type UsageInfo

type UsageInfo struct {
	ID      string
	Mutable bool
	InUse   bool
	Size    int64

	CreatedAt   time.Time
	LastUsedAt  *time.Time
	UsageCount  int
	Parent      string
	Description string
	RecordType  UsageRecordType
	Shared      bool
}

type UsageRecordType

type UsageRecordType string
const (
	UsageRecordTypeInternal    UsageRecordType = "internal"
	UsageRecordTypeFrontend    UsageRecordType = "frontend"
	UsageRecordTypeLocalSource UsageRecordType = "source.local"
	UsageRecordTypeGitCheckout UsageRecordType = "source.git.checkout"
	UsageRecordTypeCacheMount  UsageRecordType = "exec.cachemount"
	UsageRecordTypeRegular     UsageRecordType = "regular"
)

type Vertex

type Vertex struct {
	Digest    digest.Digest
	Inputs    []digest.Digest
	Name      string
	Started   *time.Time
	Completed *time.Time
	Cached    bool
	Error     string
}

type VertexLog

type VertexLog struct {
	Vertex    digest.Digest
	Stream    int
	Data      []byte
	Timestamp time.Time
}

type VertexStatus

type VertexStatus struct {
	ID        string
	Vertex    digest.Digest
	Name      string
	Total     int64
	Current   int64
	Timestamp time.Time
	Started   *time.Time
	Completed *time.Time
}

type WorkerInfo

type WorkerInfo struct {
	ID        string
	Labels    map[string]string
	Platforms []specs.Platform
	GCPolicy  []PruneInfo
}

WorkerInfo contains information about a worker

Source Files

build.go client.go client_unix.go diskusage.go exporters.go filter.go graph.go prune.go solve.go workers.go

Directories

PathSynopsis
client/buildid
client/connhelperPackage connhelper provides helpers for connecting to a remote daemon host with custom logic.
client/connhelper/dockercontainerPackage dockercontainer provides connhelper for docker-container://<container>
client/connhelper/kubepodPackage kubepod provides connhelper for kube-pod://<pod>
client/connhelper/podmancontainerPackage podmancontainer provides connhelper for podman-container://<container>
client/llb
client/llb/imagemetaresolver
client/llb/llbbuild
client/llb/llbtest
client/ociindex
Version
v0.8.1
Published
Dec 15, 2020
Platform
js/wasm
Imports
46 packages
Last checked
10 minutes ago

Tools for package owners.