bake

package
v0.19.3 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: Apache-2.0 Imports: 53 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ListTargets added in v0.11.0

func ListTargets(files []File) ([]string, error)

func ParseHCLFile added in v0.6.0

func ParseHCLFile(dt []byte, fn string) (*hcl.File, bool, error)

func ReadRemoteFiles added in v0.5.0

func ReadRemoteFiles(ctx context.Context, nodes []builder.Node, url string, names []string, pw progress.Writer) ([]File, *Input, error)

func ReadTargets

func ReadTargets(ctx context.Context, files []File, targets, overrides []string, defaults map[string]string, ent *EntitlementConf) (map[string]*Target, map[string]*Group, error)

func TargetsToBuildOpt

func TargetsToBuildOpt(m map[string]*Target, inp *Input) (map[string]build.Options, error)

Types

type Config

type Config struct {
	Groups  []*Group  `json:"group" hcl:"group,block" cty:"group"`
	Targets []*Target `json:"target" hcl:"target,block" cty:"target"`
}

func ParseCompose

func ParseCompose(cfgs []composetypes.ConfigFile, envs map[string]string) (*Config, error)

func ParseComposeFiles added in v0.9.1

func ParseComposeFiles(fs []File) (*Config, error)

func ParseFile

func ParseFile(dt []byte, fn string) (*Config, error)

func ParseFiles added in v0.6.0

func ParseFiles(files []File, defaults map[string]string) (_ *Config, _ *hclparser.ParseMeta, err error)

func (Config) ResolveGroup

func (c Config) ResolveGroup(name string) ([]string, []string)

func (Config) ResolveTarget

func (c Config) ResolveTarget(name string, overrides map[string]map[string]Override, ent *EntitlementConf) (*Target, error)

type EntitlementConf added in v0.17.0

type EntitlementConf struct {
	NetworkHost      bool
	SecurityInsecure bool
	FSRead           []string
	FSWrite          []string
	ImagePush        []string
	ImageLoad        []string
	SSH              bool
}

func ParseEntitlements added in v0.17.0

func ParseEntitlements(in []string) (EntitlementConf, error)

func (EntitlementConf) Prompt added in v0.17.0

func (c EntitlementConf) Prompt(ctx context.Context, isRemote bool, out io.Writer) error

func (EntitlementConf) Validate added in v0.17.0

type EntitlementKey added in v0.17.0

type EntitlementKey string
const (
	EntitlementKeyNetworkHost      EntitlementKey = "network.host"
	EntitlementKeySecurityInsecure EntitlementKey = "security.insecure"
	EntitlementKeyFSRead           EntitlementKey = "fs.read"
	EntitlementKeyFSWrite          EntitlementKey = "fs.write"
	EntitlementKeyFS               EntitlementKey = "fs"
	EntitlementKeyImagePush        EntitlementKey = "image.push"
	EntitlementKeyImageLoad        EntitlementKey = "image.load"
	EntitlementKeyImage            EntitlementKey = "image"
	EntitlementKeySSH              EntitlementKey = "ssh"
)

type File added in v0.5.0

type File struct {
	Name string
	Data []byte
}

func ReadLocalFiles added in v0.5.0

func ReadLocalFiles(names []string, stdin io.Reader, l progress.SubLogger) ([]File, error)

type Group

type Group struct {
	Name        string   `json:"-" hcl:"name,label" cty:"name"`
	Description string   `json:"description,omitempty" hcl:"description,optional" cty:"description"`
	Targets     []string `json:"targets" hcl:"targets" cty:"targets"`
}

func (*Group) GetEvalContexts added in v0.11.0

func (g *Group) GetEvalContexts(ectx *hcl.EvalContext, block *hcl.Block, loadDeps func(hcl.Expression) hcl.Diagnostics) ([]*hcl.EvalContext, error)

func (*Group) GetName added in v0.11.0

func (g *Group) GetName(ectx *hcl.EvalContext, block *hcl.Block, loadDeps func(hcl.Expression) hcl.Diagnostics) (string, error)

type Input added in v0.5.0

type Input struct {
	State *llb.State
	URL   string
}

type Override added in v0.7.0

type Override struct {
	Value    string
	ArrValue []string
}

type Target

type Target struct {
	Name        string `json:"-" hcl:"name,label" cty:"name"`
	Description string `json:"description,omitempty" hcl:"description,optional" cty:"description"`

	// Inherits is the only field that cannot be overridden with --set
	Inherits []string `json:"inherits,omitempty" hcl:"inherits,optional" cty:"inherits"`

	Annotations      []string           `json:"annotations,omitempty" hcl:"annotations,optional" cty:"annotations"`
	Attest           []string           `json:"attest,omitempty" hcl:"attest,optional" cty:"attest"`
	Context          *string            `json:"context,omitempty" hcl:"context,optional" cty:"context"`
	Contexts         map[string]string  `json:"contexts,omitempty" hcl:"contexts,optional" cty:"contexts"`
	Dockerfile       *string            `json:"dockerfile,omitempty" hcl:"dockerfile,optional" cty:"dockerfile"`
	DockerfileInline *string            `json:"dockerfile-inline,omitempty" hcl:"dockerfile-inline,optional" cty:"dockerfile-inline"`
	Args             map[string]*string `json:"args,omitempty" hcl:"args,optional" cty:"args"`
	Labels           map[string]*string `json:"labels,omitempty" hcl:"labels,optional" cty:"labels"`
	Tags             []string           `json:"tags,omitempty" hcl:"tags,optional" cty:"tags"`
	CacheFrom        []string           `json:"cache-from,omitempty"  hcl:"cache-from,optional" cty:"cache-from"`
	CacheTo          []string           `json:"cache-to,omitempty"  hcl:"cache-to,optional" cty:"cache-to"`
	Target           *string            `json:"target,omitempty" hcl:"target,optional" cty:"target"`
	Secrets          []string           `json:"secret,omitempty" hcl:"secret,optional" cty:"secret"`
	SSH              []string           `json:"ssh,omitempty" hcl:"ssh,optional" cty:"ssh"`
	Platforms        []string           `json:"platforms,omitempty" hcl:"platforms,optional" cty:"platforms"`
	Outputs          []string           `json:"output,omitempty" hcl:"output,optional" cty:"output"`
	Pull             *bool              `json:"pull,omitempty" hcl:"pull,optional" cty:"pull"`
	NoCache          *bool              `json:"no-cache,omitempty" hcl:"no-cache,optional" cty:"no-cache"`
	NetworkMode      *string            `json:"network,omitempty" hcl:"network,optional" cty:"network"`
	NoCacheFilter    []string           `json:"no-cache-filter,omitempty" hcl:"no-cache-filter,optional" cty:"no-cache-filter"`
	ShmSize          *string            `json:"shm-size,omitempty" hcl:"shm-size,optional"`
	Ulimits          []string           `json:"ulimits,omitempty" hcl:"ulimits,optional"`
	Call             *string            `json:"call,omitempty" hcl:"call,optional" cty:"call"`
	Entitlements     []string           `json:"entitlements,omitempty" hcl:"entitlements,optional" cty:"entitlements"`
	// contains filtered or unexported fields
}

func (*Target) AddOverrides added in v0.7.0

func (t *Target) AddOverrides(overrides map[string]Override, ent *EntitlementConf) error

func (*Target) GetEvalContexts added in v0.11.0

func (t *Target) GetEvalContexts(ectx *hcl.EvalContext, block *hcl.Block, loadDeps func(hcl.Expression) hcl.Diagnostics) ([]*hcl.EvalContext, error)

func (*Target) GetName added in v0.11.0

func (t *Target) GetName(ectx *hcl.EvalContext, block *hcl.Block, loadDeps func(hcl.Expression) hcl.Diagnostics) (string, error)

func (*Target) Merge added in v0.6.0

func (t *Target) Merge(t2 *Target)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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